Add --mca pml ob1 to your mpirun command.

George

On Sunday, April 24, 2016, dpchoudh . <dpcho...@gmail.com> wrote:

> Hello Gilles
>
> Thank you for finding the bug; it was not there in the original code; I
> added it while trying to 'simplify' the code.
>
> With the bug fixed, the code now runs in the last scenario. But it still
> hangs with the following command line (even after updating to latest git
> tree, rebuilding and reinstalling):
>
> mpirun -np 2 -mca btl self,sm ./mpi_hello_master_slave
>
> and the stack is still as before:
>
> (gdb) bt
> #0  0x00007f4e4bd60117 in sched_yield () from /lib64/libc.so.6
> #1  0x00007f4e4ba3d875 in amsh_ep_connreq_wrap () from
> /lib64/libpsm_infinipath.so.1
> #2  0x00007f4e4ba3e254 in amsh_ep_connect () from
> /lib64/libpsm_infinipath.so.1
> #3  0x00007f4e4ba470df in psm_ep_connect () from
> /lib64/libpsm_infinipath.so.1
> #4  0x00007f4e4c4c8975 in ompi_mtl_psm_add_procs (mtl=0x7f4e4c846500
> <ompi_mtl_psm>, nprocs=2, procs=0x23bb420)
>     at mtl_psm.c:312
> #5  0x00007f4e4c52ef6b in mca_pml_cm_add_procs (procs=0x23bb420, nprocs=2)
> at pml_cm.c:134
> #6  0x00007f4e4c2e7d0f in ompi_mpi_init (argc=1, argv=0x7fffe930f9b8,
> requested=0, provided=0x7fffe930f78c)
>     at runtime/ompi_mpi_init.c:770
> #7  0x00007f4e4c324aff in PMPI_Init (argc=0x7fffe930f7bc,
> argv=0x7fffe930f7b0) at pinit.c:66
> #8  0x000000000040101f in main (argc=1, argv=0x7fffe930f9b8) at
> mpi_hello_master_slave.c:94
>
> As you can see, OMPI is trying the PSM link to communicate, even though
> the link is down and it is not mentioned in the arguments to mpirun. (There
> are not even multiple nodes mentioned in the arguments.)
>
> Is this the expected behaviour or is it a bug?
>
> Thanks
> Durga
>
> 1% of the executables have 99% of CPU privilege!
> Userspace code! Unite!! Occupy the kernel!!!
>
> On Sun, Apr 24, 2016 at 8:12 PM, Gilles Gouaillardet <gil...@rist.or.jp
> <javascript:_e(%7B%7D,'cvml','gil...@rist.or.jp');>> wrote:
>
>> two comments :
>>
>> - the program is incorrect : slave() should MPI_Recv(..., MPI_ANY_TAG,
>> ...)
>>
>> - current master uses pmix114, and your traces mention pmix120
>>   so your master is out of sync, or pmix120 is an old module that was not
>> manually removed.
>>   fwiw, once in a while, i
>>   rm -rf /.../ompi_install_dir/lib/openmpi
>>   to get rid of the removed modules
>>
>> Cheers,
>>
>> Gilles
>>
>>
>> On 4/25/2016 7:34 AM, dpchoudh . wrote:
>>
>> Hello all
>>
>> Attached is a simple MPI program (a modified version of a similar program
>> that was posted by another user). This program, when run on a single node
>> machine, hangs most of the time, as follows: (in all cases, OS was CentOS 7)
>>
>> Scenario 1: OMPI v 1.10, single socket quad core machine, with Chelsio T3
>> card, link down, and GigE, link up
>>
>> mpirun -np 2 <progname>
>> Backtrace of the two spawned processes as follows:
>>
>> (gdb) bt
>> #0  0x00007f6471647aba in mca_btl_vader_component_progress () at
>> btl_vader_component.c:708
>> #1  0x00007f6475c6722a in opal_progress () at runtime/opal_progress.c:187
>> #2  0x00007f64767b7685 in opal_condition_wait (c=<optimized out>,
>> m=<optimized out>)
>>     at ../opal/threads/condition.h:78
>> #3  ompi_request_default_wait_all (count=2, requests=0x7ffd1d921530,
>> statuses=0x7ffd1d921540)
>>     at request/req_wait.c:281
>> #4  0x00007f64709dd591 in ompi_coll_tuned_sendrecv_zero (stag=-16,
>> rtag=-16,
>>     comm=<optimized out>, source=1, dest=1) at coll_tuned_barrier.c:78
>> #5  ompi_coll_tuned_barrier_intra_two_procs (comm=0x6022c0
>> <ompi_mpi_comm_world>,
>>     module=<optimized out>) at coll_tuned_barrier.c:324
>> #6  0x00007f64767c92e6 in PMPI_Barrier (comm=0x6022c0
>> <ompi_mpi_comm_world>) at pbarrier.c:70
>> #7  0x00000000004010bd in main (argc=1, argv=0x7ffd1d9217d8) at
>> mpi_hello_master_slave.c:115
>> (gdb)
>>
>>
>> (gdb) bt
>> #0  mca_pml_ob1_progress () at pml_ob1_progress.c:45
>> #1  0x00007feeae7dc22a in opal_progress () at runtime/opal_progress.c:187
>> #2  0x00007feea9e125c5 in opal_condition_wait (c=<optimized out>,
>> m=<optimized out>)
>>     at ../../../../opal/threads/condition.h:78
>> #3  ompi_request_wait_completion (req=0xe55200) at
>> ../../../../ompi/request/request.h:381
>> #4  mca_pml_ob1_recv (addr=<optimized out>, count=255,
>> datatype=<optimized out>,
>>     src=<optimized out>, tag=<optimized out>, comm=<optimized out>,
>> status=0x7fff4a618000)
>>     at pml_ob1_irecv.c:118
>> #5  0x00007feeaf35068f in PMPI_Recv (buf=0x7fff4a618020, count=255,
>>     type=0x6020c0 <ompi_mpi_char>, source=<optimized out>, tag=<optimized
>> out>,
>>     comm=0x6022c0 <ompi_mpi_comm_world>, status=0x7fff4a618000) at
>> precv.c:78
>> #6  0x0000000000400d49 in slave () at mpi_hello_master_slave.c:67
>> #7  0x00000000004010b3 in main (argc=1, argv=0x7fff4a6184d8) at
>> mpi_hello_master_slave.c:113
>> (gdb)
>>
>>
>> Scenario 2:
>> Dual socket Hexcore machine with Qlogic IB, Chelsio iWARP and Fibre
>> Channel, all link down, GigE, link up, OpenMPI compiled from master branch,
>> crashes as follows:
>>
>> [durga@smallMPI Desktop]$ mpirun -np 2 ./mpi_hello_master_slave
>>
>> mpi_hello_master_slave:39570 terminated with signal 11 at PC=20
>> SP=7ffd438c00b8.  Backtrace:
>>
>> mpi_hello_master_slave:39571 terminated with signal 11 at PC=20
>> SP=7ffee5903e08.  Backtrace:
>> -------------------------------------------------------
>> Primary job  terminated normally, but 1 process returned
>> a non-zero exit code. Per user-direction, the job has been aborted.
>> -------------------------------------------------------
>> --------------------------------------------------------------------------
>> mpirun noticed that process rank 0 with PID 0 on node smallMPI exited on
>> signal 11 (Segmentation fault).
>> --------------------------------------------------------------------------
>>
>> Scenario 3:
>> Exactly same as scenario 2, but with command line more explicit as
>> follows:
>>
>> [durga@smallMPI Desktop]$ mpirun -np 2 -mca btl self,sm
>> ./mpi_hello_master_slave
>> This hangs with the following backtrace:
>>
>> (gdb) bt
>> #0  0x00007ff6639f049d in nanosleep () from /lib64/libc.so.6
>> #1  0x00007ff663a210d4 in usleep () from /lib64/libc.so.6
>> #2  0x00007ff662f72796 in OPAL_PMIX_PMIX120_PMIx_Fence (procs=0x0,
>> nprocs=0, info=0x0, ninfo=0)
>>     at src/client/pmix_client_fence.c:100
>> #3  0x00007ff662f4f0bc in pmix120_fence (procs=0x0, collect_data=0) at
>> pmix120_client.c:255
>> #4  0x00007ff663f941af in ompi_mpi_init (argc=1, argv=0x7ffc18c9afd8,
>> requested=0, provided=0x7ffc18c9adac)
>>     at runtime/ompi_mpi_init.c:813
>> #5  0x00007ff663fc9c33 in PMPI_Init (argc=0x7ffc18c9addc,
>> argv=0x7ffc18c9add0) at pinit.c:66
>> #6  0x000000000040101f in main (argc=1, argv=0x7ffc18c9afd8) at
>> mpi_hello_master_slave.c:94
>> (gdb) q
>>
>> (gdb) bt
>> #0  0x00007f5af7646117 in sched_yield () from /lib64/libc.so.6
>> #1  0x00007f5af7323875 in amsh_ep_connreq_wrap () from
>> /lib64/libpsm_infinipath.so.1
>> #2  0x00007f5af7324254 in amsh_ep_connect () from
>> /lib64/libpsm_infinipath.so.1
>> #3  0x00007f5af732d0df in psm_ep_connect () from
>> /lib64/libpsm_infinipath.so.1
>> #4  0x00007f5af7d94a69 in ompi_mtl_psm_add_procs (mtl=0x7f5af80f8500
>> <ompi_mtl_psm>, nprocs=2, procs=0xf53e60)
>>     at mtl_psm.c:312
>> #5  0x00007f5af7df3630 in mca_pml_cm_add_procs (procs=0xf53e60, nprocs=2)
>> at pml_cm.c:134
>> #6  0x00007f5af7bcc0d1 in ompi_mpi_init (argc=1, argv=0x7ffc485a2f98,
>> requested=0, provided=0x7ffc485a2d6c)
>>     at runtime/ompi_mpi_init.c:777
>> #7  0x00007f5af7c01c33 in PMPI_Init (argc=0x7ffc485a2d9c,
>> argv=0x7ffc485a2d90) at pinit.c:66
>> #8  0x000000000040101f in main (argc=1, argv=0x7ffc485a2f98) at
>> mpi_hello_master_slave.c:94
>>
>> This seems to suggest that it is trying PSM to connect even when the link
>> was down and it was not mentioned in the command line. Is this behavior
>> expected?
>>
>>
>> Scenario 4:
>> Exactly same as scenario 3, but with even more explicit command line:
>>
>> [durga@smallMPI Desktop]$ mpirun -np 2 -mca btl self,sm -mca pml ob1
>> ./mpi_hello_master_slave
>>
>> This hangs towards the end, after printing the output (as opposed to
>> scenario 3 where it hangs at the connection setup stage, without printing
>> anything.)
>>
>> Process 0 of 2 running on host smallMPI
>>
>>
>> Now 1 slave tasks are sending greetings.
>>
>> Process 1 of 2 running on host smallMPI
>> Greetings from task 1:
>>   message type:        3
>>   msg length:          141 characters
>>   message:
>>     hostname:          smallMPI
>>     operating system:  Linux
>>     release:           3.10.0-327.13.1.el7.x86_64
>>     processor:         x86_64
>>
>>
>> Backtraces of the two processes are as follows:
>>
>> (gdb) bt
>> #0  opal_timer_base_get_usec_clock_gettime () at
>> timer_linux_component.c:180
>> #1  0x00007f10f46e50e4 in opal_progress () at runtime/opal_progress.c:161
>> #2  0x00007f10f58a9d8b in opal_condition_wait (c=0x7f10f5df3c40
>> <ompi_request_cond>,
>>     m=0x7f10f5df3bc0 <ompi_request_lock>) at
>> ../opal/threads/condition.h:76
>> #3  0x00007f10f58aa31b in ompi_request_default_wait_all (count=2,
>> requests=0x7ffe7edd5a80,
>>     statuses=0x7ffe7edd5a50) at request/req_wait.c:287
>> #4  0x00007f10f596f225 in ompi_coll_base_sendrecv_zero (dest=1, stag=-16,
>> source=1, rtag=-16,
>>     comm=0x6022c0 <ompi_mpi_comm_world>) at base/coll_base_barrier.c:63
>> #5  0x00007f10f596f92a in ompi_coll_base_barrier_intra_two_procs
>> (comm=0x6022c0 <ompi_mpi_comm_world>,
>>     module=0xd5a7f0) at base/coll_base_barrier.c:308
>> #6  0x00007f10f599ffec in ompi_coll_tuned_barrier_intra_dec_fixed
>> (comm=0x6022c0 <ompi_mpi_comm_world>,
>>     module=0xd5a7f0) at coll_tuned_decision_fixed.c:196
>> #7  0x00007f10f58c86fd in PMPI_Barrier (comm=0x6022c0
>> <ompi_mpi_comm_world>) at pbarrier.c:63
>> #8  0x00000000004010bd in main (argc=1, argv=0x7ffe7edd5d48) at
>> mpi_hello_master_slave.c:115
>>
>>
>> (gdb) bt
>> #0  0x00007fffe9d6a988 in clock_gettime ()
>> #1  0x00007f704bf64edd in clock_gettime () from /lib64/libc.so.6
>> #2  0x00007f704b4deea5 in opal_timer_base_get_usec_clock_gettime () at
>> timer_linux_component.c:183
>> #3  0x00007f704b2f50e4 in opal_progress () at runtime/opal_progress.c:161
>> #4  0x00007f704c6cc39c in opal_condition_wait (c=0x7f704ca03c40
>> <ompi_request_cond>,
>>     m=0x7f704ca03bc0 <ompi_request_lock>) at
>> ../../../../opal/threads/condition.h:76
>> #5  0x00007f704c6cc560 in ompi_request_wait_completion (req=0x165e580) at
>> ../../../../ompi/request/request.h:383
>> #6  0x00007f704c6cd724 in mca_pml_ob1_recv (addr=0x7fffe9cafa10,
>> count=255, datatype=0x6020c0 <ompi_mpi_char>,
>>     src=0, tag=1, comm=0x6022c0 <ompi_mpi_comm_world>,
>> status=0x7fffe9caf9f0) at pml_ob1_irecv.c:123
>> #7  0x00007f704c4ff434 in PMPI_Recv (buf=0x7fffe9cafa10, count=255,
>> type=0x6020c0 <ompi_mpi_char>, source=0,
>>     tag=1, comm=0x6022c0 <ompi_mpi_comm_world>, status=0x7fffe9caf9f0) at
>> precv.c:79
>> #8  0x0000000000400d49 in slave () at mpi_hello_master_slave.c:67
>> #9  0x00000000004010b3 in main (argc=1, argv=0x7fffe9cafec8) at
>> mpi_hello_master_slave.c:113
>> (gdb) q
>>
>> I am going to try the tarball shortly, but hopefully someone can get some
>> insight out of this much information. BTW, the code was compiled with the
>> following flags:
>>
>> -Wall -Wextra -g3 -O0
>>
>> Let me rehash that NO network communication was involved in any of these
>> experiments; they were all single node shared memory (sm btl) jobs.
>>
>> Thanks
>> Durga
>>
>>
>>
>> 1% of the executables have 99% of CPU privilege!
>> Userspace code! Unite!! Occupy the kernel!!!
>>
>>
>> _______________________________________________
>> users mailing listus...@open-mpi.org 
>> <javascript:_e(%7B%7D,'cvml','us...@open-mpi.org');>
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post: 
>> http://www.open-mpi.org/community/lists/users/2016/04/29018.php
>>
>>
>>
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org <javascript:_e(%7B%7D,'cvml','us...@open-mpi.org');>
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post:
>> http://www.open-mpi.org/community/lists/users/2016/04/29019.php
>>
>
>

Reply via email to