Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

AMD EPYC – Leistungsstudie zu STREAM, HPL, InfiniBand und WRF

Summary: AMD EPYC – STREAM, HPL, InfiniBand und WRF auf Dell EMC PowerEdge R7425

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Artikel geschrieben von Garima Kochhar, Deepthi Cherlopalle, Joshua Weage vom HPC and AI Innovation Lab im September 2018

Übersicht

Das HPC and AI Innovation Lab verfügt über ein neues Cluster mit 32 AMD EPYC-basierten Systemen, die mit Mellanox EDR InfiniBand verbunden sind. Wie immer führen wir Leistungsbewertungen für unseren neuesten Cluster durch und wollten die Ergebnisse veröffentlichen. In diesem Blog werden die Ergebnisse der Speicherbandbreite von STREAM, HPL, InfiniBand-Mikro-Benchmark-Performance für Latenz und Bandbreite und WRF-Ergebnisse aus den Benchmark-Datensätzen beschrieben.

Wir sind an der realen Leistung von HPC-Anwendungen auf EPYC interessiert. Wenn Sie Datensätze haben, die Sie mit EPYC testen möchten, wenden Sie sich an Ihr Dell Account-Team, um Zugriff auf das Innovation Lab zu erhalten.
 

AMD EPYC-Architektur

AMD EPYC-Prozessoren unterstützen acht Speicherkanäle, bis zu 16 DIMMs (Dual In-line Memory Modules) pro Sockel mit zwei DIMMs pro Kanal und bis zu 32 Kerne pro Sockel. Außerdem bietet eine Plattform mit AMD-CPUs bis zu 128 PCI-E-Lanes für Peripheriegeräte wie GPUs und NVMe-Laufwerke.
Die CPUs selbst sind Multi-Chip-Module, die aus vier Chips zusammengesetzt sind. Jeder Chip enthält bis zu acht Zen-Kerne, zwei DDR4-Speicherkanäle und 32 E/A-Lanes. Die Zen-Kerne auf einem Chip sind in zwei Vierergruppen angeordnet, wobei jede Vierergruppe als Kernkomplex bezeichnet wird und sich den L3-Cache teilt. Innerhalb eines Sockels sind alle vier Chips über eine zusammenhängende Verbindung namens Infinity Fabric über Crossconnect verbunden. Dies ist in Abbildung 1 dargestellt.

SLN313856_de__1GKimage001
Abbildung 1 – EPYC-Sockellayout. CCX ist ein Kernkomplex von bis zu 4 Kernen, die sich den L3-Cache teilen. M* sind die Speicherkanäle, zwei Kanäle, die von jedem Chip gehandhabt werden. P* und G* sind E/A-Lanes. ∞ ist die Infinity-Fabric.



In einem Single-Socket-System stellt jeder Chip bis zu 32 PCI-E-Lanes bereit, wobei die in Abbildung 1 gezeigten P* und G* E/A-Lanes verwendet werden. Auf diese Weise erhält der Sockel insgesamt 128 PCI-E-Lanes, wie in Abbildung 2 gezeigt. Wenn eine CPU in einer 2S-Konfiguration (Two-Socket) verwendet wird, wird die Hälfte der E/A-Lanes jedes Chips verwendet, um mithilfe der als Infinity Fabric konfigurierten G* E/A-Lanes eine Verbindung mit einem der Chips auf dem anderen Sockel herzustellen. Damit verbleibt der Socket mit den P* E/A-Lanes für insgesamt 64 PCI-E-Lanes und damit noch 128 PCI-E-Lanes für die Plattform. Dies ist in Abbildung 3 dargestellt.

SLN313856_de__2GKimage002
Abbildung 2 – EPYC 1S PCI-E-Lanes



SLN313856_de__3GKimage003
Abbildung 3: EPYC 2S-Layout



SLN313856_de__4GKimage004
Abbildung 3: EPYC 2S-Layout

 

STREAM-Benchmark-Performance

Als ersten Schritt zur Evaluierung von EPYC haben wir die Speicherbandbreitenfähigkeiten der Plattform mit dem STREAM-Benchmark gemessen. Diese Tests wurden auf einem Dell EMC PowerEdge R7425-Server durchgeführt, mit zwei AMD EPYC 7601-Prozessoren (32c, 2,2 GHz), 16*16-GB-DIMMs mit 2400 Mt/s und dem Betriebssystem Red Hat® Enterprise Linux® 7.5.

