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

Reply via email to