2012 MacBook Pro dört çekirdeğimde beklendiği gibi çalışan çok yoğun bir CPU iş parçacığı görevi yazdım. 20 iplikle serbest bırakıyorum ve Intel Power Gadget ile ölçülen minimum kısma değerine sahip sıcaklıklar 100 ° C'ye kadar çıkıyor.
Aynı programı ve veri dosyalarını evimde çift çekirdekli bir makine ile 2016 13 "MacBook Pro'ma alın ve çalıştırın, sıcaklık 100 ° C'ye yaklaşıncaya kadar 3.3-3.4 GHz’de kalmasını beklerdim. Üstteki komut, görevi% 350 olarak gösterir (her iki çift dişli için 2 çekirdekli), ancak CPU frekansı sadece 60 ° C sıcaklıkta ve fanlar sessizken ölü halde iken 1.6-1-8 GHz'ye kesilir. Tek iş parçacıklı CPU görevleri, makine 100 ° C'ye ulaşana ve fanlar kranklanıncaya kadar 3.3-3.4 GHz’i koruyarak beklendiği gibi davranır.
Her iki makine de güncel ve aynı gcc sürümlerini çalıştırıyor. İkiliyi çalışma makinesinden alıp 2016 Mac'e koysam da aynı sorun var.
Makine tam hızda çalışacak şekilde 3 veya 4 CPU tek iş parçacığı çalıştırırsam, dişli programı başlatırsanız, frekansı da yavaşlatır.
Her iki makinede de 16 GB RAM var.
Düzenle
Kodla oynadıktan sonra, bir görev çok fazla iş parçacığı oluşturduğunda boğulma olduğundan şüpheleniyorum. Bu programda okuduğum her kaydı alıyorum ve bunun için bir iş parçacığı oluşturuyorum. Ben sadece 20 ya da öylesine bir parçanın bir seferde gitmesine izin veriyorum, böylece hiçbir zaman 21 işten fazla konu olmayacak, ancak 30 dakika boyunca işlenecek 14.400.000 kayıt var ya da bu kayıtların her biri ayrı bir iş parçacığı tarafından işlenecek.
CPU zamanını emen ve 10 tanesini çalıştıran önemsiz bir pthread programı hazırladım. Sorun laptop koştu ve sorunları olmadan 95C'ye kadar ısındı.
Sanırım onları yok etmek ve tekrar başlatmak yerine aynı konuyu tekrar kullanmak için kodumu yeniden yazacağım.
Güncelleme 5/13/17
Birkaç saatlik çalışmadan sonra, şimdi sadece n dişi yaratıyor ve onları yeniden kullanıyor, bu işe yaramadı. CPU sıcaklığı dışında, bu makinenin boğulmasına neden olacak ne var?