Die NUMA-Darstellung (Non-Uniform Memory Access) von EPYC kann über eine BIOS-Option namens „Memory Interleaving“ gesteuert und mit Linux-Dienstprogrammen wie numactl und lstopo abgebildet werden.

Die Standardoption für das Memory-Interleaving ist „Memory Channel Interleaving“. In diesem Modus sind die beiden Kanäle jedes Chips verschachtelt. Dies stellt dem Betriebssystem auf einem 2S-System vier NUMA-Knoten pro Sockel, also acht NUMA-Knoten, zur Verfügung.

„Memory Die Interleaving“ ist eine Option, bei der der Speicher auf allen vier Chips eines Sockels, d. h., auf acht Speicherkanälen, verschachtelt ist. Dies bietet einen NUMA-Knoten pro Sockel, also zwei NUMA-Knoten pro 2S-System.

Durch „Memory Socket Interleaving“ wird der Speicher beider Sockel verschachtelt, sodass ein NUMA-Knoten auf einer 2S-Plattform vorhanden ist. Dies ist das Äquivalent zu „NUMA disabled“.    

Denken Sie bei Verwendung der Standardkonfiguration von „Memory Channel Interleaving“ daran, dass jeder Sockel vier Chips hat, jeder Chip zwei Speicherkanäle bietet und das BIOS acht NUMA-Knoten auf einer 2S-Plattform darstellt. Als Beispiel für eine numactl-Ausgabe finden Sie in Abbildung 4 diese acht NUMA-Knoten auf einer 2S-Plattform, was einem NUMA-Knoten pro Chip entspricht.

SLN313856_de__5GKimage005
Abbildung 4 – numactl-Ausgabe auf 2S-EPYC


Physisch gibt es vier NUMA-Abstände auf der Plattform, wie in Abbildung 4 hervorgehoben: zum NUMA-Knoten selbst (Abstand „10“ in Rot), zu den drei Knoten, die denselben Chip teilen (Abstand „16“ in Blau), zum Knoten auf dem anderen Sockel, der direkt über eine Infinity Fabric-Verbindung (Abstand „22“ in Grün) mit den drei anderen Knoten auf dem Remote-Sockel verbunden ist, auf die über zwei Hops mithilfe des Infinity Fabric zwischen den beiden Sockeln und der internen Infinity Fabric-Verbindung zugegriffen wird (Abstand „28“ in Schwarz).

Einige BIOS-Implementierungen und -Versionen vereinfachen möglicherweise dieses physische Layout und bieten nur drei NUMA-Entfernungen zum Betriebssystem. Diese Vereinfachung beinhaltet das Maskieren des Abstandsunterschieds zwischen dem NUMA-Knoten 0 (als Beispiel) und den NUMA-Knoten 4, 5, 6, 7, indem die NUMA-Knoten 4, 5, 6, 7 als gleich weit entfernt zum NUMA-Knoten 0 dargestellt werden. Eine solche Implementierung ist in Abbildung 5 dargestellt. Das NUMA-Layout ist in der nächsten Version des PowerEdge R7425-BIOS eine einstellbare Option. Durch die Vereinfachung der NUMA-Knotenabstände wird das tatsächliche physische Layout der Kerne nicht geändert. Dies ist in erster Linie für den OS-Scheduler von Vorteil. Für HPC- und MPI-Jobs, die NUMA-fähig sind, sollten diese unterschiedlichen Darstellungen unerheblich sein.

SLN313856_de__6GKimage006
Abbildung 5: numactl-Ausgabe auf 2S-EPYC mit vereinfachten NUMA-Entfernungen


Neben den 8 NUMA-Knoten auf einer Zwei-Sockel-Plattform werden in Abbildung 4 und Abbildung 5 auch der mit jedem NUMA-Knoten verknüpfte Speicher und die zugehörigen Kerne angezeigt. Jeder NUMA-Knoten verfügt über 32 GB Speicher von zwei 16-GB-DIMMs (16 DIMMs im Server, acht pro Sockel, 1 DIMM pro Kanal). Jeder NUMA-Knoten enthält die acht Kerne des lokalen Chips. Die Kernaufzählung auf der Dell EMC-Plattform erfolgt im Rundlaufverfahren, bei dem zuerst alle NUMA-Knoten durchsucht werden und dann jeder NUMA-Knoten gefüllt wird.

