On 27 September 2011 03:55, Johan Hake <[email protected]> wrote: > 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. >
I added something to a Blueprint recently. PETSc 3.2 has a new function that assembles everything at once. What we need to add in DOLFIN is an 'unassmebled matrix' backend that stores each local matrix block. It could be a good solution to issue that is described. > 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(); > This can be done already, in a way. Have a look at DofMapBuilder::compute_global_dofs It can figure out the global dof indices. > What you say before or after the 1.0 release ;) > Sounds desperate. My money is on after. Garth > 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 : [email protected] >> Unsubscribe : https://launchpad.net/~dolfin >> More help : https://help.launchpad.net/ListHelp > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : [email protected] > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

