You might want to try using the DVM (distributed virtual machine) mode in ORTE.
You can start it on an allocation using the “orte-dvm” cmd, and then submit
jobs to it with “mpirun --hnp ”, where foo is either the contact info
printed out by orte-dvm, or the name of the file you told orte-dvm to
Is it possible to use mpirun / orte as a load balancer for running serial
jobs in parallel similar to GNU Parallel?
https://www.biostars.org/p/63816/
Reason is on any major HPC system you normally want to use a resource
manager launcher (TM, slurm etc) and not ssh like gnu parallel.
I recall the
Hi Ralph, Gilles, Josh,
Adding "--rank-by core" into the mix straightens it all out - brilliant!
Thanks!
I had thought --rank-by was more related to the relationships between
multiple nodes - doh. I think I need to think more about what span does
(along with everything else)...
Many thanks
Just as a fun follow-up: if you wanted to load-balance across nodes as well as
within nodes, then you would add the “span” modifier to map-by:
$ mpirun --map-by socket:span,pe=2 --rank-by core --report-bindings -n 8
hostname
[rhc001:162391] SETTING BINDING TO CORE
[rhc001:162391] MCW rank 0 boun
One thing that might help is the *--rank-by *argument that allows you to
specify how ranks are assigned separate from mapping/binding (by default we
follow the mapping pattern).
For example - adding *--rank-by* to your last example:
$ mpirun -np 6 -map-by socket:PE=2 --bind-to core *--rank-by core
From the mpirun man page:
**
Open MPI employs a three-phase procedure for assigning process locations and
ranks:
mapping
Assigns a default location to each process
ranking
Assigns an MPI_COMM_WORLD rank value to each process
binding
Constrains each process to run on specific proce
Mark,
what about
mpirun -np 6 -map-by slot:PE=4 --bind-to core --report-bindings ./prog
it is a fit for 1) and 2) but not 3)
if you use OpenMP and want 2 threads per task, then you can
export OMP_NUM_THREADS=2
not to use 4 threads by default (with most OpenMP runtimes)
Cheers,
Gilles
- Ori
Hi,
I'm still trying to figure out how to express the core binding I want to
openmpi 2.x via the --map-by option. Can anyone help, please?
I bet I'm being dumb, but it's proving tricky to achieve the following
aims (most important first):
1) Maximise memory bandwidth usage (e.g. load balanc