Müs Lee schrieb:
Muss das wirklich immer noch diskutiert werden oder fragst du aus ernstem Interesse?
Ich frage aus ernstem Intresse, und ich denke es sollte noch diskutiert werden. Schöne Prozessoren sind sinnlos ohne Software, die sie völlig benutzen kann.
Wurden noch nicht genug Anwendungsgebiete hier beschrieben? Kleine Liste gefällig? Die können auch noch viiiieeel mehr Kerne auslasten, man muss das Problem nur ordentlich skalieren.
Zu viele Anwendungen. Viele können 32 Kerne nicht „gut belasten“, wie gefragt. Wenn ich „gut belasten“ schreibe, meine ich, dass die Kerne benutzt wird um Programmfortschritt zu machen. Wir können nicht von „gut belasten“ reden, wenn
a) die Software skaliert auf die Anzahl der Kerne nicht, wegen zu viel synchronisierten Codes, zwischen-Thread-Kommunikation, usw.
b) die Leistung der Software wird von anderswo begrenzt (Speicher, Festplatte, Netzwerk, …)
https://www.cfd-online.com/Forums/hardware/198378-openfoam-benchmarks-various-hardware.html
Xeon Gold 6148 (20-Kern-Prozessor) - Laufzeit mit 8 Threads: 136 Sekunden, 20 Threads: 98 Sekunden ⇒ 56% die Leistung pro Thread von 8 ⇒ 20 Threads. Ein Thread der letzten 12 ist im Schnitt 39% so nützlich als ein der ersten 8.
2x Epyc 7301 (16-Kern-Prozessor) - Laufzeit mit 16 Threads: 66,5 Sekunden, 32 Threads: 42,6 Sekunden ⇒ 78% die Leistung pro Thread von 16 ⇒ 32 Threads. Ein Thread der letzten 16 ist im Schnitt 56% so nützlich, als ein der ersten 16.
ich habe keine gute Benchmarks gefunden, aber auf Seite 10 hier:
https://altairatc.com/na/2012Presentations/PDFs/HPC Advisory Council.pdf
3,75 Jobs pro Tag mit sechs Kerne, 4,75 Jobs pro Tag mit 12 Kerne ⇒ 63% die Leistung pro Kern von 6 ⇒ 12 Kerne. Ein Kern der letzten 6 ist im Schnitt 27% so nützlich, als ein der ersten 6.
https://www.cfd-online.com/Forums/hardware/196400-amd-epyc-cfd-benchmarks-ansys-fluent.html
ich benutze nur die erste Ergebnisse
2x Epyc 7301 - 24 Threads: 92,6 Sekunden, 32 Threads: 74,4 Sekunden ⇒ 93% die Leistung pro Thread von 24 ⇒ 32 Threads. Ein Thread der letzten 8 ist im Schnitt 73% so nützlich, als ein der ersten 24.
andere Ergebnisse hier:
https://www.ansys.com/solutions/sol...-spray-guided-gasoline-direct-injection-model
16 Kerne: 133,5910; 32 Kerne: 197,1477 ⇒ 74% die Leistung pro Kern von 16 ⇒ 32 Kerne. Ein Kern der letzten 16 ist im Schnitt 48% so nütlich, als eir der ersten 16.
nichts gefunden
Benchmarks gefunden, aber sie sind alle mit Vier-Kernern durchgefürt. Nützlos.
http://wiki.palabos.org/plb_wiki:benchmark:cavity_n100
Seite 5:
https://pop-coe.eu/sites/default/files/pop_files/pop-ar-ateles.pdf
Cray XC40. Der Computer is sehr specialisiert, und ich denke diese Ergebnisse sind nicht für Threadripper relevant.
24 Kerne: 15, 16 Kerne: 10 ⇒ 100% der Leistung pro Kern von 16 ⇒ 24 Kerne
Sehr gute Skalierbarkeit. Die Software muss gut geschrieben werden.
nichts gefunden
Ich habe nicht versucht, Benchmarks für Ihre andere Beispiele zu finden. Es ist unwahrscheinlich, dass es Software gibt, die besser als solche Simulationen skaliert.
Keiner skaliert gut auf 32 Kerne (ich ignoriere den Supercomputer). Sogar Fluent gibt nur 24% mehr Leistung für 33% mehr Kerne - von 24 Kerne zu 32 ist es, als ob 30 Kerne effizient arbeiten, während die andere zwei nichts machen. Das ist mit einem acht-Speicher-Kanal EPYC. Es würde schlechter auf Threadripper aussehen.
Das ist so stark von der Anwendung abhängig, dass die Aussage wenig wert besitzt. Natürlich können 32 Kerne vom Speicherinterface begrenzt werden, genau so gut kann das auch mit vier Kernen passieren.
Mit jedem zusätzlichen Kern wird die Belastung des Speicherinteraces größer, und die Nützlichkeit des Kerns weniger (außer theoretische Anwendungen, die Speicher nicht zugriffen).
MuhKalb schrieb:
Also auch falls man jetzt keine super optimierte Software hat und man nun mit Mulithreading bei einer Anwendung vielleicht "nur" 8 Kerne auslastet, besteht bei 32 Kernen immer noch die nette Möglichkeit, mehrere andere Anwendungen parallel (=Multitasking) laufen zu lassen (wenn nicht sogar die besagte 8-Kern-Anwendung gleich mehrfach auszuführen)
Derzeit laufen 215 threads auf meinem billigen 4-Kern-Laptop. Man braucht viele Kerne nicht, um viele Threads laufen zu lassen. Der Vorteil 32 Kerne zu haben, ist wenn man sie belasten kann. Aber mehr Kerne hinzuzufügen ohne den Rest des Computers schneller zu machen, macht nur einen Flashenhals.
Was AMD gerade macht, gefällt mir. Ich bin Computer-Enthusiast, und bin froh, dass 8, 16, 32 und 64 Kern-Computer jetzt kaufbar (oder fast kaufbar) sind. Ich sehe klar, dass Multithread-Programmierung die Zukunft (und Gegenwart tatsächlich) ist. Trotzdem denke ich, dass der 2990X eine sehr sehr begrenzte Benutzung haben wird. Es gibt wenig Software, das gut genug geschrieben wird um diese Kerne effizient zu benutzen. Sogar im Bereich Simulationen, wo es (wahrscheinlich) gute Software gibt, kann man einen 32-Kern Computer nicht „gut belasten“ - wahnscheinlich wegen des Speicherinterfaces.
Wir müssen warten bis die neue Threadrippers verfügbar sind, aber ich erwarte nicht, dass der 2990X ein Segen für den Mittlestand sein wird. Für Simulationen wäre EPYC die bessere Wahl.