On Thu, 13 Mar 2014 09:36:42 +0000 "Garth N. Wells" <[email protected]> wrote:
> > > On Thu, 13 Mar, 2014 at 9:23 AM, Johannes Ring <[email protected]> > wrote: > > On Wed, Mar 12, 2014 at 6:30 PM, Jan Blechta > > <[email protected]> wrote: > >> On Wed, 12 Mar 2014 17:19:31 +0100 > >> Benjamin Kehlet <[email protected]> wrote: > >> > >>> Hello! > >>> > >>> This code snippet > >>> > >>> ----------------------------------------------------------------------- > >>> from dolfin import * > >>> > >>> m = Mesh() > >>> > >>> editor = MeshEditor() > >>> editor.open(m, 2, 2) > >>> editor.init_vertices(3) > >>> editor.add_vertex(0, Point(.0, .0)) > >>> editor.add_vertex(1, Point(1., .0)) > >>> editor.add_vertex(2, Point(0., 1.)) > >>> > >>> editor.init_cells(1) > >>> editor.add_cell(0, 0, 1, 2) > >>> editor.close() > >>> > >>> print MeshQuality.radius_ratio_min_max(m) > >>> > >>> ----------------------------------------------------------------------- > >>> > >>> gives this error (when Dolfin is built with MPI support) > >> > >> Can't reproduce. > > > > I got the same error as Benjamin. > > I get the error too. Can you explain why I can't reproduce it while others can? Jan > > Initialising MPI is a long-standing issue that we've been dodging. > The solution in other libraries is that the user makes a call at the > start of a program to initialise MPI. We have a sprinkling of > behind-the-scenes initialisation of MPI. It's not ideal to have calls > all over the place the initialise MPI. I'm not sure what the best > solution is to balance performance and simplicity. > > Garth > > > > > > Johannes > > > >> > >> Jan > >> > >>> > >>> benjamik@benjamik-hp:~/tmp/dolfin$ python test.py > >>> *** The MPI_Allreduce() function was called before MPI_INIT was > >>> invoked. *** This is disallowed by the MPI standard. > >>> *** Your MPI job will now abort. > >>> [benjamik-hp:28604] Local abort before MPI_INIT completed > >>> successfully; not able to aggregate error messages, and not able > >>> to guarantee that all other processes were killed! > >>> > >>> The reason is that MeshQuality::radius_ratio_min_max() calls > >>> MPI::min() which calls MPI_Allreduce(). > >>> > >>> Who is responsible for initializing MPI in this case? > >>> > >>> Regards > >>> > >>> Benjamin > >>> _______________________________________________ > >>> fenics mailing list > >>> [email protected] > >>> http://fenicsproject.org/mailman/listinfo/fenics > >> > >> _______________________________________________ > >> fenics mailing list > >> [email protected] > >> http://fenicsproject.org/mailman/listinfo/fenics > > _______________________________________________ > > fenics mailing list > > [email protected] > > http://fenicsproject.org/mailman/listinfo/fenics > > _______________________________________________ > fenics mailing list > [email protected] > http://fenicsproject.org/mailman/listinfo/fenics _______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
