Tôi đã viết một tác vụ luồng rất chuyên sâu cho CPU, hoạt động như mong đợi trên lõi tứ MacBook Pro 2012 của tôi. Tôi xoay nó lỏng lẻo với 20 luồng và nhiệt độ lên tới khoảng 100 ° C như được đo bằng Intel Power Utility với điều chỉnh tối thiểu.
Mang cùng một tệp chương trình và dữ liệu về MacBook Pro 13 "2016 của tôi với một máy lõi kép và khởi động nó, tôi hy vọng rằng nó cũng sẽ giữ tốc độ 3,3-3,4 GHz cho đến khi nhiệt độ đạt gần mốc 100 ° C. Lệnh trên cho thấy nhiệm vụ ở mức 350% (mỗi lõi 2 luồng), nhưng tần số CPU bị cắt xuống còn 1,6-1-8 GHz với nhiệt độ chỉ ở 60 ° C hoặc hơn với các quạt chết lặng. Nếu tôi bắt đầu 4 tách rời Các tác vụ CPU đơn luồng, máy hoạt động như mong đợi với tốc độ 3,3-3,4 GHz cho đến khi chạm tới 100 ° C và quạt bị hỏng. Câu hỏi đặt ra là tại sao CPU của tôi bị điều chỉnh?
Cả hai máy đều được cập nhật và chạy cùng một phiên bản gcc. Nếu tôi thậm chí lấy nhị phân từ máy làm việc và đưa nó vào máy Mac 2016, thì nó cũng có vấn đề tương tự.
Nếu tôi chạy 3 hoặc 4 luồng CPU đơn để máy hoạt động hết tốc độ, sau đó khởi động chương trình luồng, nó cũng làm chậm tần số.
Cả hai máy đều có RAM 16 GB.
Chỉnh sửa
Sau khi chơi xung quanh với mã, tôi nghi ngờ rằng nó đang bị điều chỉnh khi một tác vụ tạo quá nhiều luồng. Trong chương trình này, tôi lấy từng bản ghi tôi đọc và tạo một chủ đề cho nó. Tôi chỉ để 20 chủ đề đi cùng một lúc để không có lúc nào có hơn 21 chủ đề, nhưng có 14.400.000 hồ sơ được xử lý trong vòng 30 phút hoặc mỗi hồ sơ sẽ được xử lý bởi một luồng riêng biệt.
Tôi đã tạo ra một chương trình pthread tầm thường, hút thời gian CPU và thiết lập 10 trong số chúng đang chạy. Máy tính xách tay có vấn đề chạy và làm nóng đến 95C mà không gặp vấn đề gì.
Tôi đoán tôi sẽ viết lại mã của mình để sử dụng lại cùng một chủ đề thay vì phá hủy chúng và khởi động lại chúng.
Cập nhật 5/13/17
Sau vài giờ làm việc, bây giờ nó chỉ tạo ra n chủ đề và chỉ sử dụng lại chúng, điều đó không giúp ích gì. Khác với nhiệt độ CPU, điều gì sẽ khiến máy này giảm tốc?