Martin Sandve Alnæs wrote:
> 2007/8/27, Anders Logg <[EMAIL PROTECTED]>:
>> Martin Sandve Alnæs wrote:
>>> 2007/8/27, Anders Logg <[EMAIL PROTECTED]>:
>>>> 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.
>> Why is it important? Iterating over all cells and skipping is very cheap
>> (I imagine). Doing ++cell_iterator in DOLFIN only increases an int
>> counter (inline). It probably takes more time to preprocess and extract
>> the list of cells belonging to the process.
> 
> Because it's O(N_global), and needs to be O(N_local) to scale with
> increased parallelism. I guess it's cheap enough for small scale
> paralellism, but if you run with 100 subdomains (processes), then
> that's 100 ++cell_iterator for each cell in the local mesh. So it is
> fine until the mesh itself is distributed.
> 

Agree.

/Anders
_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to