Currently the only MeshIO subclass that supports reading in parallel
is Nemesis.  Even with ParallelMesh, the others read in serial and
then delete remote elements on each rank.  This is still helpful if
your mesh doesn't become large until after adaptive refinement, or if
your RAM usage doesn't become large until after sparse matrix
allocation... but if you've got a mesh in a serial format that's too
large to read alone on one processor, we don't have the tools to help
you right now.

You'd either need to borrow a large memory machine for long enough to
read in the Tetgen file and rewrite it as Nemesis, or you'd need to
modify the TetGenIO to support reading a pre-parallelized
ParallelMesh.

We'll be adding such support eventually, but it's not going to be in
the near future.  Talking with Ben Kirk today, we've had the idea that
for a lot of applications it would be useful for MeshInput and
EquationSystems IO to be able to "stream" data to the app in blocks of
elements, so that simple read/transform/write operations would require
O(1) instead of O(N_elem) memory use; this functionality would also
lend itself to M-to-N ParallelMesh restarts without having to add
special ParallelMesh-aware functionality to each IO class.  But it's
not something that will be coming any time soon.
---
Roy

On Fri, 28 Oct 2011, [email protected] wrote:

> could someone give me an example of how to use parallelmesh?
> I have the problem that I have 12GB of RAM, 8 CPU's, but a
> mesh which has several GB (generated with tetgen). Now, if I
> understood everything right, a copy of the mesh is kept on
> every processor.  I am reading the mesh with tetgen_io but,
> the copies on the processors already exceed the 12 GB RAM.
> If I use only one processor the mesh uses about 5GB.
>
> I am using the following lines of code to read the mesh:
> Mesh new_mesh;
>
>        TetGenIO TETGEN(new_mesh);
>
>        {  // read TETGEN file
>               OStringStream inmesh;
>               inmesh << mesh_dir << ReadMesh[actual_pulse]<<".ele";
>               TETGEN.read(inmesh.str().c_str());
>        }
>
>
>
> Do I maybe have to make a change to the code to be able to
> have the mesh only on one processor?
> I have tried to find a solution in the example codes, such
> as ex4.
> ((By the way, in the help-text in example 4 it says:
> 'The significant differences are marked with "PARALLEL
> CHANGE"',but, later nothing is marked))
>
> I have also tried to compile libmesh with --enable-parmesh
> but it didn't help - I still had one copy of the mesh on
> every processor.
>
> So, I thought I might read the mesh and divide it by using
> parallelmesh. But, if I use parallelmesh, how do I build an
> equationsystems object then (which should be initialized
> with mesh and not parallelmesh)?
> I have found a post some years ago where this was already
> discussed by Roy. There, he suggested to read the mesh with
> one processor, divide it and write the divisions to files.
> Then, when carrying out my calculation I could read these
> files.
>
>
>
> I compiled libmesh under Ubuntu 10.04 following the
> instructions on
>
> http://libmesh.sourceforge.net/wiki/index.php/Installation
>
> in the section 'libmesh from cvs, petsc 2.3.0, slepc 2.3.0
> with MPI enabled, debian'
>
>
> ------------------------------------------------------------------------------
> The demand for IT networking professionals continues to grow, and the
> demand for specialized networking skills is growing even more rapidly.
> Take a complimentary Learning@Cisco Self-Assessment and learn
> about Cisco certifications, training, and career opportunities.
> http://p.sf.net/sfu/cisco-dev2dev
> _______________________________________________
> Libmesh-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>
>

------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to