Acho que isso pode ser feito usando cgroups
:
Crie um cgroup chamado mpigroup
(ou qualquer outro nome que você escolher) com um limite de memória (de 50 GB, por exemplo):
cgcreate -g memory,cpu:mpigroup
cgset -r memory.limit_in_bytes=$((50*1024*1024*1024)) mpigroup
Então, se o mpiexec já estiver rodando, traga-o para este cgroup:
cgclassify -g memory,cpu:mpigroup $(pidof mpiexec)
Ou execute mpiexec
neste cgroup:
cgexec -g memory,cpu:mpigroup mpiexec -16 ...