I can confirm that

--enable-event-thread-support --enable-opal-multi-threads 
--enable-orte-progress-threads --enable-mpi-thread-multiple

worked for me as well under OSX 10.8.4 with clang. The orte-progress flag is 
needed, without it the parallel process hangs.

I will report this to the MacPorts people so they can fix it.

Best,
Hans

On 19. juni 2013, at 15.08, Ralph Castain wrote:

> While I'm glad it worked, having it depend on orte progress thread wasn't 
> done by intent, hence the comment in the configure help output. I'm not 
> seeing any problems with using that option, but please let us know if you run 
> into something. It hasn't been as fully tested as we'd like.
> 
> 
> On Jun 19, 2013, at 12:10 AM, Elias Rudberg <elias.rudb...@it.uu.se> wrote:
> 
>> This has now been solved.
>> 
>> The solution (as suggested by Ralph) is to use the following four configure 
>> options together:
>> ./configure --enable_event_thread_support --enable_opal_multi_threads 
>> --enable_orte_progress_threads --enable_mpi_thread_multiple
>> 
>> So, apparently the --enable_mpi_thread_multiple option cannot be used by 
>> itself, it must be combined with the other three options, otherwise 
>> MPI_Init_thread will hang.
>> 
>> / Elias
>> 
>> 
>> Quoting Elias Rudberg <elias.rudb...@it.uu.se>:
>> 
>>> Hi,
>>> 
>>> I now tried using --enable-opal-multi-threads (I added an "s" in the end, 
>>> since "--enable-opal-multi-thread" was not recognized by the configure 
>>> script).
>>> 
>>> However, my test code still hangs in the same way as before.
>>> 
>>> To be clear, I now configure like this:
>>> ./configure --enable-mpi-thread-multiple --enable-opal-multi-threads
>>> 
>>> but the problem remains: MPI_Init_thread still hangs when trying to run the 
>>> test case with -np 2.
>>> 
>>> Any other ideas?
>>> Are there other configure options that must be used together with 
>>> --enable-mpi-thread-multiple to make it work?
>>> 
>>> Best regards,
>>> Elias
>>> 
>>> 
>>> Quoting Ralph Castain <r...@open-mpi.org>:
>>> 
>>>> Hmmm...well, your code runs fine for me:
>>>> 
>>>> Ralphs-iMac:mpi rhc$ mpirun -n 2 ./thread_init
>>>> Calling MPI_Init_thread...
>>>> Calling MPI_Init_thread...
>>>> MPI_Init_thread returned, provided = 3
>>>> MPI_Init_thread returned, provided = 3
>>>> Ralphs-iMac:mpi rhc$
>>>> 
>>>> I think the key, however, is that you also have to configure with 
>>>> --enable-opal-multi-thread.
>>>> 
>>>> 
>>>> On Jun 16, 2013, at 8:54 AM, Elias Rudberg <elias.rudb...@it.uu.se> wrote:
>>>> 
>>>>> Hello!
>>>>> 
>>>>> I would like to report what seems to be a bug in MPI_Init_thread in 
>>>>> OpenMPI 1.7.1.
>>>>> 
>>>>> The bug can be reproduced with the following test program 
>>>>> (test_mpi_thread_support.c):
>>>>> ===========================================
>>>>> #include <mpi.h>
>>>>> #include <stdio.h>
>>>>> int main(int argc, const char* argv[]) {
>>>>> int provided = -1;
>>>>> printf("Calling MPI_Init_thread...\n");
>>>>> MPI_Init_thread(NULL, NULL, MPI_THREAD_MULTIPLE, &provided);
>>>>> printf("MPI_Init_thread returned, provided = %d\n", provided);
>>>>> MPI_Finalize();
>>>>> return 0;
>>>>> }
>>>>> ===========================================
>>>>> 
>>>>> When trying to run this when OpenMPI was configured with 
>>>>> --enable-mpi-thread-multiple, the program hangs when trying to run using 
>>>>> anything more than one process.
>>>>> 
>>>>> Steps I use to reproduce this in Ubuntu:
>>>>> 
>>>>> (1) Download openmpi-1.7.1.tar.gz
>>>>> 
>>>>> (2) Configure like this:
>>>>> ./configure --enable-mpi-thread-multiple
>>>>> 
>>>>> (3) make
>>>>> 
>>>>> (4) Compile test program like this:
>>>>> mpicc test_mpi_thread_support.c
>>>>> 
>>>>> (5) Run like this:
>>>>> mpirun -np 2 ./a.out
>>>>> Then you see the following two lines of output:
>>>>> Calling MPI_Init_thread...
>>>>> Calling MPI_Init_thread...
>>>>> And then it hangs.
>>>>> 
>>>>> MPI_Init_thread did not hang in earlier OpenMPI versions (for example it 
>>>>> worked in 1.5.* and 1.6.*), so it seems like a bug introduced in 1.7.
>>>>> 
>>>>> The description above shows how I reproduce this in Ubuntu on my local 
>>>>> desktop computer, but the same problem exists for the OpenMPI 1.7.1 
>>>>> installation at the UPPMAX computer center where I wan to run my code in 
>>>>> the end. I don't know all details about how they installed it there, but 
>>>>> I know they set --enable-mpi-thread-multiple. So maybe it hangs in 1.7.1 
>>>>> on any computer as long as you use MPI_THREAD_MULTIPLE. At least I have 
>>>>> not seen it work anywhere.
>>>>> 
>>>>> Do you agree that this is a bug, or am I doing something wrong?
>>>>> 
>>>>> Best regards,
>>>>> Elias
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> us...@open-mpi.org
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>> 
>>>> 
>>>> _______________________________________________
>>>> users mailing list
>>>> us...@open-mpi.org
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> 
> 
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

--

Dr. Hans Ekkehard Plesser, Associate Professor
Head, Basic Science Section

Dept. of Mathematical Sciences and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway

Phone +47 6496 5467
Fax   +47 6496 5401
Email hans.ekkehard.ples...@umb.no
Home  http://arken.umb.no/~plesser


Reply via email to