>> 1. The MeshWorker is centered around the usage of FEValuesBase objects for 
>> all local evaluations. While this is very general (all of the deal.II 
>> assembly code gets channeled through it), it turned out to be too slow for 
>> our purposes: When you only assemble vectors like in a matrix-free approach, 
>> FEValues eats just too much time.
> 
> This is not correct, since IntegrationInfo is a template argument to
> the MeshWorker loop. After settling in Heidelberg, I will provide you
> with a VectorInfo class (only a few dozen lines), which only extracts
> local degrees of freedom and thus is probably what you need. A student
> of mine has implemented matrix free grid transfer for DG using it and
> it works quite well.


I am looking forward to see the class but note that we do not use the 
DoFAccessor and our indices are MPI-local and have the constraints built-in 
instead.  

>>> 2. The parallel loop over cells for MeshWorker is based WorkStream
>>> which does local computations in parallel but serializes writing
>>> into vectors or matrices. This, again, was severely impacting
>>> performance, in particular on multicore machines.
>> 
>> The parallel loop is a single line in MeshWorker and if WorkStream
>> is not sufficient, it could have been improved. Indeed, for DG at
>> least, this loop can be run in parallel without any conflicts and
>> there the WorkStream should be replaced.
> 
> At least the cell loop can be done without conflicts, it's a bit more 
> complicated with the face integration.
> 
> But yes, we should make the WorkStream class smarter so that it uses the 
> coloring scheme Katharina and Martin have implemented to avoid the sequential 
> bottleneck as far as possible. Like so many things in deal.II, I think it's 
> not so hard to figure out how to do it in principle, it's more that someone 
> just has to have the time to implement it :-(

That is what I wanted to say: It is not impossible to integrate our framework 
into the MeshWorker but it would have taken quite some extra effort. The 
problem was that we developed our framework partly in parallel with the 
MeshWorker otherwise we could have integrated the MatrixFree class from the 
beginning.

Katharina

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to