Hi everyone,

on my 2 cores/4 threads development platform I want to start programs
via mpirun with over-subscription enabled by default. I have some
external packages which have tests that use more than 2 processes. They
all fail because Open MPI refuses them to run due to over-subscription.
I know that I can enable over-subscription with mpirun --oversubscribe
and that works well, but that would require to modify the packages'
autotools files or the generated Makefiles with I found hardly convenient.

I also tried two of the RMAPS MCA parameters:

 - rmaps_base_no_oversubscribe
 - rmaps_base_oversubscribe

(btw, are they redundant? Having two of them and one is the negation of
the other is quite confusing. The description in ompi_info reads quite
similar for the two.)

$ mpirun --mca rmaps_base_no_oversubscribe 0 --mca
rmaps_base_oversubscribe 1 -n 4 hostname
There are not enough slots available in the system to satisfy the 4
slots that were requested by the application:

Either request fewer slots for your application, or make more slots
available for use.

Setting the environment variables (OMPI_MCA_rmaps_...) did not help
either. The same goes or the FAQ [1]:

$ cat > my-hostfile
$ mpirun -np 4 --hostfile my-hostfile hostname
There are not enough slots available in the system to satisfy the 4 slots...

My Open MPI installation is a private build of version 4.0.0, configured
with nothing more than ./configure --prefix=/some/where --enable-mpi-fortran

How can I allow over-subscription by default? I am aware about
performance implications, but it's only used for testing and
development. I am not using a resource manager on that machine.

Thanks in advance

Regards, Steffen

[1] https://www.open-mpi.org/faq/?category=running#oversubscribing

users mailing list

Reply via email to