Darüber hinaus kann mit der Ausgabe von lstopo deutlich gezeigt werden, aus welchem Satz von vier Kernen ein Kernkomplex besteht. Dies sind die vier Kerne auf einem Chip, die sich den L3-Cache teilen. Beispielsweise zeigt Abbildung 6, dass der NUMA-Knoten 0 acht Kerne hat und auf diesen NUMA-Knoten teilen sich die Kerne 0, 16, 32, 48 den L3-Cache und die Kerne 8, 24, 40, 56 den L3-Cache.

SLN313856_de__7GKimage007
Abbildung 6 – lstopo-Ausgabe auf 2S EPYC

SLN313856_de__8GKimage008
Abbildung 7 – Speicherbandbreite der AMD EPYC-Plattform

Unter Berücksichtigung dieser NUMA-Layoutinformationen sind die STREAM Triad-Benchmarkergebnisse für die Speicherbandbreite in Abbildung 7 dargestellt, wobei das BIOS auf „Memory Channel Interleaving“ eingestellt ist. Beachten Sie, dass die 16 GB 2667 MT/s Dual-Rank-Speichermodule, die in dieser Testumgebung verwendet werden, auf 2400 MT/s auf EPYC ausgeführt werden. Der erste Balkensatz in Abbildung 7 zeigt die Speicherbandbreite der 2S-Plattform mit 244 Gbit/s, wenn alle Kerne verwendet werden, und 255,5 Gbit/s, wenn die Hälfte der Kerne genutzt wird. Der zweite Datenpunkt ist die Speicherbandbreite eines einzelnen Sockels und das ist erwartungsgemäß etwa die Hälfte der gesamten 2S-Plattform. Der dritte Datenpunkt misst die Speicherbandbreite eines NUMA-Knotens, eines einzelnen Chips. Denken Sie daran, dass jeder Sockel vier Chips hat und die Bandbreite eines Chips ungefähr ein ¼ des Sockels ist. Innerhalb eines Würfels gibt es zwei Kernkomplexe, und wenn nur die Kerne eines Kernkomplexes verwendet werden, ergeben sich ~30 Gbit/s. Wenn Kerne für beide Kernkomplexe auf einem Chip verwendet werden, kann die volle Bandbreite des Chips von ~32 Gbit/s erreicht werden.

Die Speicherbandbreite der 2S-Plattform ist beeindruckend, 240 bis 260 Gbit/s, und ergibt sich aus den acht Speicherkanälen pro Sockel auf der Plattform. Darüber hinaus kann ein einzelner Kern eine Speicherbandbreite von ~24,5 Gbit/s für den lokalen Speicher bereitstellen, was für den Single-Thread-Teil von Anwendungen hervorragend geeignet ist.

In Abbildung 8 wird der Einfluss des NUMA-Layouts auf den Remote-Speicherzugriff dargestellt. Dabei wird die relative Speicherbandbreite dargestellt, wenn Cores auf Speicher zugreifen, die sich nicht in derselben NUMA-Domäne befinden. Der Zugriff auf den Speicher auf demselben Sockel ist ~30 % langsamer, der Zugriff auf den Speicher auf dem anderen Sockel ist ~65 % langsamer. Mit STREAM Triad scheint es keine messbaren Auswirkungen auf die Speicherbandbreite zu geben, wenn auf den Speicher des Remote-Sockels über einen Hop (Knoten 6, 1 Infinity Fabric zwischen Sockeln) oder zwei Hops (Knoten 4, 5, 7 – 1 Infinity Fabric-Hop zwischen Sockeln und 1 lokaler Infinity Fabric-Hop) zugegriffen wird. Für Anwendungen mit hohem Speicherbandbreitenbedarf ist eine gute Speicherlokalität wichtig, um die Leistung auch innerhalb desselben Sockels zu verbessern.

