Workstation IntelS2600GZ4 und Speicherbandbreiten

ELSUCHT

Enthusiast
Thread Starter
Mitglied seit
19.05.2003
Beiträge
132
Hallo zusammen,

wir suchen in der Firma einen leistungsstarken Server auf Intel Xeon Basis für eine Multithreaded-Anwendung (Bildverarbeitung), die sowohl die CPUs als auch den Arbeitsspeicher stark auslastet. Bzgl des Arbeitsspeichers spielt weniger die Größe des Speichers(~64GB) als mehr die Geschwindigkeit die entscheidende Rolle(bei DDR1600). Momentan sind wir mit zwei Xeon 2620V2 auf einem SuperMicro X9DAE gut gefahren, kommen jedoch, trotz NUMA-Optimierung der Anwendung, an die Belastungsgrenze. Unsere Anwendung muss in naher Zukunft jedoch schneller arbeiten.
Der Prozessor ist ja relativ einfach skalierbar. Wir werden voraussichtlich zwei Xeon, wie z.B. 2690v2, einsetzen und suchen nun geeignetes Board/ Komplettsystem, welches hinsichtlich der max. Speicherbandbreite optimiert ist.
Unser Lieferant des Vertrauens hat uns ein System mit einem Intel Board S2600GZ4 vorgeschlagen. Laut Dokumentation von Intel bietet dieses Board jedoch "nur" eine max. Speicherbandbreite von 14,933 GB/s.
Verstehe ich dort irgendwas falsch oder gibt es tatsächlich starke Unterschiede zwischen den Dual-Socket-Boards? (Das S2400BB4 hat z.B. ein max. Speicherbandbreiten von 614,4GB/s). Worin bestehen die Unterschiede? Wie entstehen die unterschiedlichen Bandbreiten trotz gleichem Chipsatz?

Als Server-Laie würde ich mich um etwas Licht im Dunklen sehr freuen :)
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Das ist/muss ein Fehler bei der Angabe sein beim S2400BB4.
Einfach aus dem Grund, beim S2600GZ4 bezieht sich die Angabe auf die theoretische Geschwindigkeit/Durchsatz eines Moduls/eines Channels einer CPU beim maximalen Speichertakt von DDR3-1866.
Beim S2400BB4 ist das irgendwas anderes, was auch immer die damit meinen.

Ansonsten, das S2400BB4 scheint mir nicht den gleichen Sockel zu haben wi edas S2600GZ4. Ersteres ist Sockel B2 -> S1356 und nimmt die Xeon E5-2400er CPUs auf. Letzteres ist Sockel R -> S2011 (nicht -3!) und nimmt die Xeon E5-2600v1 und v2 auf. Die anderen, für dich wohl nicht relevanten CPUs klammer ich mal aus. 4xxx/16xx Modelle bspw. oder Desktop i7 Modelle.

Was dein Vorhaben angeht, wenn die Bandbreite wirklich DAS Hauptproblem ist, dann kommst du bei einer Neuinvestition nicht um S2011-3 drum rum. Sprich Xeon E5-2600v3 auf Haswell-E Basis. Denn diese setzen auf DDR4 anstatt DDR3 und die maximal supportete Taktrate der Module steigt. -> mehr Durchsatz.
Ein Wechsel auf die Xeon v2 Modelle würde ich persönlich heute nicht mehr unbedingt priorisieren. Da kann man gleich zum v3 mit neuer Technik greifen. Zumal der Ausbau von 64GB nun nicht unbedingt geldlich extrem ins Gewicht fällt, auch wenn der DDR4 Aufpreis immernoch gehörig ist. -> bei der geringen Menge sind das aber nur ein paar wenige ggf. ein paar hundert Euro Unterschied.
Anstatt dem 2690v2 könntest du den 2690v3 nehmen. Der Basistakt ist etwas geringer, dafür gibts zwei Cores mehr.

Speicher ist bis DDR4-2133 spezifiziert -> was das aktuelle Maximum darstellt, was freigegeben ist. Ggf. findest du auch Riegel mit DDR4-2400 oder mehr, kommt dann schlicht aufs Board an, ob du die Speicherteiler entsprechend wählen kannst. Aktuell sind in den diversen Datenbanken aber nur 2133er Modelle in Reg. ECC Ausführung gelistet für DDR4. Der 2690v2 wäre mit bis DDR3-1866 freigegeben...

