2007/8/27, Anders Logg <[EMAIL PROTECTED]>: > jesperc wrote: > > Hi, > > > > I'm taking a summer course in parallel programming and want to > > parallelize something in Dolfin as a small project for the course. How > > much is currently sucessfully parallelized in the code when for example > > solving the Poisson equation? I know that some of you are working with > > the parallel implementation of the assembly, but what is the status there? > > Would it be possible for me to make some contribution? > > Yes, definitely. Here's what we have now: > > 1. Mesh partitioning works: > > uint n = 16; > MeshFunction<uint> partitions; > mesh.partition(n, partitions); > > This returns a MeshFunction which labels all the cells of the mesh with > the number of the partition to which they belong.
For proper scalability, distributed meshes is necessary, but I guess you're on top of this. > 2. Garth has implemented a working (last time I checked) prototype of a > parallel assembler in src/sandbox/passembly/main.cpp. > > 3. It should be relatively easy to extend the current assembler in > src/kernel/fem/Assembler.cpp to do parallel assembly. It currently knows > how to assemble over subdomains (defined by some MeshFunctions) and the > parallel assembly would be similar: skip the cells (if (.. != ... ) > continue;) that don't belong to the current processor. It should rather iterate over cells that _are_ on the current processor. Even if the mesh isn't distributed yet, this is probably important. > 4. The first thing we need is to be able to communicate Mesh and > MeshFunction between processes. There is a sketch in > src/kernel/mesh/MPIMeshCommunicator.cpp (empty). One process reads the > mesh, partitions it and sends it to all processes. (To begin with, each > process will have a copy of the mesh.) Sounds good. > 5. The tricky part will be how to order degrees of freedom (class > DofMap). And this relates to ongoing work on merging the linear algebra > interfaces of DOLFIN and PyCC (Simula in-house code). We need to find > a design that works well for communicating both with PETSc and Epetra > (Trilinos). This problem can probably benefit from someone having the time to really focus, there are a lot of details to consider... -- Martin _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