SLN313856_de__9GKimage009
Abbildung 8: Auswirkungen des Remotespeicherzugriffs
 

HPL-Benchmark-Performance

Als nächstes maßen wir die Rechenfähigkeit von EPYC wie durch das HPL-Benchmark gemessen. EPYC unterstützt AVX-Anweisungen und eine Performance von 8 FLOP/Zyklus. Auf unserer Plattform verwendeten wir Open MPI und die linearen Algebra-Bibliotheken BLIS zum Ausführen von HPL.

Die theoretische Leistung unseres Testsystems (zwei EPYC 7601-Prozessoren) beträgt 64 Kerne * 8 FLOP/Zyklus * 2,2 GHz Taktfrequenz, was 1126 GFLOPS ergibt. Wir haben 1133 GLOPS gemessen, was einem Wirkungsgrad von 100,6% entspricht.

Wir haben auch HPL auf den EPYC 7551 (32c, 2,0 GHz), EPYC 7351 (16c, 2,4 GHz) und EPYC 7351P (1S, 16c und 2,4 GHz) ausgeführt. Bei diesen Tests lag die gemessene HPL-Performance bei 102-106 % der theoretischen Leistung.

Der Wirkungsgrad liegt über 100%, da EPYC in der Lage ist, Turbofrequenzen über der Grundfrequenz während der Dauer des HPL-Tests aufrechtzuerhalten.
 

InfiniBand – Latenz und Bandbreite

Wir haben dann die Ergebnisse der InfiniBand-Latenz und des Bandbreiten-Mikro-Benchmark zwischen zwei Servern überprüft. Die für diese Tests verwendete Konfiguration ist in Tabelle 1 beschrieben. Die Ergebnisse zu Latenz und Bandbreite sind in Abbildung 9 und Abbildung 10 dargestellt.


  Tabelle 1 – InfiniBand-Testumgebung
Component Version
Prozessor Dell EMC Power Edge R7425
Speicher Dual AMD EPYC 7601 32-Core Prozessor mit 2,2 GHz
Systemprofil CPU-Energieverwaltung auf „Maximum“ eingestellt, C-Status wie angegeben deaktiviert oder aktiviert, Turbo aktiviert
Betriebssystem Red Hat Enterprise Linux 7.5
Kernel 3.10.0-862.el7.x86_64
OFED 4.4 – 1.0.0
HCA-Karte Mellanox Connect X-5
OSU-Version 5.4.2
MPI hpcx-2.2.0 


SLN313856_de__10GKimage010
Abbildung 9 – InfiniBand-Latenz mit Switch

Führen Sie folgenden Befehl aus: mpirun -np 2 --allow-run-as-root -host node1,node2 -mca pml ucx -x UCX_NET_DEVICES=mlx5_0:1 -x UCX_TLS=rc_x -mca coll_fca_enable 0 -mca coll_hcoll_enable 0 -mca btl_openib_if_include mlx5_0:1  -report-bindings --bind-to core --map-by dist:span -mca rmaps_dist_device mlx5_0 numactl –cpunodebind=6 osu-micro-benchmarks-5.4.3/mpi/pt2pt/osu_latency

Es wurde darauf geachtet, den MPI-Prozess mit dem NUMA-Knoten zu verbinden, der dem HCA am nächsten liegt. Diese Informationen sind in der Ausgabe von lstopo verfügbar, in unserem Fall war es NUMA-Knoten 6. Latenztests wurden sowohl mit OpenMPI als auch mit HPC-X durchgeführt. Mit OpenMPI und MXM-Beschleunigung haben wir eine Latenz von 1,17 µs gemessen, mit OpenMPI und UCX haben wir eine Latenz von 1,10 µs gemessen. Die mit HPC-X erzielten Latenzergebnisse sind hier dargestellt.

In Abbildung 9 beträgt die Latenz auf EPYC-Prozessoren mit aktivierten C-Zuständen 1,07 µs und die Latenz für alle Nachrichtengrößen ist ~2 bis 9 % besser mit aktivierten C-Zuständen im Vergleich zu deaktivierten C-Zuständen. Durch die Aktivierung der C-Zustände können sich Leerlaufkerne in tieferen C-Zuständen befinden, wodurch höhere Turbofrequenzen auf den aktiven Kernen möglich sind. Dies führt zu einer verringerten Latenz.

