Dominique, It looks like you are compiling Open MPI with Homebrew. The flags they use in the formula when --enable-mpi-thread-multiple is wrong. c.f. a similar problem with MacPorts https://lists.macosforge.org/pipermail/macports-tickets/2013-June/138145.html.
Pierre On Nov 23, 2013, at 4:56 PM, Ralph Castain <r...@open-mpi.org> wrote: > Hmmm...well, it seems to work for me: > > $ mpirun -n 4 ./thread_init > Calling MPI_Init_thread... > Calling MPI_Init_thread... > Calling MPI_Init_thread... > Calling MPI_Init_thread... > MPI_Init_thread returned, provided = 3 > MPI_Init_thread returned, provided = 3 > MPI_Init_thread returned, provided = 3 > MPI_Init_thread returned, provided = 3 > $ > > This is with the current 1.7 code branch, so it's possible something has been > updated. You might try it with the next nightly tarball and see if it helps. > > BTW: The correct configure option is --enable-mpi-thread-multiple > > My test program: > > #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; > } > > > On Nov 21, 2013, at 1:36 PM, Dominique Orban <dominique.or...@gmail.com> > wrote: > >> Hi, >> >> I'm compiling the example code at the bottom of the following page that >> illustrates MPI_Init_Thread(): >> >> http://mpi.deino.net/mpi_functions/mpi_init_thread.html >> >> I have OpenMPI 1.7.3 installed on OSX 10.8.5 with --enable-thread-multiple >> compiled with clang-425.0.28. I can reproduce the following on OSX 10.9 >> (clang-500) and another user was able to reproduce it on some flavor of >> Linux: >> >> $ mpicc -g -o testmpi testmpi.c -lmpi >> $ mpirun -n 2 ./testmpi >> $ # hangs forever >> >> I've no knowledge of how to debug MPI programs but it was suggested to me to >> do this: >> >> $ mpirun -n 2 xterm -e gdb ./testmpi >> >> In the first xterm, I say 'run' in gdb, interrupt the program after a while >> and get a backtrace: >> >> ^C >> Program received signal SIGINT, Interrupt. >> 0x00007fff99116322 in select$DARWIN_EXTSN () >> from /usr/lib/system/libsystem_kernel.dylib >> (gdb) where >> #0 0x00007fff99116322 in select$DARWIN_EXTSN () >> from /usr/lib/system/libsystem_kernel.dylib >> #1 0x00000001001963c2 in select_dispatch () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libopen-pal.6.dylib >> #2 0x000000010018f178 in opal_libevent2021_event_base_loop () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libopen-pal.6.dylib >> #3 0x000000010015f059 in opal_progress () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libopen-pal.6.dylib >> #4 0x0000000100019321 in ompi_mpi_init () from >> /usr/local/lib/libmpi.1.dylib >> #5 0x00000001000334da in MPI_Init_thread () from >> /usr/local/lib/libmpi.1.dylib >> #6 0x0000000100000ddb in main (argc=1, argv=0x7fff5fbfedc0) at >> testmpi.c:9 >> (gdb) backtrace >> #0 0x00007fff99116322 in select$DARWIN_EXTSN () >> from /usr/lib/system/libsystem_kernel.dylib >> #1 0x00000001001963c2 in select_dispatch () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libopen-pal.6.dylib >> #2 0x000000010018f178 in opal_libevent2021_event_base_loop () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libopen-pal.6.dylib >> #3 0x000000010015f059 in opal_progress () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libopen-pal.6.dylib >> #4 0x0000000100019321 in ompi_mpi_init () from >> /usr/local/lib/libmpi.1.dylib >> #5 0x00000001000334da in MPI_Init_thread () from >> /usr/local/lib/libmpi.1.dylib >> #6 0x0000000100000ddb in main (argc=1, argv=0x7fff5fbfedc0) at >> testmpi.c:9 >> (gdb) >> >> In the second xterm window: >> >> ^C >> Program received signal SIGINT, Interrupt. >> 0x00000001002e9a28 in mca_common_sm_init () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libmca_common_sm.4.dylib >> (gdb) where >> #0 0x00000001002e9a28 in mca_common_sm_init () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/libmca_common_sm.4.dylib >> #1 0x00000001002e5a38 in mca_mpool_sm_init () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/openmpi/mca_mpool_sm.so >> #2 0x00000001000793fa in mca_mpool_base_module_create () >> from /usr/local/lib/libmpi.1.dylib >> #3 0x000000010053fb41 in mca_btl_sm_add_procs () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/openmpi/mca_btl_sm.so >> #4 0x0000000100535dfb in mca_bml_r2_add_procs () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/openmpi/mca_bml_r2.so >> #5 0x000000010051e59c in mca_pml_ob1_add_procs () >> from /usr/local/Cellar/open-mpi/1.7.3/lib/openmpi/mca_pml_ob1.so >> #6 0x000000010001959b in ompi_mpi_init () from >> /usr/local/lib/libmpi.1.dylib >> #7 0x00000001000334da in MPI_Init_thread () from >> /usr/local/lib/libmpi.1.dylib >> #8 0x0000000100000ddb in main (argc=1, argv=0x7fff5fbfedc0) at >> testmpi.c:9 >> (gdb) >> >> >> The output of `ompi_info --parsable` is here: https://gist.github.com/7590040 >> >> Thanks in advance. >> >> Dominique >> >> >> >> _______________________________________________ >> 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