[Gmsh] Large Mesh Partitioning Segmentation Fault
Christophe Geuzaine
cgeuzaine at uliege.be
Thu Aug 1 21:00:31 CEST 2019
Hi Joe,
> On 1 Aug 2019, at 18:48, Joe Schickler <joeschickler.jjtech at gmail.com> wrote:
>
> Prof. Geuzaine,
>
> Wow! That seems super useful, thank you! Please let me know what you find and I will also keep looking into it.
>
> (gdb) r -merge model3dbin.msh modelpart.geo -part_no_topo
> Starting program: /home/joe/bigdrive/gmsh -merge model3dbin.msh modelpart.geo -part_no_topo
> Info : Running '/home/joe/bigdrive/gmsh -merge model3dbin.msh modelpart.geo -part_no_topo' [Gmsh 4.4.1, 1 node, max. 1 thread]
> Info : Started on Thu Aug 1 16:33:15 2019
> Info : Reading 'model3dbin.msh'...
> Info : 166593827 nodes
> Info : 1030066524 elements
> Info : Done reading 'model3dbin.msh'
> Info : Reading 'modelpart.geo'...
> Info : Partitioning mesh...
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000555555c52ff1 in Graph::eind (this=0x7fffffff9d50, eind=<optimized out>,
> i=2147483648)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Mesh/meshPartition.cpp:212
> 212 void eind(unsigned int i, unsigned int eind) { _eind[i] = eind; };
> (gdb) bt
> #0 0x0000555555c52ff1 in Graph::eind (this=0x7fffffff9d50,
> eind=<optimized out>, i=2147483648)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Mesh/meshPartition.cpp:212
OK so we have an entity index i = 2147483648, which is the next one just above the max value of an int - we probably get over the max for edges or faces in the graph.
The partitioning code has not yet been ported to support 64 bit indices/tags, so this is "normal". Porting to 64 bits would be nice: any help is clearly welcome!
Could you open an issue in our gitlab so we keep track of the issue?
Thanks,
Christophe
> #1 fillElementsToNodesMap<__gnu_cxx::__normal_iterator<MTetrahedron* const*, std::vector<MTetrahedron*> > > (entity=0x55555ac1acb0, it_end=..., it_beg=...,
> numVertex=<synthetic pointer>: 137366842,
> eindIndex=<synthetic pointer>: -2147483648,
> eptrIndex=<synthetic pointer>: <optimized out>, graph=...)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Mesh/meshPartition.cpp:476
> #2 MakeGraph (model=model at entry=0x555556813b50, graph=...,
> selectDim=selectDim at entry=-1)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Mesh/meshPartition.cpp:589
> #3 0x0000555555c63ab0 in PartitionMesh (model=0x555556813b50)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Mesh/meshPartition.cpp:2336
> #4 0x0000555555dd8013 in gmsh_yyparse () at Gmsh.y:3399
> #5 0x0000555555853f8d in ParseFile (fileName="modelpart.geo",
> close=close at entry=true, warnIfMissing=warnIfMissing at entry=false)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Common/OpenFile.cpp:209
> #6 0x00005555559cefcd in GModel::readGEO (name="modelpart.geo")
> at /home/joe/bigdrive/gmsh-4.4.1-source/Geo/GModel.cpp:2928
> #7 0x0000555555853e17 in MergeFile (fileName="modelpart.geo",
> warnIfMissing=warnIfMissing at entry=false,
> setBoundingBox=setBoundingBox at entry=true,
> importPhysicalsInOnelab=importPhysicalsInOnelab at entry=true,
> partitionToRead=partitionToRead at entry=-1)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Common/OpenFile.cpp:520
> #8 0x000055555580bc7b in GmshBatch ()
> at /home/joe/bigdrive/gmsh-4.4.1-source/Common/GmshGlobal.cpp:299
> #9 0x000055555580c175 in GmshMainBatch (argc=5, argv=0x7fffffffe518)
> at /home/joe/bigdrive/gmsh-4.4.1-source/Common/GmshGlobal.cpp:467
> #10 0x00007ffff70c6b97 in __libc_start_main (
> main=0x555555800480 <main(int, char**)>, argc=5, argv=0x7fffffffe518,
> init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
> stack_end=0x7fffffffe508) at ../csu/libc-start.c:310
> #11 0x000055555580ad7a in _start ()
>
>
> Regards,
>
> Joe Schickler
> J&J Technologies LLC
>
>
> On Thu, Aug 1, 2019 at 8:21 AM Christophe Geuzaine <cgeuzaine at uliege.be> wrote:
> If you don't want to send the full core (which I might not be able to use...), you can also just do e.g.
>
> gdb ./gmsh
> > r -merge model3dbin.msh modelpart.geo -part_no_topo
> > (crash)
> > bt
>
> Christophe
>
> > On 1 Aug 2019, at 13:47, Joe Schickler <joeschickler.jjtech at gmail.com> wrote:
> >
> > Thanks for getting back to me. Gmsh partitions fine with metis or the plugin with smaller mesh sample. I ran gmsh with the -part_no_topo option and it still seg faulted. I am running on a cloud machine with over 400GB of RAM. I even tried over 3TB of RAM and still seg faults. Also tried ulimit -s unlimited
> >
> > OUTPUT FOR METIS
> > joe at cmsmeshing2:~/bigdrive$ ulimit -s unlimited
> > joe at cmsmeshing2:~/bigdrive$ ulimit -c unlimited
> > joe at cmsmeshing2:~/bigdrive$ sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t
> > kernel.core_pattern = /tmp/core-%e.%p.%h.%t
> > joe at cmsmeshing2:~/bigdrive$ ./gmsh -merge model3dbin.msh modelpart.geo -part_no_topo
> > Info : Running './gmsh -merge model3dbin.msh modelpart.geo -part_no_topo' [Gmsh 4.4.1, 1 node, max. 1 thread]
> > Info : Started on Thu Aug 1 06:42:54 2019
> > Info : Reading 'model3dbin.msh'...
> > Info : 166593827 nodes
> > Info : 1030066524 elements
> > Info : Done reading 'model3dbin.msh'
> > Info : Reading 'modelpart.geo'...
> > Info : Partitioning mesh...
> > Segmentation fault (core dumped)
> >
> > OUTPUT FOR PLUGIN SIMPLEPARTITION
> > joe at cmsmeshing2:~/bigdrive$ ulimit -s unlimited
> > joe at cmsmeshing2:~/bigdrive$ ulimit -c unlimited
> > joe at cmsmeshing2:~/bigdrive$ sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t
> > kernel.core_pattern = /tmp/core-%e.%p.%h.%t
> > joe at cmsmeshing2:~/bigdrive$ ./gmsh -merge model3dbin.msh -part_no_topo modelpart2.geo
> > Info : Running './gmsh -merge model3dbin.msh -part_no_topo modelpart2.geo' [Gmsh 4.4.1, 1 node, max. 1 thread]
> > Info : Started on Thu Aug 1 07:04:30 2019
> > Info : Reading 'model3dbin.msh'...
> > Info : 166593827 nodes
> > Info : 1030066524 elements
> > Info : Done reading 'model3dbin.msh'
> > Info : Reading 'modelpart2.geo'...
> > Info : Running Plugin(SimplePartition)...
> > Segmentation fault (core dumped)
> >
> > core dumps are large files and I am uploading them now to attach to next email. I don't have too much confidence that I did the core dump correctly, hopefully it is correct and helpful.
> >
> > Regards,
> > Joe Schickler
> >
> >
> >
> > On Thu, Aug 1, 2019 at 2:07 AM Christophe Geuzaine <cgeuzaine at uliege.be> wrote:
> >
> >
> > > On 31 Jul 2019, at 16:37, Joe Schickler <joeschickler.jjtech at gmail.com> wrote:
> > >
> > > Hello all,
> > >
> > > I am getting segmentation faults in gmsh 4.4.1 (and other versions) when I try to partition a mesh with
> > > Info : 166593827 nodes
> > > Info : 1030066524 elements
> > >
> > > The seg fault happens when I use metis and when I use the Plugin SimplePartition
> > >
> > > Attached is copy of geo file. Command I use at terminal is
> > > ./gmsh -merge model3dbin.msh modelpart.geo -bin -save
> > >
> >
> > Does it happen on smaller meshes? Does it happen if you specify "-part_no_topo"? Can you run Gmsh inside a debugger and send us the backtrace?
> >
> > Christophe
> >
> > > Regards,
> > > Joe Schickler
> > > J&J Technologies LLC
> > > Stratford, NJ 08084
> > > Tel: (856) 437-0401
> > > Email: JoeSchickler.JJTech at gmail.com
> > >
> > > <modelpart.geo>_______________________________________________
> > > gmsh mailing list
> > > gmsh at onelab.info
> > > http://onelab.info/mailman/listinfo/gmsh
> >
> > —
> > Prof. Christophe Geuzaine
> > University of Liege, Electrical Engineering and Computer Science
> > http://www.montefiore.ulg.ac.be/~geuzaine
> >
> >
> >
>
> —
> Prof. Christophe Geuzaine
> University of Liege, Electrical Engineering and Computer Science
> http://www.montefiore.ulg.ac.be/~geuzaine
>
>
>
—
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science
http://www.montefiore.ulg.ac.be/~geuzaine
More information about the gmsh
mailing list