mpiexec -16 ...
我尝试在 384 GB RAM 服务器上执行,但它引发了 OOM Killer 并被中止。
如何设置mpiexec
执行内存限制?
我知道ulimit
,但它可能会影响其他进程。
谢谢。
答案1
我认为这可以用cgroups
:
创建一个名为 (或任何您选择的名称) 的 cgroup,mpigroup
并设置内存限制 (例如 50GB):
cgcreate -g memory,cpu:mpigroup
cgset -r memory.limit_in_bytes=$((50*1024*1024*1024)) mpigroup
然后,如果 mpiexec 已在运行,则将其纳入该 cgroup:
cgclassify -g memory,cpu:mpigroup $(pidof mpiexec)
mpiexec
或者在这个 cgroup 内执行:
cgexec -g memory,cpu:mpigroup mpiexec -16 ...