dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #24559
Re: OpenMP assembler
On Monday September 26 2011 16:52:02 Johan Hake wrote:
> Hello!
>
> I played around with the OpenMP assembler as I really needed to speed up
> some assemble because of problems with Real Spaces. Speedwise it looked
> really promissing, untill I compared the results...
>
> It turns out that the result is not correct for forms with Real spaces
> included. Anyone knows why and if there is an easy fix?
>
> https://bugs.launchpad.net/dolfin/+bug/860142
>
> I would really like to fix this one ASAP...
The easiest is probably for me to flesh out the forms with no global dofs in
and pass these to the OpenMP assembler.
To fix this more permanently we need to collect the rows and columns of the
global dofs in separate vectors. After the assemble we can add them separtely.
To make it thread safe we can first sum the vectors over the threads and then
add them outside the openmp loop. I think this strategi might speed up
insertion into PETSc Matrices for forms with global dofs too.
For this to be robust and fast we need to make ufc global dof aware. Maybe
extend ufc dof_map with:
tabulate_global_dofs(double* dofs);
num_global_dofs();
What you say before or after the 1.0 release ;)
Johan
> I also discovered that OpenMP assemble crashes for scalars. This is not as
> critical as scalars are pretty fast to assemble anyhow.
>
> https://bugs.launchpad.net/dolfin/+bug/860040
>
> Johan
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help : https://help.launchpad.net/ListHelp
Follow ups
References