open-mpi / ompi

Open MPI main development repository
https://www.open-mpi.org
Other
2.17k stars 860 forks source link

How do I make mpirun continue despite node failures? #9882

Closed hatmer closed 2 years ago

hatmer commented 2 years ago

Background information

I am implementing a fault-tolerant version of a large software project (ArgoDSM) that relies on MPI for managing nodes.

What version of Open MPI are you using?

v4.1.2

Describe how Open MPI was installed

tarball

Please describe the system on which you are running


Details of the problem

I have a two-node system. I want the individual nodes to continue running after the network link between them is severed.

When I simulate a network failure (by cutting a node off from the network using iptables), mpirun crashes and I get the following error:

Connection to xx.xx.xx.xx closed by remote host.
--------------------------------------------------------------------------
ORTE was unable to reliably start one or more daemons.
This usually is caused by:
...
* an inability to create a connection back to mpirun due to a
  lack of common network interfaces and/or no route found between
  them. Please check network connectivity (including firewalls
  and network routing requirements).

I understand this to mean that mpirun sends a KILL -9 signal when it detects that it cannot reach the remote host. How do I prevent mpirun from terminating? It would be nice if instead of having a KILL -9 signal, I could set MPI_ERRORS_RETURN and deal with the "node unreachable" event as an MPI error.

I am aware of ftmpi, but as far as I can tell it does not prevent mpirun from terminating due to an unreachable node.

rhc54 commented 2 years ago

I'm afraid that will not work - OMPI v4 has no concept of continuing in that situation.

bosilca commented 2 years ago

You will need to install your own version of OMPI 4.x with resilient capabilities as indicated here.

jsquyres commented 2 years ago

Just to clarify: both answers are technically correct. 😉

hatmer commented 2 years ago

I installed Open MPI 5.0.0 (configured with the -with-ft=mpi flag) and it works perfectly. Thank you!