2010 2,66 GHz 12 Core Mac Pro nutzt nicht alle 24 Threads?

Ich habe vor kurzem einen 2010er Mac Pro gekauft.

Hier sind die Spezifikationen

Ich frage mich, warum alle 24 Threads bei CPU-intensiven Aufgaben nie über 50% ausgelastet sind. Mein Kollege hat einen 2009er Mac Pro mit 2,93 GHz und 8 Kernen, und wir haben beide versucht, eine DVD mit Handbrake zu konvertieren , und im Aktivitätsmonitor auf dem Mac Pro von 2009 waren alle 8 Kerne/16 Threads fast zu 100 % ausgelastet, aber auf dem Mac Pro von 2010 alle 12 Kerne/24 Threads gingen nie über 55 % Auslastung hinaus. Wir führen Mountain Lion auf beiden Mac Pros aus

Antworten (1)

Es könnte so einfach sein, dass die Anwendung, die Sie zum Testen verwendet haben, eine andere Ressourcenbeschränkung als die CPU hatte, die sie daran hinderte, die CPUs zu sättigen. Zum Beispiel war die Handbremse möglicherweise darin begrenzt, wie schnell sie Daten auf oder von der Festplatte streamen konnte. Das würde die Arbeit, die den CPUs übertragen werden könnte, einschränken. Angesichts der Tatsache, dass Ihre CPUs schneller und reichlicher als der ältere Mac sind, ist es nicht verwunderlich, die CPUs nicht mit der gleichen Arbeitslast zu sättigen.

E/A-Konkurrenz wird als Beispiel verwendet. Ohne Analyse weiß ich nicht, was verhindern würde, dass die CPUs der Engpass sind. Es könnte die Synchronisierung zwischen so vielen Threads, E/A, ein Mangel an Arbeit sein, die parallel erledigt werden kann usw.

Hier ist ein Schnelltest, mit dem Sie dem System unabhängige Aufgaben zuweisen können. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus. Ändern Sie die 8, um die Anzahl der CPU-Kerne zu verdoppeln, die Sie haben. (doppelt, um Hyper-Threading zu ermöglichen)

for ((g=1;g<=8;g++)); do ( dd if=/dev/zero bs=100m count=10 | bzip2 -c > /dev/null & ); done

Das war genug, um meine CPU für 10-15 Sekunden zu beschäftigen. Ich habe ein Macbook Pro mit Quad-Core i7. Ihre CPUs benötigen möglicherweise mehr Arbeit, daher können Sie "count=10" auch in eine größere Zahl ändern.

Ich habe den Test durchgeführt und alle meine Threads waren zu 100 % ausgelastet. Also was bedeutet das für mich.
Es zeigt nur eine erfundene Arbeitslast, die Ihre CPUs sättigen kann. Das ist an sich nicht interessant, aber ich habe es nur als Kontrast zu Ihrer Handbremsarbeit bereitgestellt, die sie nicht gesättigt hat. Das Netto davon ist, dass die Handbremse eine parallele Skalierungsgrenze hat, auf die Sie gestoßen sind.