In a PBS Pro select statement, what's the difference between procs and mpiprocs?



In my job script when I’m using the following options, what are the differences between each of them?
#PBS -l select=8:ncpus=8:mpiprocs=8

CURATOR: Scott Yockel



The line #PBS -l select=8:ncpus=8:mpiprocs=8, controls how the system allocates processor cores for your MPI jobs.

select=# -- allocate # separate nodes
ncpus=# -- on each node allocate # cpus (cores)
mpiprocs=# -- on each node allocate # cpus (of the ncpus allocated) to MPI

By varying the above, you can control how cpu resources are allocated, The above example allocates 64 cores all of which are for use by MPI (8 nodes with 8 cpus on each node).

If, for example, your program is hybrid MPI/OPENMP program that runs 8 MP threads on 4 mpi control processes, you would use something like: #PBS -l select=4:ncpus=12:mpiprocs=4.