Çok çekirdekli CPU enerji gereksinimi ve yük dengeleme


10

Çok çekirdekli CPU sistemleri için yük dengeleme ile ilgileniyorum. Birden fazla çekirdekli 1 CPU kullanıyorsanız, birkaç çekirdekteki yükü dengelemek veya tek çekirdeği doldurmaya ve diğerlerini boşta bırakmaya çalışmak daha fazla enerji tasarruflu mu?
Temel varsayım, her iki durumda da yapılan iş miktarının aynı anda ve aynı olduğudur. Yani, aynı CPU'da her biri% 25 yük ile 4 çekirdek veya% 100 yük ile 1 çekirdek kullanmak daha verimlidir.
% 100 yük ile 1 çekirdek daha verimli olmalı, ama yanlış olabilir gibi, bu sorun hakkında ciddi cevaplar arıyordum (tahmin yok).


+1 Gerçekten ilginç bir soru! İşte tomshardware.com/reviews/truth-pc-power-consumption,1707.html tomshardware.com/reviews/intel-cpu-power-consumption,1750.html bazı bağlantılar ancak sorunuza gerçekten cevap vermiyorlar. C2D T8100'üm var ve bu günlerden birinde hangi yükün daha fazla ısı ürettiğini görmek için bazı testler yapacağım.
AndrejaKo

% 25'te 4 çekirdek kesinlikle ısıyı% 100'de 1 çekirdekten daha iyi yayacaktır.
Brian Knoblauch

Kullanım miktarı boyunca çalışma miktarı sabitse, aynı çekirdeğe tüm yükün yığılması, daha düşük performans göstermesini sağlayacaktır - etkili bir şekilde daha fazla zaman harcayarak ve çöker. Aynı işin tamamlanması daha uzun süre gerektirdiğinde, anlık enerji tasarrufunu kaybedebilirsiniz. (+1, düşündürücü soru)
nik

@Brian, daha fazla çekirdek kullanılmasının ısıyı yaydığını kabul etti, ancak toplamda aynı miktarda ısı üretiyor mu?
Kevin Panko

AMD, aktif çekirdekleri daha yüksek saat hızında çalıştırmaya izin veren, kullanılmayan çekirdekleri kapatabilecek CPU'ları açıkladı
b0fh

Yanıtlar:


6

IMO bu soru genel durumda cevapsızdır.

Masamın üstünde bu yeni kanatlı Core i7-980x 6 çekirdekli TurboBoost özellikli işlemcilerden biri var. Bu makineye tek bir çekirdek yüklerseniz, bu çekirdeğin saat hızını artıracak ve böylece CPU'nun güç tüketimini artıracak, böylece büyük bir fark yaratacaktır. Bu CPU ve diğer daha modern CPU'lar, aktif olmayan çekirdeklerin kısmen gücünü keserek güç tasarrufunu artırabilir. Eski CPU modellerinde bu doğru değildir.

Tek bir çekirdeği ile yapmanız gereken işin, birden çok çekirdekli ile yaptığınız işten mutlaka farklı olacağını unutmayın. Eğer Eğer durum buysa olabilir çoklu çekirdek üzerine yük yaymak, ekstra çok zaman pahalı bağlam anahtarları gerçekleştiren tek çekirdekli harcanacak ve performans yaşayacaktır olduğunu göreceksiniz.

Her neyse, sorunun gerçekten cevaplaması için çok fazla değişken var. Farklı yük türleri hakkında devam edilebilir ve bir cevap almak için karşılaştırma yapmaya çalışan herkes (muhtemelen yanlışlıkla) diğer kullanım durumlarında geçerli olmayan elma-portakal karşılaştırmaları yapar.

Oh, ve bir şey daha. Çoğu insan muhtemelen güç açısından verimlilik teklif edecektir . O tuzağa düşmek istemiyorsun. Yüklerin işlenme süresi, yüklerin nasıl dengelendiğine bağlı olarak mutlaka farklı olacağından, güvenilir bir sonuca ulaşmak için işleri tamamlamak için kullanılan net enerji miktarını bulmak için sonucu zamanla entegre etmelisiniz .


LOL Nasıl anlatabilirsin? Hokie Mühendislik, bebeğim!
David Markle

Birini bilmek ister. Git Mizzou
Hotei

Bekle. Ben hatalıydım. Bazı durumları çalıştırabilen ve genel davada bize cevap verebilecek bir adam var: gizmodo.com/5598885/…
David Markle

4

Bugün bu bilgisayarı (Intel C2D T8100) ve lunatics yükleyici 0.36'dan optimize edilmiş SETI @ Home uygulamalarını kullanarak bazı testler yaptım . Güç tüketimini hesaplamak için M $ Joulmeter kullandım . Tüketim ağacı sürelerini ölçtüm. İlk olarak, BOINC'in% 100 çekirdek ve% 100 CPU süresi almasına ve bir saat çalışmasına izin verdim. İşlemci 20W tüketiyordu ve görev yöneticisinden alınan CPU zaman grafikleri% 100'de sabit kaldı. Bilgisayarımın ortalama güç tüketimi 45.05W ve yükseliyordu ve şu anda test güç tüketimi 46.18W idi.

