From: Umar F. <uma...@gm...> - 2007-06-20 23:26:39
|
Hi, Ive been looking through the mailing archives, and there was some talk about implementing a better parallel mesh storage scheme, one in which each processor only keeps required elements around. Looking through the libmesh code, Im not sure where/if this is currently done. >From my understanding, the Mesh:read() function calls prepare_for_use, which calls renumber_nodes_and_elements(), and then partition(), in that order. renumber_nodes_and_elements() is supposed to delete un-needed mesh info, but I cannot see how that happens, or even how it could work before a call to partition(). Also, from output I get after probing the _elements vector, it looks like all processors keep all elements in memory. I was wondering if I am mistaken in some way, or am missing some option somewhere to allow libmesh to partition meshes. If not, are there plans to remedy this in the near future? Thanks, Umar Farooq |
From: John P. <pet...@cf...> - 2007-06-20 23:35:50
|
Umar Farooq writes: > Hi, > > Ive been looking through the mailing archives, and there was some talk > about implementing a better parallel mesh storage scheme, one in which > each processor only keeps required elements around. Looking through > the libmesh code, Im not sure where/if this is currently done. > > >From my understanding, the Mesh:read() function calls prepare_for_use, > which calls renumber_nodes_and_elements(), and then partition(), in > that order. renumber_nodes_and_elements() is supposed to delete > un-needed mesh info, but I cannot see how that happens, or even how it > could work before a call to partition(). Also, from output I get > after probing the _elements vector, it looks like all processors keep > all elements in memory. > > I was wondering if I am mistaken in some way, or am missing some > option somewhere to allow libmesh to partition meshes. If not, are > there plans to remedy this in the near future? The mesh is still stored on all processors. There are plans to change this, but I wouldn't say they are in the "near" future. Unless you specifically need a code with a parallel mesh, you should still give LibMesh a try. You'd be surprised how large of problems you can still tackle even with the mesh stored everywhere. Multicore CPUs are going to be trouble, however. -J |