ทำไมการใช้ Hyper-threading จึงทำให้ประสิทธิภาพลดลง


10

ฉันได้อ่านมันในสถานที่ต่าง ๆ เช่นนี้แล้วการทำไฮเปอร์เธรดทำให้ประสิทธิภาพลดลง

ฉันไม่สามารถหาสาเหตุหรือวิธีการไฮเปอร์เธรดที่นำไปสู่ความเสื่อมโทรม

ทำไมถึงเป็นเช่นนั้นแม้เมื่อ Hyper-threading อนุญาตให้ระบบปฏิบัติการใช้ทรัพยากรฟรีการสลายตัวก็เกิดขึ้น

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

ขอบคุณ

คำตอบ:


8

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

แน่นอนว่านี่เป็นภาระงานที่เฉพาะเจาะจงมากซึ่งจะอธิบายว่าทำไมปัญหาส่วนใหญ่จึงเกิดขึ้นบนเซิร์ฟเวอร์

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.