Description
Background information
What version of Open MPI are you using? (e.g., v4.1.6, v5.0.1, git branch name and hash, etc.)
v5.0.6
Describe how Open MPI was installed (e.g., from a source/distribution tarball, from a git clone, from an operating system distribution package, etc.)
Using docker commands:
WORKDIR /app
RUN wget https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.6.tar.gz
RUN tar -xvzf /app/openmpi-5.0.6.tar.gz
WORKDIR /app/openmpi-5.0.6
RUN ./configure --prefix="/opt/openmpi"
RUN make
RUN make install
Please describe the system on which you are running
- Operating system/version: Debian GNU/Linux 12 (bookworm)
- Computer hardware: Lenovo laptop (Intel(R) Core(TM) i7-10875H CPU @ 2.30GHz 32GB RAM)
- Network type:
Details of the problem
We have third party solution that internally can use one of the MPI implementation (Intel MPI, Open MPI or MPICH). We have no direct control of how that program run MPI - we just provide MPI "type" and MPI path.
Previously we used Intel MPI and when we need to run third-party app on the cluster we just set environment variable I_MPI_HYDRA_HOST_FILE=/path/to/hostfile
before run that app.
Question 1: Is there any way to specify hostfile for OpenMPI other than --hostfile
command argument? I saw some mentions of default-hostfile
(but that was also a mpirun
argument). I read that MCA parameters can be set using environment variables but I didn't find if hostfile
is one of the MCA ones.
Question 2: We run that 3rd party app inside container which starts under root user and by default Open MPI prevent running under root user. Command argument --allow-run-as-root
works correctly but as I previously mention we don't have direct control of mpirun
arguments. I see here that alternative option is to specify two environment variables: PRTE_ALLOW_RUN_AS_ROOT=1
and PRTE_ALLOW_RUN_AS_ROOT_CONFIRM=1
. But that seems not to work for me. Any ideas why?