Dual Core - Blogs@FAU
Transcription
Dual Core - Blogs@FAU
Erfahrungen und Benchmarks mit Dual-Core-Prozessoren Georg Hager Regionales Rechenzentrum Erlangen (RRZE) ZKI AK Supercomputing Karlsruhe, 22./23.09.2005 Dual Core: Anbieter heute IBM Power4/Power5 (Power5 mit SMT) p6xx: MCM-basiert OpenPower 7xx: DCM-basiert, Struktur ähnlich Dual-DC Opterons System im Test: OpenPower720 mit 2 DC Power5 @ 1.65 GHz und 10GB Speicher AMD Opteron (seit August auch Athlon64) diverse Anbieter, Upgrade von Sockel939-Systemen u.U. möglich bis zu 4, bald 8 Sockets pro Board Systeme im Test: Sun Fire V20z (2x2 Cores), Transtec-Testsystem (4x2 Cores) Intel Pentium D single Socket, FSB800 Hyperthreading System im Test: FSC "Esprimo" PC, 2.8 GHz Sun UltraSparc IV+ 23.09.05 [email protected] Dual-Core-Prozessoren 2 Dual Core: Die wichtigsten Fragen Was bringt der zweite Kern? Geringere Taktfrequenz = schwächere Performance? Geteilte Speicherbandbreite = halbe Performance? Können 2 Cores die Bandbreite besser nutzen als einer? Getrennte/gemeinsame Caches: Was ist besser? Direkte Kommunikation zwischen den Cores in einem Socket? Thread-/Prozess-Placement: Wie werden im halb vollen System die Threads platziert? Bei Dual-Core-Multi-Socket-Systemen: Wie erfolgt die Zuordnung von Core zu Speicherkanal? Vorläufiges Fazit: Benchmarks sind unbedingt notwendig! 23.09.05 [email protected] Dual-Core-Prozessoren 3 Warum Dual Core? Das „Megaflop-Rennen“ wird bald zu Stillstand kommen CPUPerformance Multi Core Performance Single Core Performance © Intel 23.09.05 2004 [email protected] Zeit Dual-Core-Prozessoren 4 Die Annahmen hinter Multi-Core Mehrere Cores sollen mehr Performance pro Watt auf gleichem Raum bringen Power small Core Core Performance Cache 1 23.09.05 1/4 1/2 small Core small Core small Core small Core [email protected] 2 © Intel Dual-Core-Prozessoren 5 Komplikationen Systeme mit einem Speicherkanal C1 C2 C3 C4 Thread/MemoryZuordnung egal! Memory Systeme mit mehreren Speicherkanälen (ccNUMA) C1 C2 C3 C4 ? Memory 23.09.05 Thread/MemoryZuordnung essenziell! Memory [email protected] Dual-Core-Prozessoren 6 Thread/Memory Placement wie? Betriebssystem Automatisches Placement wird besser, ist aber oft nicht optimal Auch bei single-Thread-Programmen kann das Resultat überraschend sein… Compiler Pathscale-Compiler hat differenzierte Thread-PlacementMechanismen eingebaut Benutzer (taskset / numactl) Nur sinnvoll, wenn man den Knoten für sich hat taskset –c 0,2 numactl –m 0,1 ./a.out Integration in MPI-Umgebung nicht trivial Programm (first touch) OpenMP: Initialisierung der Daten muss parallelisiert werden wie die Kernschleifen des Programmes – immer möglich? 23.09.05 [email protected] Dual-Core-Prozessoren 7 Speicherperformance am Beispiel IBM OpenPower720 a(i)=b(i)+c(i)*d(i) 14000 12000 MB/sec 10000 OMP(1) OMP(2) OMP(4) OMP(4) noinit Vektortriade (b) A(:)=B(:)+C(:)*D(:) 8000 ≈30% 6000 ≈40% 4000 2000 0 1e+07 N 23.09.05 [email protected] Dual-Core-Prozessoren 8 Dual vs. Single Core: Performance im Cache? DMRG performance DMRG Benchmark (OpenMP, DGEMM-lastig) 4x4 Hubbard PBC U=4t OpenPower720 (4-way DC Pwr5 @ 1.65 GHz) SGI Altix @ 1.3 GHz, 3MB L3 SGI Altix @ 1.6 GHz, 6MB L3 4-way DC Opteron @ 2.2 GHz, 1MB L2/core Intel Pentium D @ 2.8 GHz, 1MB L2/core Dual Nocona @ 3.4 GHz, 1MB L2/CPU 15 GFlops/sec 12.5 10 7.5 5 2.5 0 23.09.05 1 2 # CPUs [email protected] 3 4 Dual-Core-Prozessoren 9 Weitere Komplikationen Beim Übergang von Single nach Dual Core verringert sich in einem Cluster die Bisektionsbandbreite pro CPU um den Faktor 2 Fragen: Ist dieser Effekt wichtig für die Applikationen? Wie viele Cores brauche ich, um die Bandbreite eines Netzwerkadapters zu sättigen? Ist die Netzwerkbandbreite mit der gegebenen MPIImplementierung überhaupt ein Bottleneck? 23.09.05 [email protected] Dual-Core-Prozessoren 10 Resultate Bringt der zweite Core etwas? Die Frage müsste lauten: Wenn mein Applikationsmix durchschnittlich X% Performancegewinn hat und das DCSystem Y% teurer ist als das SC-System, ist X>Y? Bekommt man die Placement-Probleme bei NUMA-Systemen in den Griff? Haben wir überhaupt eine Wahl? I.A. kann der zweite Core aus dem Speicherinterface noch etwas mehr „rauskitzeln“ OpenPower: 30-40% Opteron: 25% Pentium D: 0% Unterschiede in der Taktfrequenz werden durch andere Effekte oft verwischt Achtung bei Netzwerk-Bisektionsbandbreiten 23.09.05 [email protected] Dual-Core-Prozessoren 11