Willst du allerdings bei der v2 Version der CPUs mit DDR3 bleiben, dann wird nichtmal ein neues Board notwendig. Das SuperMicro X9DAE frisst auch die 2690v2 ohne Mucken. Und der Speicher entsprechend ebenso... Erscheint mir aber wie gesagt wenig zielführend heute auf die alte Technik denn der neuen zu gehen, wenn du mehr Performance willst ;)
 
Nur CPUs tauschen ist billiger, bringt aber auch nur etwas wenn die Anwendung mit den neuen CPUs schnell genug wird.
Wenn speicherbandbreite kritisch ist sind mehr cores manchmal nicht besonders hilfreich.
Von 12 auf 20 Cores zu wechseln und die Taktfrequenz hochzuschrauben ohne was am Speicherinterface zu machen wenn der Durchsatz jetzt schon knapp erscheint kann Geldverschwendung sein. Und wirklich billig sind die 2690v2 ja auch nicht.
Ach und wenn man das alte System weiter verwendet würde ich zuvor nachsehen ob die CPUs supported sind, machen ja etwas mehr wärme aus Strom als die alten.

Wie viel schneller muss es denn überhaupt werden?

Ich halte es auch wie fdsonne für sinvoller wenn man 4000 Euro für 2 neue CPUs investiert direkt was aus der E5-v3 Serie zu nehmen mit Quadchannel DDR4 pro Sockel.
Vielleicht kann man ja auch irgendwo mal eine Teststellung bekommen, da sieht man dann ja recht schnell ob die performance ausreicht.

Und nicht an der Kühlung sparen und evtl. mal ein bisschen mit den turbo modes experimentieren, wäre nicht die erste Anwendung die flotter läuft wenn man nicht alle cores belastet und damit die CPUs über den turbo-mode auf höherem Takt fährt. Und wenn AVX genutzt wird dran denken das die neuen CPUs da mit reduziertem Takt laufen. Ich habe den Eindruck das man mit den neueren CPU Modellen recht schnell an die thermischen Grenzen stößt sobald da optimierter code drauf läuft.
 
Wie ist denn aktuell die Speicherbestückung?
Werden die Speicherriegel in 4er Gruppen eingesetzt?
Nur damit erreicht man bei den Xeon E5-26xx/E5-26xxV2 den max. Speicherdurchsatz.
Bei 2 CPUs und 64 GB also 8 Module zu je 8 GB oder 16 Module zu je 4 GB (also 4 oder 8 Module pro CPU).
Alles Andere kostet Durchsatz.
 
Vielen Dank für Eure Beiträge.

Tendenziell sehe ich einen Umstieg auf die v3 des Xeon wegen DDR4 als sinnvoll an. Mehrkosten sind eher zweitrangig. Problematisch ist jedoch, dass unser Lieferant des Komplettsystems die Xeon-v3 intern wohl noch nicht intensiv getestet hat und somit noch keine Garantie und Service-Leistung für das Komplettsystem übernehmen würde. Die ist jedoch wichtig für uns. Stillstandszeiten gilt es zu minimieren.

Die Geschwindigkeit sollte um etwa 20 bis 30 Prozent steigen. Einen Großteil davon werden wir mittelfristig über Softwareoptimierung (Intel Bibliotheken, AVX, NUMA, später mal CUDA) erreichen. Unsere Anwendung besteht aus vielen Teil-Modulen, die leider historisch gewachsen sind und daher einiges an Arbeits-Aufwand für einen Code-Optimierung bedeuten. Daher ist natürlich ein Upgrade des Servers kurzfristig die bessere Lösung, weil sie auch verhältnismäßig zu den Arbeitsstunden günstiger ist.

Wir haben heute ein Testsystem mit einem Xeon2690v2 auf dem S2600GZ4 erhalten, welches mit 8x 8GB JMicron 1600mhz ausgestattet ist (4 Module je pro Prozessor). Ich werde mal einige Test laufen lassen (u.a. den STREAM-Benchmark).
Hat jemand Erfahrung mit typischen Werten für den Speicherdurchsatz eines solchen Systems, der zu erwarten ist (pro NUMA-Node)?
 
