"Garth N. Wells" <[email protected]> writes: > On 13 Mar 2014, at 13:03, Benjamin Kehlet <[email protected]> wrote: > >> Other possible solutions include >> * Requiring the user to call a init_dolfin() function before doing >> anything (From python this could be done implicitly when doing "import >> dolfin”) > > I think this is the ‘best’ approach, but others probably won’t like a > using having to initialise MPI manually in C++.
Agree. >> * Adding calls to init_mpi() in the functions in MPI.h where this is missing. >> > > This is too low-level. init_mpi() should be called from the highest possible > level. Initialization is more-or-less okay so long as the first object is made collectively (even if it is not a collective object; it just can't depend on a non-deterministic condition). Finalization is tricky if tied to an object, because other objects might be created later, while you perhaps? plan to MPI_Finalize when the reference count drops to zero. Note that MPI can only be initialized once and that the user might create non-dolfin objects that use MPI and outlive dolfin in the application. That might also include profiling, such as -log_summary in PETSc.
pgpH2fDsY1r_6.pgp
Description: PGP signature
_______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
