← Back to team overview

dolfin team mailing list archive

Re: Function design / Future multicore support in DOLFIN

 

Martin Sandve Alnæs wrote:
Are there any plans for multicore support in DOLFIN, that is
automatic utilization of multiple CPU cores without significant
user intervention, in the near future? (For example using OpenMP).


No immediate plans (message passing is the immediate priority), but obviously this would be very nice to have and we don't want our design to preclude it.

If yes, am I the only one who thinks it would be a good idea
to consider this in the new Function design?


You may be the only that knows enough about multi-threaded programming to be in a position to think properly about it.

I just want to point this out since I think this issue has been too
downplayed in the design discussions. And I don't think anyone
wants yet another redesign of Function within the next months...

The main issue is that iterating over cells in a mesh and calling a
Function currently involves side effects, modifying its mutable members
cell and facet. Thus the user would have to construct multiple Function
objects for a Function to be used in basically any multicore situation.
Any solution to this must involve sending all kinds of cell data needed
as arguments to eval. Exactly how this should look is a design discussion.


So if we remove

  mutable Cell* _cell
  mutable int _facet

from the private member data of Function, does this resolve the biggest design issue for running multi-threaded?

Garth


--
Martin
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References