Zuletzt bearbeitet:
Speicherdurchsatz real unterscheidet sich von Tool zu Tool...
Orientier dich an den Werten, die du mit dem jetzigen System erreichst bei DDR3-1600er Modulen im Quadchannel Betrieb. Der DDR3-1866 ist entsprechend seinem Mehrtakt eben dann auch etwas schneller -> aber das sind faktisch keine 20-30%.
Das wird sogar mit DDR4 spannend. Zumal bei den aktuellen DDR4 Riegeln idR die Latenz noch steigt. Somit gewinnst du zwar Durchsatz, büßt am Ende aber auch etwas Latenz ein, die dann einen Teil des Durchsatzes wenn man so will, wieder auffrisst.
 
Ich habe ein paar systeme hier. Das ein oder andere kann ich evtl. mal testen.
Leider sind die meisten schon etwas älter.
Meinst du den STREAM Benchmark Reference Information stream benchmark?

2xE5-2670 16 Threads
Function Best Rate MB/s Avg time Min time Max time
Copy: 51333.9 0.003157 0.003117 0.003176
Scale: 48884.7 0.003286 0.003273 0.003310
Add: 54983.2 0.004403 0.004365 0.004428
Triad: 56791.7 0.004235 0.004226 0.004249

2x E5-2630 v2 12 Threads
Function Best Rate MB/s Avg time Min time Max time
Copy: 25567.2 0.006272 0.006258 0.006292
Scale: 25256.4 0.006353 0.006335 0.006385
Add: 28139.5 0.008544 0.008529 0.008570
Triad: 28324.7 0.008491 0.008473 0.008503

Evtl. kann ich später nochmal 2640 v3 Systeme testen.
 
Zuletzt bearbeitet:
Ich bekomme momentan leider nur 16 der 20 Kerne zum Laufen. Wenn ich über OpenMP oder direkt über die Windows-API Threads an die Prozessoren koppeln möchte, sind CPU 33-40 nicht zuweisbar (HT aktiviert).
Auf dem Testsystem ist Windows7 x64 Prof. installiert. Gibt es dort Einschränkungen bzgl. der max. Prozessorzahl? Ggf muss ich HT einmal abschalten.

Ein Thread pro Core, 10 Thread auf Prozessor1, 6 Threads Prozessor 2:
Code:
C:\STREAM>set OMP_NUM_THREADS=16 
C:\STREAM>set MP_BLIST=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
C:\STREAM>start /b /WAIT /AFFINITY 0x55555555 /HIGH stream_windows_mingw_static.exe 

-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
Array size = 80000000 (elements), Offset = 0 (elements)
Memory per array = 610.4 MiB (= 0.6 GiB).
Total memory required = 1831.1 MiB (= 1.8 GiB).
Each kernel will be executed 10 times.
 The *best* time for each kernel (excluding the first iteration)
 will be used to compute the reported bandwidth.
-------------------------------------------------------------
Number of Threads requested = 16
Number of Threads counted = 16
-------------------------------------------------------------
Your clock granularity/precision appears to be 15599 microseconds.
Each test below will take on the order of 46800 microseconds.
   (= 3 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:           27350.5     0.055467     0.046800     0.062401
Scale:          27350.5     0.055467     0.046800     0.062400
Add:            30769.3     0.074534     0.062400     0.078001
Triad:          30769.3     0.072800     0.062400     0.078001
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-013 on all three arrays
-------------------------------------------------------------


@Fr@ddy: Welche Version von STREAM nutzt du (Windows?) und in welcher Konfiguration (OpenMP Aufruf)?
STREAM_openMP1.png
STREAM_openMP2.png
 
Windows 7 unterstützt eine unbegrenzte Anzahl von Cores.
Es ist nur die Anzahl der physischen CPUs beschränkt.
Basic und Home+Business unterstützen nur 1 CPU, Professional und Ultimate 2 CPUs.
 
Ich habe den Benchmark auf der verlinkten seite runtergeladen und mit gcc kompiliert.
OS ist Linux mit einem recht betagten kernel 2.6.32.
Habe omp_num_threads auf 16 gesetzt HT war an bei dem E5-2670.

Windows benutzen wir hier nicht zum rechnen, daher habe ich keine interessante Maschine zum testen greifbar.
Die paar tests die ich mal mit Windows und Linux durchgeführt habe mit open_mp parallelisierter Software und auch unter MPI haben Windows aber auch nicht besonders gut aussehen lassen. Gerade die MPI ergebnisse unter Windows waren teilweise richtig entäuschend.
 

Ähnliche Themen

Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh