ฉันได้เขียนงาน threaded ที่ใช้ CPU มากซึ่งทำงานได้อย่างที่คาดไว้ใน MacBook Core Quad Core 2012 ของฉัน ฉันทำให้หลวมด้วย 20 กระทู้และอุณหภูมิสูงถึงประมาณ 100 ° C ตามที่วัดด้วย Intel Power Gadget ด้วยการควบคุมปริมาณที่น้อยที่สุด
ใช้โปรแกรมและไฟล์ข้อมูลเดียวกันกับที่บ้านในปี 2559 13 "MacBook Pro ของฉันด้วยเครื่องดูอัลคอร์และเริ่มทำงานฉันคาดหวังว่ามันจะยังคงรักษา 3.3-3.4 GHz จนกว่าอุณหภูมิจะอยู่ใกล้เครื่องหมาย 100 ° C คำสั่งด้านบนแสดงงานที่ 350% (2 คอร์แต่ละเธรดคู่) แต่ความถี่ของ CPU จะถูกตัดเป็น 1.6-1-8 GHz ที่อุณหภูมิเท่านั้นที่ 60 ° C หรือมากกว่านั้นเมื่อแฟน ๆ เงียบลงถ้าเริ่มแยก 4 งาน CPU แบบเธรดเดียวเครื่องทำงานตามที่คาดไว้โดยรักษาความเร็ว 3.3-3.4 GHz จนกว่าจะถึง 100 ° C และแฟน ๆ จะได้ cranking คำถามคือทำไม CPU ของฉันถูก throttled?
ทั้งสองเครื่องเป็นรุ่นล่าสุดและใช้งาน gcc รุ่นเดียวกัน ถ้าฉันใช้เลขฐานสองจากเครื่องที่ทำงานและวางไว้บน Mac 2016 มันมีปัญหาเดียวกัน
ถ้าฉันรัน CPU เดี่ยว ๆ 3 หรือ 4 เธรดดังนั้นเครื่องจะเต็มไปด้วยความเร็วแล้วเริ่มโปรแกรมเธรดมันจะลดความถี่ลงเช่นกัน
เครื่องทั้งสองมี RAM ขนาด 16 GB
แก้ไข
หลังจากเล่นด้วยรหัสฉันสงสัยว่ามันจะได้รับการควบคุมปริมาณเมื่องานสร้างหัวข้อมากเกินไป ในโปรแกรมนี้ฉันใช้แต่ละระเบียนที่ฉันอ่านและสร้างเธรด ฉันปล่อยให้ 20 เธรดเท่านั้นในแต่ละครั้งดังนั้นในเวลาไม่นานจะมีมากกว่า 21 เธรด แต่มีเร็กคอร์ด 14,400,000 เร็กคอร์ดที่จะถูกประมวลผลใน 30 นาทีหรือมากกว่านั้นแต่ละเร็กคอร์ดเหล่านั้นจะถูกประมวลผลโดยเธรดแยกต่างหาก
ฉันสร้างโปรแกรม pthread เล็ก ๆ น้อย ๆ ที่ดูดเวลา CPU และตั้งค่า 10 โปรแกรมให้ทำงาน แล็ปท็อปปัญหานั้นใช้งานได้และให้ความร้อนสูงถึง 95C โดยไม่มีปัญหา
ฉันเดาว่าฉันจะเขียนโค้ดของฉันใหม่เพื่อใช้เธรดเดียวกันซ้ำแทนที่จะทำลายมันและเริ่มต้นใหม่อีกครั้ง
อัปเดต 5/13/17
หลังจากทำงานหลายชั่วโมงตอนนี้จะสร้างเฉพาะเธรดและนำกลับมาใช้ใหม่ซึ่งไม่ได้ช่วย นอกเหนือจากอุณหภูมิของ CPU แล้วเครื่องนี้จะเร่งคันเร่งอย่างไร