[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