Gaurav Saxena
Gaurav Saxena

Reputation: 729

How to use different processes-per-resource (ppr) and processing elements (pe) for an hybrid MPMD program?

I am using mpirun to run a hybrid program as a Multiple Data Multiple Program (MPMD) application as follows:

mpirun -x OMP_NUM_THREADS=4 -x OMP_PLACES=cores -n 28 --map-by ppr:14:socket:pe=4  --host abc0:112 ./hello_world.exe : -x OMP_NUM_THREADS=8 -x OMP_PLACES=cores -n 14  --map-by ppr:7:socket:pe=8  --host xyz0:112 ./hello_world.exe

But the following OpenMPI/4.1.5 run-time error is produced:

Your job has requested more processes than the ppr for
this topology can support:

  App: ./hello_world.exe
  Number of procs:  28
  PPR: 7:socket

Please revise the conflict and try again.

I also tried it by specifying the --hostfile option with a separate host file for each application instance but the error is the same. Each node has 2 sockets with 56 cores each and I am trying to utilise all the cores but with a different process and thread count on each node.

Can someone advise on how to rectify the error ? Thank you in advance.

Additional information :

(A) SLURM version: slurm 23.02.7

(B) Allocating 2 nodes using:

salloc -N 2 -t 01:00:00 --exclusive

Each node has 2 sockets of 56 cores each.

(C) Compiled using: oneapi/2023.2.0 like:

mpicc -qopenmp hello_world.c -o hello_world.exe

Upvotes: 0

Views: 100

Answers (0)

Related Questions