Die Ergebnisse der Bandbreite sind in Abbildung 10 dargestellt. Wir haben eine unidirektionale Bandbreite von 12,4 Gbit/s und eine bidirektionale Bandbreite von 24,7 Gbit/s gemessen. Diese Ergebnisse entsprechen den Erwartungen an EDR.

SLN313856_de__11GKimage011
Abbildung 10: InfiniBand-Bandbreite

Führen Sie folgenden Befehl aus: 

mpirun -np 2 --allow-run-as-root -host node208,node209 -mca pml ucx -x UCX_NET_DEVICES= mlx5_0:1 -x UCX_TLS=rc_x -mca coll_fca_enable 0 -mca coll_hcoll_enable 0 -mca btl_openib_if_include mlx5_0:1 --bind-to core -mca rmaps_dist_device mlx5_0 --report-bindings --display-map numactl --cpunodebind=6 osu-micro-benchmarks-5.4.3/mpi/pt2pt/osu_bibw

 

Tabelle 2: Ergebnisse für osu_mbw_mr – einzelner NUMA-Knoten
Sockel NUMA-Knoten (NN) Testkonfiguration Anzahl der getesteten Kerne pro Server Bandbreite (Gbit/s)
0 0 server1 NN0 - server2 NN0 8 6.9
0 1 server1 NN1 - server2 NN1 8 6.8
0 2 server1 NN2- server2 NN2 8 6.8
0 3 server1 NN3 - server2 NN3 8 6.8
1 4 server1 NN4 - server2 NN4 8 12.1
1 5 server1 NN5 - server2 NN5 8 12.2
1 6 (lokal für HCA) server1 NN6 - server2 NN6 8 12.3
1 7 server1 NN7 - server2 NN7 8 12.1

Führen Sie folgenden Befehl aus: 

mpirun -np 16 --allow-run-as-root –host server1,server2 -mca pml ucx -x UCX_NET_DEVICES=mlx5_0:1 -x UCX_TLS=rc_x -mca coll_fca_enable 0 -mca coll_hcoll_enable 0 -mca btl_openib_if_include mlx5_0:1 --report-bindings --bind-to core -mca rmaps_dist_device mlx5_0 numactl cpunodebind= osu-micro-benchmarks-5.4.3/mpi/pt2pt/osu_mbw_mr


Das in Abbildung 3 und Abbildung 6 beschriebene NUMA-Layout veranlasste uns, die Auswirkungen der Prozesslokalität auf die Bandbreite zu überprüfen. Für diesen Test haben wir den osu_mbw_mr-Benchmark verwendet, der die aggregierte unidirektionale Bandbreite zwischen mehreren Prozesspaaren misst. Ziel dieses Tests ist es, die erreichte Bandbreite und Nachrichtenrate zwischen einzelnen NUMA-Knoten unter Verwendung aller acht Kerne auf dem NUMA-Knoten zu bestimmen. Die Ergebnisse dieses Tests sind in Tabelle 2 dargestellt. Die Testkonfiguration verwendete das Leistungsprofil (C-Zustände deaktiviert und Turbo aktiviert).

Die Ergebnisse zeigen, dass bei Ausführung von Prozessen auf dem NUMA-Knoten, der mit dem InfiniBand-HCA (NUMA-Knoten 6) verbunden ist, die Gesamtbandbreite 12,3 Gbit/s beträgt. Wenn Prozesse auf einem der drei anderen NUMA-Knoten ausgeführt werden, die sich im selben Sockel wie der HCA (Sockel 1) befinden, beträgt die Gesamtbandbreite ungefähr 12,1 Gbit/s. Wenn Prozesse auf den NUMA-Knoten in dem Sockel ausgeführt werden, der vom HCA entfernt ist, sinkt die Gesamtbandbreite auf ~6,8 Gbit/s.

