Hello, I have a problem using Open MPI on my linux system (pandaboard running Ubuntu precise). A call to MPI_Init_thread with the following parameters hangs:
MPI_Init_thread(0, 0, MPI_THREAD_MULTIPLE, &provided); it seems that we are stuck on this loop in function opal_condition_wait(): while (c->c_signaled == 0) { opal_progress(); this is the call stack: #0 opal_condition_wait (c=0x42528, m=0x42500) at ../../../../../../opal/threads/condition.h:76 #1 0xb6d23124 in orte_rml_oob_send (peer=0xb6e40ae0, iov=0xbeffefa4, count=1, tag=1, flags=16) at ../../../../../../orte/mca/rml/oob/rml_oob_send.c:153 #2 0xb6d2351a in orte_rml_oob_send_buffer (peer=0xb6e40ae0, buffer=0xbeffefdc, tag=1, flags=0) at ../../../../../../orte/mca/rml/oob/rml_oob_send.c:269 #3 0xb6e2dca6 in orte_routed_base_register_sync (setup=true) at ../../../../../orte/mca/routed/base/routed_base_register_sync.c:91 #4 0xb6d46274 in init_routes (job=3667329025, ndat=0x0) at ../../../../../../orte/mca/routed/binomial/routed_binomial.c:890 #5 0xb6e1a088 in orte_ess_base_app_setup () at ../../../../../orte/mca/ess/base/ess_base_std_app.c:150 #6 0xb6d2e630 in rte_init (flags=0 '\000') at ../../../../../../orte/mca/ess/singleton/ess_singleton_module.c:276 #7 0xb6e01404 in orte_init (flags=0 '\000') at ../../../orte/runtime/orte_init.c:131 #8 0xb6f552dc in ompi_mpi_init (argc=0, argv=0x0, requested=0, provided=0xbefff67c) at ../../../ompi/runtime/ompi_mpi_init.c:344 #9 0xb6f7c6f2 in PMPI_Init_thread (argc=0x0, argv=0x0, required=0, provided=0xbefff67c) at pinit_thread.c:84 #10 0x00008572 in main () at test_lib.c:8 In function opal_condition_wait(), opal_using_threads() returns false, shouldn't this returns true in this case, as we are calling the initialization function with MPI_THREAD_MULTIPLE? The global opal_uses_threads is set by calling opal_set_using_threads() from MPI_Init_thread(), however this happens further down in this function and we never reach the point in which this is set. Thanks, Juan.