On Mon, Mar 18, 2013 at 1:22 PM, Adrian Jacobo <[email protected] > wrote:
> Hi, > > I'm having problems when saving results of a calculation on a Gmsh grid > when running in parallel. Hi Adrian, Pickling Gmsh meshes is profoundly broken in parallel. It just doesn't work. At this point, Gmsh mesh objects should raise an exception when pickled in parallel until/if FiPy can ever handle this properly. One way to get around the issue, is to pickle the simpler array and string objects and then use them to reconstruct the mesh and variable. This is hardly a persistent method for data storage, but pickling in general with complicated objects seems to be fraught with problems. In my own experience, I tend to use lower level objects for pickling when possible. I fixed your code to do this, see http://pastebin.com/p5rARUJf and http://pastebin.com/P883d0q4. Cheers > I've attached an example of the problem, based on the diffusion/circle.py > example. The code "test_circle_parallel.py" runs the diffusion equation on > a circle and then saves the result to a file, the code "circle_view.py" > opens the file and displays the results in a viewer. If the first code is > run in serial everything works as it should, but if I run the first code in > parallel, the second script consumes all the free memory in the system and > crashes. > I've tried a similar version of this, but using a square grid (like the > mesh20x20.py example) and in this case it works both in serial and in > parallel, so it seems that the problem is when saving a Gmsh grid. > > Adrian. > > > > > _______________________________________________ > fipy mailing list > [email protected] > http://www.ctcms.nist.gov/fipy > [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ] > > -- Daniel Wheeler
_______________________________________________ fipy mailing list [email protected] http://www.ctcms.nist.gov/fipy [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
