Score:1

การซิงโครไนซ์เธรดในแอปพลิเคชันแบบมัลติเธรด

ธง er
PBH

ฉันใช้ เซียสต้า แพ็คเกจ dft บนระบบ CentOS 8 (คอร์) ที่มีโปรเซสเซอร์ XEON 16 คอร์ 32 เธรด พร้อม OpenMPI เวอร์ชัน 4.1.1 สำหรับการคำนวณทั้งหมด

  1. เนื่องจากฉันมี 32 เธรด ฉันจึงใช้ 28 เธรดในการคำนวณ SIESTA (ซึ่งใช้หน่วยความจำในปริมาณที่เหมาะสม ~ 60%) และเก็บ 4 เธรดที่เหลือไว้ฟรี

  2. อย่างไรก็ตาม หากฉันเริ่มใช้ 2 หรือ 3 ของเธรดที่เหลือสำหรับแอปพลิเคชันอื่น (ซึ่งมีการใช้หน่วยความจำเล็กน้อย) ในขณะที่คงการคำนวณ SIESTA ที่ 28 เธรด ฉันเห็นว่าความเร็วของการคำนวณ SIESTA ลดลงประมาณ 50-60 %

  3. ฉันได้ตรวจสอบการใช้งาน CPU แล้ว และเห็นว่าเธรดหนึ่งยังคงแทบไม่ได้ใช้งานเมื่อใช้ระบบในสถานการณ์ที่ 2

มีวิธีวินิจฉัยและแก้ไขปัญหานี้หรือไม่? สิ่งนี้เกิดขึ้นเนื่องจากข้อผิดพลาดในการจัดกำหนดการกระบวนการบางอย่างหรือไม่ สามารถใช้การผูกกระบวนการหรือแพคเกจการจัดตารางงานบางประเภทเพื่อปรับปรุงสิ่งนี้ได้หรือไม่?

Score:1
ธง cn

การใช้งาน CPU เป็น % อย่างง่ายไม่สามารถสื่อถึงความซับซ้อนของหลายคอร์ หลายเธรด หลายหน่วยปฏิบัติการ CPU และหน่วยความจำ เกือบจะแน่นอน CPU หยุดทำงานจริงในหน่วยความจำหรือแคช. และกระบวนการที่มีข้อมูลของพวกเขาจะต่อสู้กับหน่วยดำเนินการ


CPU นี้มี 16 คอร์เท่านั้น การปฏิบัติเหมือนมี 32 ในบางจุดจะลดประสิทธิภาพลงอย่างมากอย่างที่คุณค้นพบ แม้แต่กับ SMT 2 บางทีคุณอาจได้รับจำนวนเธรดถึง 125% ของคอร์ (20) แต่ 175% (28) กำลังผลักดัน โดยเฉพาะอย่างยิ่งกับสิ่งอื่น ๆ ที่กำลังทำงานอยู่ กลับลงด้าย

อย่าลืมคำนวณงานที่เป็นประโยชน์ที่ทำต่อเธรดต่อวินาที ทดลองเปลี่ยนทีละตัวแปร อาจลองใช้โปรเซสเซอร์ที่มีการกำหนดค่าแคชและจำนวนคอร์ที่แตกต่างกัน หากคุณมีสิทธิ์เข้าถึงสิ่งเหล่านั้น


วัดว่าคุณจนตรอกแค่ไหนด้วยตัวนับการตรวจสอบประสิทธิภาพ จะไม่ทำงานใน VM แต่คุ้มค่าที่จะลองบน Linux จาก Gregg ที่ฉันเชื่อมโยงไว้ก่อนหน้านี้:

perf stat -a -- นอน 10

ความเร็วสูงสุดตามทฤษฎีของ Xeons คือ 4 หรือ 5 คำสั่งต่อรอบ คุณจะไม่เข้าใจ แต่ < 1.0 IPC จะหยุดชะงักเป็นพิเศษในหน่วยความจำ


ทำความเข้าใจกับโค้ดของแอปพลิเคชันและฮอตสปอตอย่างแน่นอน ฟังก์ชันใดใช้เวลาส่วนใหญ่กับ CPU รหัสแอสเซมบลีใดได้รับผลกระทบหนักที่สุด หน่วยปฏิบัติการใดใน CPU ของคุณโดยเฉพาะที่ทำงานหนักที่สุดในการประมวลผล uops เหล่านี้

กราฟเปลวไฟ เหมาะสำหรับการแสดงภาพการทำงานของ CPU คุณกล่าวถึง EL 8 ซึ่งมี เครื่องมือบรรจุเปลวไฟ.

ยำติดตั้ง perf js-d3-flame-graph
# ระบบกว้าง 99 Hz เป็นเวลา 60 วินาที
สคริปต์ perf เฟลมกราฟ -a -F 99 สลีป 60 

ความเข้าใจในระดับนักพัฒนาของโปรแกรมเป็นสิ่งจำเป็นในการตีความผลลัพธ์อย่างเต็มที่ ด้วยสัญลักษณ์หรือซอร์สโค้ด รายงานประสิทธิภาพสามารถใส่คำอธิบายประกอบได้ ในดีบักเกอร์เช่นประสบการณ์

PBH avatar
er flag
PBH
สวัสดี ขอบคุณสำหรับการตอบกลับ ฉันตรวจสอบแล้วและ IPC ของฉันคือ 0.97 ดังนั้นดูเหมือนว่าระบบหยุดทำงานในหน่วยความจำ อย่างไรก็ตามฉันมีระบบนี้เพียงระบบเดียวและไม่สามารถตรวจสอบที่อื่นได้ ฉันจะตรวจสอบการเปลี่ยนแปลง IPC โดยเปลี่ยนจำนวนคอร์ที่ใช้เมื่อการคำนวณที่กำลังทำงานอยู่สิ้นสุดลง (อาจใช้เวลามากกว่าหนึ่งสัปดาห์)
PBH avatar
er flag
PBH
คุณมีความคิดเห็นอย่างไรเกี่ยวกับเครื่องมือ "ชุดงาน" จะสร้างความแตกต่างหรือไม่หากฉันผูกการคำนวณ SIESTA กับชุดของคอร์และโปรแกรมอื่นเข้ากับคอร์แยกต่างหาก นั่นจะทำให้คอร์ที่กำหนดสามารถทำงานกับเวิร์กโหลดเพียงประเภทเดียวได้หรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา