Hi,

I am have a problem getting Alternative Path Migration (APM) to work
over the InfiniBand ports on my HCA.

Details on my configuration and the issue I have are below.  Please
let me know if you can provide any suggestions or corrections to my
configuration?  I will be happy to try other experiments and tests or
provide additional details to debug this problem further.

I have reviewed the Open MPI FAQ and the archive of this mailing list
but I was unable to resolve my problem.  There was one thread on
mult-rail fail-over with IB but it did not provide sufficient
information.

Thanks for your help,
Jeremy

Configuration:
MPI version 1.4.3 Bundled with OFED.
I have also tested with MPI version 1.5.4 but the results were the same.

I have 2 machines, each machine has a dual port Mellanox IB HCA
Mellanox MCX354A-FCBT (ConnectX-3 FDR).
I have cabled both ports of each HCA to the same IB Switch (Mellanox SX6036).

What I expected to happen:
I am trying to migrate data transmission between 2 ports of the same HCA.
Start an MPI application.  Unplug the fiber cable from Port 1 of an
HCA.  Observe that the MPI application continues and data is sent
across Port 2 of the HCA.

However, when I unplug the cable from Port 1 of the IB HCA, the MPI
application hangs and I get the following error messages:
Error 10: IBV_EVENT_PORT_ERR
Error 7: IBV_EVENT_PATH_MIG_ERR
Alternative path migration event reported
Trying to find additional path…
APM: already all ports were used port_num 2 apm_port 2

I've pasted the full verbose error message at the bottom of this email.

I started the MPI application using the following mpirun invocation:
mpirun –np 2 –machinefile machines –mca btl_openib_enable_apm_over_ports 1 demo

What works:
I think that the low level Mellanox IB hardware is working as
expected.  The switch, cables and both HCA ports move data OK.
If I don't use the btl_openib_enable_apm_over_ports option then MPI
traffic is evenly spread across both Port 1 and Port 2 while it is
running.
Also, I am able to successfully do fail-over using a bonded device
with IP. For example, if I use netperf to send TCP data over a bonded
IPoIB device I get the expected behavior.  When I unplug Port 1,
netperf keeps running and traffic goes over Port 2.

Detailed Error Message:
--------------------------------------------------------------------------
The OpenFabrics stack has reported a network error event.  Open MPI
will try to continue, but your job may end up failing.

  Local host:        bones
  MPI process PID:   23115
  Error number:      10 (IBV_EVENT_PORT_ERR)

This error may indicate connectivity problems within the fabric;
please contact your system administrator.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
The OpenFabrics stack has reported a network error event.  Open MPI
will try to continue, but your job may end up failing.

  Local host:        bones
  MPI process PID:   23115
  Error number:      7 (IBV_EVENT_PATH_MIG_ERR)

This error may indicate connectivity problems within the fabric;
please contact your system administrator.
--------------------------------------------------------------------------
[bones][[57528,1],0][btl_openib_async.c:327:btl_openib_async_deviceh]
Alternative path migration event reported
[bones][[57528,1],0][btl_openib_async.c:329:btl_openib_async_deviceh]
Trying to find additional path...
[bones][[57528,1],0][btl_openib_async.c:516:apm_update_port] APM:
already all ports were used port_num 2 apm_port 2

Reply via email to