-
Notifications
You must be signed in to change notification settings - Fork 912
Description
Hi ,
I am experiencing issues with MPI applications, Here are the context and detail on the issue : A month ago, we created a test environment with 4 VMs, where all MPI-based applications worked successfully over Ethernet using OpenMPI versions 4.1.2 and 4.1.4 on RHEL 7.9. Recently, we added two physical servers to this cluster, also running RHEL 7.9, with both Omni-Path (OPA) and Ethernet connectivity configured.
However, the problem is that even a simple "hello world" MPI application fails to run on the newly added physical servers.
here is the job script -
#!/bin/bash -x
#BSUB -o hello-dbg.%J
#BSUB -J hello
#BSUB -n 2
#BSUB -R "rusage[mem=60000] span[ptile=1] affinity[core(1):distribute=pack]"
#BSUB -q testing
#BSUB -m "server3 server4"
module load OpenMPI/4.1.4-GCC-11.2.0
module list
cd /home/user1/MyWork/osu/validate/ompi4.1.4-GCC-11.2.0
mpicc hello.c
which mpirun
echo $LSB_HOSTS
mpirun --mca btl_base_verbose 30 /home/user1/MyWork/osu/validate/ompi4.1.4-GCC-11.2.0/a.out
server1, server2 ( VMS) -
successfulrun.txt
server3 , server4 ( Physical servers) -
failedrun.txt
in both the log files, its not clear that which interface was used specifically for the communication but it seems that the failure happened when ofi btl was initialized. not sure which resources were exhausted.
suspecting there may be issues with the Omnipath setup , i selected all the tcp interfaces on server3 and server4 , but they all failed with same error ,
example -
eth_failrun1.txt
eth_okrun1.txt
despite selecting eth0.2634(network range same as ens192), contrary to my expectation ,
export OMPI_MCA_mtl="^ofi"
mpirun --mca btl_base_verbose 100 --mca btl_tcp_if_include eth0.2634 /home/user1/MyWork/osu/validate/ompi4.1.4-GCC-11.2.0/a.out
the ofi interface initialization was attempted -
[server2:3882373] select: initializing btl component ofi
libi40iw-i40iw_vmapped_qp: failed to pin memory for SQ
libi40iw-i40iw_ucreate_qp: failed to map QP
with
export OMPI_MCA_mtl="^ofi,psm2"
export OMPI_MCA_btl="^ofi"
i was able to disable the initialization of ofi, but then it was the usnic
[server3:3203372] select: initializing btl component usnic
libi40iw-i40iw_vmapped_qp: failed to pin memory for SQ
libi40iw-i40iw_ucreate_qp: failed to map QP
[server3:3873721] btl:usnic: disqualifiying myself due
There may be issues with the OPA , but i am sure that ethernet interfaces are configured correctly.
in order to validate the connectivity between server3 and server4 over interface ens0. i used some tests -
server1 & server2:
-bash-4.2$ ip a s|grep inet|grep ens192
inet 100.165.150.75/24 brd 100.165.150.255 scope global ens192
-bash-4.2$ ./iperf3 -s -B 100.165.150.75
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 100.165.150.76, port 44857
[ 5] local 100.165.150.75 port 5201 connected to 100.165.150.76 port 57216
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 2.88 GBytes 24.7 Gbits/sec
[ 5] 1.00-2.00 sec 2.75 GBytes 23.6 Gbits/sec
[ 5] 2.00-3.00 sec 2.62 GBytes 22.5 Gbits/sec
[ 5] 3.00-4.00 sec 2.69 GBytes 23.1 Gbits/sec
[ 5] 4.00-5.00 sec 2.65 GBytes 22.8 Gbits/sec
[ 5] 5.00-6.00 sec 2.65 GBytes 22.8 Gbits/sec
[ 5] 6.00-7.00 sec 2.69 GBytes 23.1 Gbits/sec
[ 5] 7.00-8.00 sec 2.67 GBytes 23.0 Gbits/sec
[ 5] 8.00-9.00 sec 2.60 GBytes 22.3 Gbits/sec
[ 5] 9.00-10.00 sec 2.59 GBytes 22.2 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 26.8 GBytes 23.0 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------
^Ciperf3: interrupt - the server has terminated by signal Interrupt(2)
-bash-4.2$
-bash-4.2$ ./iperf3 -c 100.165.150.75 -B 100.165.150.76
Connecting to host 100.165.150.75, port 5201
[ 5] local 100.165.150.76 port 57216 connected to 100.165.150.75 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 2.88 GBytes 24.7 Gbits/sec 0 2.05 MBytes
[ 5] 1.00-2.00 sec 2.74 GBytes 23.6 Gbits/sec 0 2.05 MBytes
[ 5] 2.00-3.00 sec 2.62 GBytes 22.5 Gbits/sec 0 2.05 MBytes
[ 5] 3.00-4.00 sec 2.68 GBytes 23.1 Gbits/sec 0 2.05 MBytes
[ 5] 4.00-5.00 sec 2.65 GBytes 22.8 Gbits/sec 0 2.05 MBytes
[ 5] 5.00-6.00 sec 2.65 GBytes 22.8 Gbits/sec 0 2.05 MBytes
[ 5] 6.00-7.00 sec 2.69 GBytes 23.1 Gbits/sec 0 2.05 MBytes
[ 5] 7.00-8.00 sec 2.67 GBytes 23.0 Gbits/sec 0 2.05 MBytes
[ 5] 8.00-9.00 sec 2.60 GBytes 22.3 Gbits/sec 0 2.05 MBytes
[ 5] 9.00-10.00 sec 2.59 GBytes 22.2 Gbits/sec 0 2.05 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 26.8 GBytes 23.0 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 26.8 GBytes 23.0 Gbits/sec receiver
iperf Done.
between server3 and server4:
ip a s|grep inet
inet 100.165.150.100/24 brd 100.165.150.255 scope global eth0.2634
-bash-4.2$ ./iperf3 -s -B 100.165.150.105
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 100.165.150.100, port 38484
[ 5] local 100.165.150.105 port 5201 connected to 100.165.150.100 port 35928
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 913 MBytes 7.65 Gbits/sec
[ 5] 1.00-2.00 sec 905 MBytes 7.59 Gbits/sec
[ 5] 2.00-3.00 sec 994 MBytes 8.33 Gbits/sec
[ 5] 3.00-4.00 sec 1.15 GBytes 9.91 Gbits/sec
[ 5] 4.00-5.00 sec 1.15 GBytes 9.91 Gbits/sec
[ 5] 5.00-6.00 sec 1.15 GBytes 9.91 Gbits/sec
[ 5] 6.00-7.00 sec 1.15 GBytes 9.91 Gbits/sec
[ 5] 7.00-8.00 sec 1.15 GBytes 9.91 Gbits/sec
[ 5] 8.00-9.00 sec 1.15 GBytes 9.91 Gbits/sec
[ 5] 9.00-10.00 sec 1.15 GBytes 9.91 Gbits/sec
[ 5] 10.00-10.00 sec 1.12 MBytes 9.44 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 10.8 GBytes 9.29 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------
-bash-4.2$ ./iperf3 -c 100.165.150.105 -B 100.165.150.100
Connecting to host 100.165.150.105, port 5201
[ 5] local 100.165.150.100 port 35928 connected to 100.165.150.105 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 914 MBytes 7.66 Gbits/sec 335 140 KBytes
[ 5] 1.00-2.00 sec 906 MBytes 7.59 Gbits/sec 290 140 KBytes
[ 5] 2.00-3.00 sec 994 MBytes 8.34 Gbits/sec 231 621 KBytes
[ 5] 3.00-4.00 sec 1.15 GBytes 9.91 Gbits/sec 0 621 KBytes
[ 5] 4.00-5.00 sec 1.15 GBytes 9.91 Gbits/sec 0 621 KBytes
[ 5] 5.00-6.00 sec 1.15 GBytes 9.91 Gbits/sec 0 621 KBytes
[ 5] 6.00-7.00 sec 1.15 GBytes 9.91 Gbits/sec 0 621 KBytes
[ 5] 7.00-8.00 sec 1.15 GBytes 9.90 Gbits/sec 0 621 KBytes
[ 5] 8.00-9.00 sec 1.15 GBytes 9.91 Gbits/sec 0 621 KBytes
[ 5] 9.00-10.00 sec 1.15 GBytes 9.90 Gbits/sec 0 621 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 10.8 GBytes 9.30 Gbits/sec 856 sender
[ 5] 0.00-10.00 sec 10.8 GBytes 9.29 Gbits/sec receiver
iperf Done.
so you can see that I have already tried disabling specific interfaces and validated iperf
for non-MPI communication, which works fine over Ethernet. Is there a checklist or list of basic network-related checks I can perform on the server MPI applications can at least run as expected over Ethernet interfaces?
Thank you in advance for your help!