Saya telah menulis tugas berulir intensif yang sangat CPU yang bekerja seperti yang diharapkan pada quad core MacBook Pro 2012 saya. Saya melepaskannya dengan 20 utas dan suhunya mencapai sekitar 100 ° C sebagaimana diukur dengan Intel Power Gadget dengan pembatasan minimal.
Bawa pulang program dan file data yang sama ke MacBook Pro 13 "2016 saya dengan mesin dual core dan mulai, saya akan berharap bahwa ia juga akan mempertahankan 3,3-3,4 GHz sampai suhu mendekati tanda 100 ° C. Perintah teratas menunjukkan tugas pada 350% (masing-masing 2 inti dua ulir), tetapi frekuensi CPU dipotong menjadi 1,6-1-8 GHz dengan suhu hanya pada 60 ° C atau lebih dengan kipas mati tenang. Jika saya mulai 4 terpisah tugas CPU ulir tunggal, mesin berperilaku seperti yang diharapkan dengan menjaga 3,3-3,4 GHz sampai mencapai 100 ° C dan penggemar mendapatkan engkol. Pertanyaannya adalah mengapa CPU saya dicekik?
Kedua mesin terbaru dan menjalankan versi gcc yang sama. Jika saya bahkan mengambil biner dari mesin yang bekerja dan menaruhnya di Mac 2016, ia memiliki masalah yang sama.
Jika saya menjalankan 3 atau 4 CPU single thread sehingga mesin berjalan dengan kecepatan penuh, kemudian memulai program berulir, itu akan memperlambat frekuensi juga.
Kedua mesin memiliki 16 GB RAM.
Edit
Setelah bermain-main dengan kode, saya curiga bahwa itu diperlambat ketika tugas membuat terlalu banyak utas. Dalam program ini, saya mengambil setiap catatan yang saya baca dan membuat utas untuknya. Saya hanya membiarkan 20 atau lebih utas berjalan sekaligus sehingga tidak ada waktu ada lebih dari 21 utas, tetapi ada 14.400.000 catatan yang akan diproses sehingga selama 30 menit atau lebih masing-masing rekaman tersebut akan diproses oleh utas terpisah.
Saya membuat program pthread sepele yang menyedot waktu CPU dan mengatur 10 di antaranya berjalan. Masalahnya laptop menjalankannya dan memanas hingga 95C tanpa masalah.
Saya kira saya akan menulis ulang kode saya untuk menggunakan kembali utas yang sama alih-alih menghancurkannya dan memulai kembali.
Perbarui 5/13/17
Setelah beberapa jam bekerja, sekarang hanya membuat n utas dan hanya menggunakannya kembali, itu tidak membantu. Selain suhu CPU, apa yang akan menyebabkan mesin ini melambat?