On 13 Mar 2014, at 13:15, Jan Blechta <[email protected]> wrote:
> 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? > Do you have petsc4py installed? MPI is probably being initialised magically behind the scenes. Garth > 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
