ฉันพยายามรันmpiexec -16 ...
บนเซิร์ฟเวอร์ RAM ขนาด 384 GB แต่มันเหนี่ยวนำให้เกิด OOM Killer และถูกยกเลิก
ฉันจะตั้งค่าขีด จำกัด หน่วยความจำสำหรับmpiexec
การดำเนินการได้อย่างไร
ฉันรู้ulimit
แต่อาจส่งผลกระทบต่อกระบวนการอื่น ๆ
ขอบคุณ.
ฉันพยายามรันmpiexec -16 ...
บนเซิร์ฟเวอร์ RAM ขนาด 384 GB แต่มันเหนี่ยวนำให้เกิด OOM Killer และถูกยกเลิก
ฉันจะตั้งค่าขีด จำกัด หน่วยความจำสำหรับmpiexec
การดำเนินการได้อย่างไร
ฉันรู้ulimit
แต่อาจส่งผลกระทบต่อกระบวนการอื่น ๆ
ขอบคุณ.
คำตอบ:
ฉันคิดว่าสิ่งนี้สามารถทำได้โดยใช้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
ภายในกลุ่มนี้:
cgexec -g memory,cpu:mpigroup mpiexec -16 ...
memory
ควบคุมจะเพียงพอ:cgcreate -g memory:mpigroup
?