← Back to team overview

dolfin team mailing list archive

Re: SymmetricAssembler and SystemAssembler

 

On 3 September 2012 16:55, Anders Logg <logg@xxxxxxxxx> wrote:
> On Mon, Sep 03, 2012 at 03:48:05PM +0100, Garth N. Wells wrote:
>> On 3 September 2012 12:40, Anders Logg <logg@xxxxxxxxx> wrote:
>> > On Mon, Sep 03, 2012 at 09:21:05AM +0200, Joachim Berdal Haga wrote:
>> >> > re-assembling the coefficient matrix. SystemAssembler OTOH can easily
>> >> > be reimplemented in terms of SymmetricAssembler + Assembler.
>> >> > (SymmetricAssembler only does rank-2, to avoid duplication; hence,
>> >> > both are required)
>> >>
>> >> ... and, just to mention it, it wouldn't be a problem to support
>> >> rank-0/1 as well in SymmetricAssembler, in which case we can get down
>> >> to one assembler implementation. Plus OpenMP.
>> >
>> > If we can get the same speed as Assembler + all the features of
>> > SymmetricAssembler, then I think both should be merged into one.
>> >
>>
>> We should work towards this.  A symmetric assembler should be the
>> 'flagship' since it permits CG and Cholesky for a wide range of
>> problems.
>
> Agree, but I think the flagship should also have seamless support for
> OpenMP.
>

Agree. There are two major shortcomings which we are addressing:

  1. The threaded assembler does not work in combination with MPI
  2. The threaded assembler does not support symmetric assembly.

Once this is in place, it can be the #1 assembler.

Garth

>> I have some ideas on how to do what SymmetricAssembler does but
>> without assembling a whole second sparse matrix.
>
> Interesting.
>
>> > Is there an overhead for putting the OpenMP code into the regular
>> > assembler? We would trivially loop over one color.
>> >
>>
>> Generally yes. I'm actively working on this, so it should be left for now.
>
> ok.
>
> --
> Anders


References