Usually when I use mpirun, I can "overload" it, using more processors than there acctually are on my computer. For example, on my four-core mac, I can run mpirun -np 29 python -c "print 'hey'"
no problem. I'm on another machine now, which is throwing the following error:
$ mpirun -np 25 python -c "print 'hey'"
--------------------------------------------------------------------------
There are not enough slots available in the system to satisfy the 25 slots
that were requested by the application:
python
Either request fewer slots for your application, or make more slots available
for use.
--------------------------------------------------------------------------
Why isn't "overclocking" mpirun working here? Is there a way I can overcome this error message and successfully run with more processors than are available?
According to https://www.open-mpi.org/faq/?category=running#oversubscribing you could oversubscribe your node using a hostfile. Before proceeding, be careful that this way you can severely degrade the performance of the node. Also, if the system you use to run the application is using a queue system, this may not be valid.
First create a hostfile (named hostfile) containing
localhost slots=25
The simply run your application like
mpirun --hostfile hostfile -np 25 python -c "print 'hey'"