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

Reply via email to