ฉันพยายามรัน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?