Der nächste in Tabelle 3 gezeigte Satz von Ergebnissen demonstriert die unidirektionale Bandbreite zwischen einzelnen Sockeln. Für diesen Test wurden alle 32 im Sockel vorhandenen Kerne verwendet. Wir haben beim Betrieb auf dem lokalen Sockel zum HCA 5,1 Gbit/s gemessen und 2,4 GB / s beim Betrieb auf dem entfernten Socket zum HCA. Unter Verwendung aller 64 Kerne in unseren Testservern haben wir 3,0 Gbit/s gemessen, wenn 64 Prozesse pro Server ausgeführt wurden.

Um dieses letzte Ergebnis noch einmal zu überprüfen, haben wir einen Test mit allen 8 NUMA-Knoten auf beiden Sockeln durchgeführt, wobei jeder NUMA-Knoten 2 Prozesse ausführte, was insgesamt 16 Prozesse pro Server ergab. Bei diesem Layout wurden auch 2,9 Gbit/s gemessen.

Diese Ergebnisse weisen darauf hin, dass sich die Topologie des Systems auf die Kommunikationsleistung auswirkt. Dies ist in Fällen von Interesse, in denen ein Gesamtkommunikationsmuster mit mehreren Prozessen, die über Server hinweg kommunizieren, ein wichtiger Faktor ist. Bei anderen Anwendungen ist es möglich, dass die reduzierte Bandbreite, die beim Ausführen von Prozessen in mehreren NUMA-Domänen gemessen wird, keinen Einfluss auf die Leistung auf Anwendungsebene hat.


  Tabelle 3: Ergebnisse für osu_mbw_br – Sockel und Systemebene
Sockel NUMA-Knoten Testkonfiguration Anzahl der getesteten Kerne pro Server Bandbreite (Gbit/s)
0
0
0
0
0
1
2
3
server1 Socket0 -
server2 Socket0
32 2.4
1
1
1
1
4
5
6 (lokal für HCA)
7
server1 Socket1 -
server2 Socket1
32 5.1

Führen Sie folgenden Befehl aus: 

mpirun -np 64 --allow-run-as-root –rf rankfile -mca pml ucx -x UCX_NET_DEVICES= mlx5_0:1 -x UCX_TLS=rc_x -mca coll_fca_enable 0 -mca coll_hcoll_enable 0 -mca btl_openib_if_include mlx5_0:1 --report-bindings osu-micro-benchmarks-5.4.3/mpi/pt2pt/osu_mbw_mr

 
Sockel NUMA-Knoten Testkonfiguration Anzahl der getesteten Kerne pro Server Bandbreite (Gbit/s)
0
0
0
0
1
1
1
1
1
2
3
4
5
6 (lokal für HCA)
7
8
server1 - server2 64 3.0

Führen Sie folgenden Befehl aus:

mpirun -np 128 --allow-run-as-root –rf rankfile -mca pml ucx -x UCX_NET_DEVICES= mlx5_0:1 -x UCX_TLS=rc_x -mca coll_fca_enable 0 -mca coll_hcoll_enable 0 -mca btl_openib_if_include mlx5_0:1 --report-bindings osu-micro-benchmarks-5.4.3/mpi/pt2pt/osu_mbw_mr

 
Sockel NUMA-Knoten Testkonfiguration Anzahl der getesteten Kerne pro Server Bandbreite (Gbit/s)
0 1 server1 - server2 2 2.9
0 2 2
0 3 2
0 4 2
1 5 2
1 6 (lokal für HCA) 2
1 7 2
1 8 2

Führen Sie folgenden Befehl aus: 

mpirun -np 32 --allow-run-as-root –rf rankfile -mca pml ucx -x UCX_NET_DEVICES= mlx5_0:1 -x UCX_TLS=rc_x -mca coll_fca_enable 0 -mca coll_hcoll_enable 0 -mca btl_openib_if_include mlx5_0:1 --report-bindings osu-micro-benchmarks-5.4.3/mpi/pt2pt/osu_mbw_mr


HPL-Leistung auf Cluster-Ebene

Nach der Überprüfung der InfiniBand-Fabric-Leistung bestand der nächste Test darin, HPL schnell im Cluster auszuführen. Diese Tests wurden an einem 16-Knoten-System mit Dual Socket EPYC 7601 durchgeführt. Die Ergebnisse sind in Abbildung 11 dargestellt und zeigen die erwartete HPL-Skalierbarkeit für die 16 Systeme.

