openPMD / openPMD/openPMD-api

OpenMPI: Update to 3.0.5+|3.1.5+|4.0.1+ or Use ROMIO for IO

Open
#446 1 comment 0 reactions 0 assignees View on GitHub
affects latest release backend: ADIOS1 backend: HDF5 bug third party
Dominant language
C++
Stars
161
Forks
59
Avg merge
2d 22h
Merged PRs (30d)
7

Description

A note on using openPMD-api, especially the parallel HDF5 backend, with OpenMPI:

OpenMPI's default for its IO backend is OMPIO, [starting with 2.x](https://www.open-mpi.org/faq/?category=ompio).

The issues below are fixed in OpenMPI versions:

- [ ] ~~`v2.0`~~: affected, not fixed (end-of-life)
- [ ] ~~`v2.x`~~: affected, not fixed (end-of-life)
- [x] [`v3.0.4`](https://raw.githubusercontent.com/open-mpi/ompi/v3.0.x/NEWS) or newer
- [x] [`v3.1.4`](https://raw.githubusercontent.com/open-mpi/ompi/v3.1.x/NEWS) or newer
- [x] [`v4.0.1`](https://raw.githubusercontent.com/open-mpi/ompi/v4.0.x/NEWS) or newer

Unfortunately, that backend contains severe bugs leading to data corruption and sporadic crashes as of the latest releases (affected: 2.X to 3.1.3 and 4.0.0). We saw those issues so far with parallel HDF5, but since other MPI-IO-parallel methods such as ADIOS use the same MPI ~~-IO~~ API they are potentially affected as well. Please see https://github.com/open-mpi/ompi/issues/6285 for details.

As a work-around for all systems that rely on OpenMPI (and its derivatives, such as BullMPI), disable the "OMPIO" default IO backend and fallback to the existing ROMIO backend for MPI-I/O until fixed versions are available.

Available runtime switches:
```bash
export OMPI_MCA_io=^ompio
mirun ...
```
or
```bash
mpirun --mca io ^ompio ...
```

Other MPI implementations such as MPICH, and [MPICH-based flavors](https://www.mpich.org/about/collaborators/) such as IntelMPI, use ROMIO by default (they develop ROMIO) and are not affected.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.