On 2013-12-18 15:28, Johan Hake wrote:
On Dec 18, 2013 2:03 PM, "Garth N. Wells" <[email protected]> wrote:
 >
 > Chris has been working on adding a layer of ghost cells/mesh
entities to a DOLFIN Mesh when running in parallel. The branch is at:
 >
 >    
https://bitbucket.org/fenics-project/dolfin/branch/chris/ghost-mesh
[1]
 >
 > The motivations for this are:
 >
 >   1. Support DG methods in parallel.
 >   2. Communication-less assembly in parallel with MPI
(GenericTensor::apply() will involve no communication).

Excellent! So we have any speed up numbers on the gain?


We don't have it fully working yet. Message is forward notice of something that's in the pipeline.

I have seen that calling GenericTensor::apply can start to take a non-negligible amount of time as the process count grows.

  3. Simpler construction of dofmaps (less MPI communication).
 >   4. Simple detection of entities on a domain boundary.
 >   5. Eliminates the need for a boundary mesh to build a
distributed mesh.

6. OpenMP assembly working in parallel. Pretty sure at least because
it is the communication structure in PETSc that is not thread safe.

It's the off-process caching in PETSc that is hard to make thread-safe. This change will avoid using the PETSc cache, which will make threaded assembly easier. Be aware that at present, the threaded assembly is less efficient that pure MPI assembly.

 7. Slightly more communication during Function::update, right?


Slightly more data to communicate, but on a fast network I expect that this will be swamped by the communication latency.

In the first instance, the plan is that the mesh iterators will
iterate over the same entities they do now, ignoring ghost entities.
Existing parallel code should just run as it does now. Longer term, it
would be nice to support iterators over different mesh views. There
are quite a few problems for which iteration over mesh views would be
handy (in serial and in parallel).

What do you have in mind? I bet something more elaborated than
SubsetIterator?


Maybe SubsetIterator will do.

Garth


Johan

Please send a message if you have any comments or suggestions on the
above.  I anticpate the code being ready to merge not long after the
1.3 release of DOLFIN.
 >
 > Garth
 >
 >
 > _______________________________________________
 > fenics mailing list
 > [email protected]
 > http://fenicsproject.org/mailman/listinfo/fenics [2]


Links:
------
[1] https://bitbucket.org/fenics-project/dolfin/branch/chris/ghost-mesh
[2] http://fenicsproject.org/mailman/listinfo/fenics
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to