SLN313856_de__12GKimage012
Abbildung 11: HPL auf 16 Servern

 

WRF-Leistung auf Cluster-Ebene

Schließlich haben wir WRF ausgeführt, eine Anwendung für die Wettervorhersage. Die Testumgebung war dieselbe wie zuvor, 16-Knoten-System mit Dual Socket EPYC 7601. Außerdem haben wir einige Tests auf einem kleineren System mit 4 Knoten mit Dual Sockel EPYC 7551 durchgeführt. Alle Server hatten 16 GB* 16 RDIMMs, die auf 2400 MT/s ausgeführt wurden und mit Mellanox EDR InfiniBand verbunden waren.

SLN313856_de__13GKimage013
Abbildung 12 - WRF-Konus 12 km, einzelner Knoten

Wir haben WRF v3.8.1 und v3.9.1 verwendet und die Datensätze „conus 12km“ und „conus 2.5km“ getestet. Wir haben WRF und netcdf mit Intel-Compilern kompiliert und mit Intel MPI ausgeführt. Wir haben verschiedene Prozess- und Kachelschemata ausprobiert, wobei sowohl dmpar als auch die Konfigurationsoption dm+sm mit OpenMP verwendet wurden.

Wir arbeiten mit AMD zusammen, um weitere Optimierungsoptionen für den Compiler für WRF zu ermitteln.

Es gab keinen gemessenen Leistungsunterschied zwischen WRF v3.8.1 und v3.9.1. Beim Vergleich von dmpar und dm+sm ergab eine vernünftige Kombination von Prozessen und Kacheln ungefähr die gleiche Leistung. Dies ist in Abbildung 12 dargestellt.

SLN313856_de__14GKimage014
Abbildung 13 - WRF-Konus 12 km, Cluster-Tests

SLN313856_de__15GKimage015
Abbildung 14 - WRF-Konus 2,5km, Cluster-Tests

Auf Cluster-Ebene wurden Tests mit WRV v3.8.1 und der dmpar-Konfiguration mit allen Kernen und 8 Kacheln pro Durchlauf durchgeführt.

„Conus 12km“ ist ein kleinerer Datensatz mit einer Leistung, die nach 8 Knoten mit 512 Kernen auf EPYC auf ein Plateau gelangt. Dies ist in Abbildung 13 dargestellt. Der EPYC 7551 und der EPYC 7601 sind beide 32-Kern-Prozessoren mit einer Basistaktfrequenz von 7601 und einer All-Kern-Turbofrequenz von 10 % bzw. 6 % höher als der 7551. Bei Tests mit „WRF Conus 12km“ lag die Performance des EPYC 7601-Systems um 3 % über der des 7551 bei Tests mit 1, 2 und 4 Knoten.

„Conus 2.5km“ ist ein größerer Benchmark-Datensatz und im Vergleich zu 1 EPYC-System skaliert die Leistung gut auf 8 Knoten (512 Kerne) und beginnt dann abzunehmen. Mit „Conus 2.5 km“ arbeitet das EPYC 7601-System 2–3 % schneller als der EPYC 7551 bei Tests mit 1, 2 und 4 Knoten, wie in Abbildung 14 gezeigt.

 

Fazit und nächste Schritte

EPYC bietet eine gute Speicherbandbreite und Kerndichte pro Sockel. Aus HPC-Sicht erwarten wir, dass Anwendungen, die die verfügbare Speicherbandbreite und die CPU-Kerne nutzen können, die EPYC-Architektur optimal nutzen können. EPYC unterstützt heute nicht AVX512 oder AVX2 in einem einzigen Zyklus. Daher sind Codes, die stark vektorisiert sind und AVX2 oder AVX512 effizient verwenden können, möglicherweise nicht ideal für EPYC.

Anwendungsfälle mit mehreren NVMe-Laufwerken können auch vom direkt angeschlossenen NVMe profitieren, das aufgrund der Anzahl der PCI-E-Lanes auf EPYC möglich ist.

Unsere nächsten Schritte umfassen weitere Leistungstests mit zusätzlichen HPC-Anwendungen.





Article Properties


Affected Product

High Performance Computing Solution Resources, PowerEdge R7425

Last Published Date

21 Feb 2021

Version

3

Article Type

Solution