İkinci testte, BOINC'i kullanılabilir çekirdeklerin% 50'sini ve CPU zamanının% 100'ünü alıp bir saat çalışmasına izin verdim. CPU güç tüketimi 12W ile 13W arasında değişiyordu. Ortalama tüketim 42.72W ve yükseliyordu. Testi durdurduğum anda tüketim 44W'dı. Hedeflenen çekirdek için CPU zaman grafiğinin düz çizgi olmasını sağlamak için, programın bir çekirdeğe yakınlığını ve önceliğini yüksek olarak ayarladım. Diğer çekirdek grafik normal CPU zaman kullanımından biraz daha yüksek gösterdi.

Üçüncü test için BOINC'i kullanılabilir çekirdeklerin% 100'ünü ve CPU zamanının% 50'sini kullanacak şekilde ayarladım. Güç tüketimi 5W ile 17W arasındaki büyük sıçramalarda değişiyordu. Bir saatlik testten sonra ortalama güç tüketimi 39.96W ve düşmüştür. CPU zaman çizelgeleri gibi looled /\/\/\/\/\/\/\/\/\/\/\/\/\. BOINC tarafından kullanılan zaman birimlerinin büyüklüğü nedeniyle ani artışlar bekleniyordu.

Bu yüzden yarım yükte çalışan iki çekirdeğin tam yükte bir çekirdeği çalıştırmaktan daha verimli olduğuna inanıyorum.

Ve evet, düzgün bir çalışma için çok daha fazla örneğe ihtiyaç duyulduğunu biliyorum, ancak o zaman uygun istatistikleri yapmak için yeterli bilgisayarım veya zamanım yok.


1
Şimdi diğer işletim sistemleri için Joulemeter'e eşdeğer bulmak güzel olurdu, o zaman aldığım ekipmanların bazılarını test edebilirim ...
private_meta

İşte GNU / Linux dizüstü bilgisayarlar için bir şey thinkwiki.org/wiki/How_to_measure_power_consumption
AndrejaKo

İşte bir başka ilginç bağlantı: www.lesswatts.org/ ve başka bir susegeek.com/general/… ve başka bir publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/… Görünüşe göre insanlar ACPI okumalarına inanmıyor ve ikna oldular harici sayaçlar gerekli olduğundan, bu bağlantıların çok azı harici sayaçların nasıl kullanılacağını tartışır. Herhangi bir yardım sağlayabilmek için diğer işletim sistemleri ile yeterince 1337 değilim.
AndrejaKo

Teşekkürler. Harici sayaçlardaki sorun, yalnızca işlem gücünü değil tüm güç tüketimini ölçmeleridir. Tüm güç tüketimi de önemli olsa da (örn. Algoritmalar yaygın olarak sabit sürücüleri kullanır). ACPI okumaları güvenilir görünmüyorsa, bunları karşılaştırmak için Windows Bilgisayarlar için harici okumalar da kullanmanız gerekir: - /
private_meta

Ama yine de ACPI okumaları hiçbir okumadan daha iyidir, değil mi? Ayrıca, CPU'yu en çok etkileyen testler kullanarak, temel güç tüketimi oluşturabilir ve yük ile ne kadar arttığını görebiliriz. Bu şekilde, tüketim değişikliğinin çoğunun CPU yükünden kaynaklandığını biliyoruz. Daha sonra voltmetre ve ampermetre ile biraz daha test yapabilirim. ACPI ölçümlerinin ve gerçek enstrüman ölçümlerinin nasıl karşılaştırıldığını görmek gerçekten ilginç olurdu. Çok kötü böyle bir karşılaştırma genelleştirilemez.
AndrejaKo

0

Sorunuzun cevabı iki yönlüdür: Yüksek oranda vektörleştirilebilir, paralel kod çalıştırıyorsanız, yükü birden fazla çekirdek üzerinde dengelemek her zaman daha verimlidir. Çekirdekler, sınırına kadar itilen tek bir çekirdekten daha az ısı yayan düşük yüklerde çalışacaktır. Öte yandan, kodunuz paralelleştirilemezse, kod boyunca bağımlılıklar nedeniyle oluşacak önbellek kaçırma sayısı nedeniyle kodu birden çok çekirdekte çalıştırmak daha az verimlidir. Bu yine de daha az ısı üretebilir, ancak görevinizi tek bir çekirdekte çalıştırmaya kıyasla tamamlamanız kesinlikle daha uzun sürer.


1
Ancak, paralelleştirilemeyen kodunuz varsa, birden fazla çekirdeğe nasıl gireceksiniz?
AndrejaKo

Sizce birlikte% 25'e yerleştirilen 4 çekirdek,% 100'e itilen 1 çekirdekten daha az ısı üretir (ve daha fazla enerji kaybı üretir).
private_meta

@AndrejaKo Birden fazla işlem veya iş parçacığı varsa, bunları çekirdeklere yaymak kolaydır.
emish

0

Sorulan soruda çok fazla bilinmeyen var. Zaman verimliliği mi yoksa enerji verimliliği mi soruyorsunuz? Paralel olmayan kod mu yoksa paralel kod mu? Tek bir iş mi yoksa ortalama bir masaüstü çoklu görev mi? Bilgisayarlarınız için ayda 1000 dolardan fazla bir enerji faturanız varsa, bir veya iki endişeye değer olabilir. Aksi takdirde, sorunu çözmeye değecek kadar tasarruf edemezsiniz. Konuşmak eğlenceli - ancak ciddi bir sorununuz varsa en iyi cevap: farklı şeyler deneyin ve neyin işe yaradığını görün.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.