Guten Morgen Pumpkin!
Pumpkin
„Womit wir beim Thema wären: welches Netzwerk ist den vorhanden ?“
Gigabit PCI-Karten und 24-Port-Gigabit-Switch.
Pumpkin
„Kennst du iwill?“ [Board]
Jetzt ja, aber das Board kommt nicht in Frage, das ist jetzt schon abzusehen. Danke schön!
Pumkin:
„Ich tippe da eher auf single CPU mit Dual-Core“
Vielleicht. Geraten wird von jedoch vielen Seiten, wie ich auch unten an Semjon schrieb, auch von unserem CFD-Anbieter CFX, zu Dualcores zu greifen. Bis wir wenn überhaupt kaufen, vergeht noch mindestens 16 Wochen und dann sind die Preise vs. Leistung noch günstiger.
„Wenn das Problem Netzwerk minimierbar ist wär ich für normale 0815-SingleCPU Boards.“
Leider nicht! Jedenfalls nicht bei CFX. Das ist ein gekoppelter Solver und er macht uns eine Menge Probleme.
P.:
„OK, wenn das Vieh viel IO mit PCIe-Karten machen soll“
PCI-Express? Ich kann grad nicht folgen. Meinst Du Ethernet über PCI-NICs?
Frank:
„Das wird das naechste Problem: irgendwann will bestimmt mal einer, dass ich ein IB-HCA in so ein Ding stecke und wundert sich dann, dass er pro Core weniger Anbindung als GigE hat. Da wird auch DDR-IB nur ein Tropfen auf den heissen Stein.“
Was ist IB-HCA und DDR-IB?
Frank:
„Hm, da muss ich jetzt mal dumm fragen: welche Prozesse im HPC-Bereich kommunizieren denn vorhersehbar? Abgesehen von den selbstgeschriebenen Applikationen irgendwelcher Wissenschaftler.“ s.A.i.W.
Pumkin:
„Laut seiner Vika ist er Wissenschaftler.“
Eben, es ist leider nicht selbst geschrieben, sondern frisst jährlich unser ganzes Budget. Wenn ich allein zuständig wäre bzw. meine Arbeit hier nur für CFD-Sim., statt auch für Reaktorexperimente, Sys-Admin nicht nur Cluster, sondern auch in allen Fragen der Redmond-Kollegen (schmerz!), würde ich gerne mit und an freier Software (s.A.i.W.) schreiben. Aber naja …
Glückwunsch, ich kenn sie von der Theorieseite her. Wenn jetzt
der Fragesteller als ein Man der Praxis noch seinen Senf
abgibt haben wir alle 3 zusammen.
I try 
Ersteres war
indiskutabel und vermutlich kaputt, mein Laptop hat mehr
Speicherbandbreite.
Das passiert Iwill öfter wenn die Deadlines für Boards näher
rücken. Man sollte bei denen auch die Empfehlungen was den RAM
angeht strikt einhalten.
F:
Das Tyan ist schon besser, aber bei
meinen Tests skalierten 8xDC in dem Ding genauso gut wie Dual
Dual Core vernetzt mit Infiniband. Und mit IB kann ich viel
groesser und billiger bauen.
Und wie sieht es aus mit 4xDC? Ist dann die Topologie immer noch vollvernetzt?
Es hängt eben von der Anwendung ab. Wenn du ein für normale,
vernetzte Cluster geschriebenes Prog auf eine 8x klatschs wird
da nix grünes bei rauskommen. Das war mir schon klar.
Vielen Dank für die Argumente, auch tiefer. Werde ich gar nicht erst versuchen.
Bandbreite ist nicht alles: die CPUs sind unterschiedlich
„weit“ auseinander. Der Linux-Kernel hat keine Ahnung ueber
die Topologie der CPUs, er sieht also auch keine
Notwendigkeit, threads eines Prozesses (die potentiell viel
kommunizieren werden) an „nahe“ CPUs zu binden.
Einfachso laufen lassen ist auch auch nicht im Sinne von HPC.
Da muss man optimieren und Prozesse an bestimmte CPUs binden (
http://linuxcommand.org/man_pages/taskset1.html ). Und Linux
haut den ProzessRAM dann auch gleich auf die richtige RAM-Bank
(Wenn man das tastset schnell genug durchbekommt:
http://www.cs.utk.edu/~vose/linux/NUMA.html . Wenn nicht ist
Essig.)
Das merke ich mir!
Parallele
Rechnungen sehen meist so aus, dass threads oder Prozesse
Daten austauschen, ein Stueck rechnen und sich dann
synchronisieren. Synchronisieren wollen erstmal alle auf
einmal (-> HT dicht) und ausserdem warten alle auf den
langsamsten, das wird der, der am weitesten weg ist.
Ja, aber bei CFD (darum gings ja mal am Anfang) brauchen ja
nicht alle Prozesse alle Daten. Da simulieren Prozesse jeweils
einen Teilabschnitt eines Raums (1D, 2D oder 3D). Dafür
brauchen sie beim synchronisieren nur die Daten der Räume
rundum, sozusagen die „Trennwände“ zu ihrem Raum. D.h. die CPU
links unten braucht im Optimalfall nur die Daten der CPU
rechts von ihr und der von links oben. (Nach meinem
Wissensstand kommunizieren immer 2 nebeneinander liegende CPUs
direkt miteinander. D.h. die CPU agiert als eine Art 3-Port
Switch in dem HT-Geflecht. Und eben nicht als 3 Port Hub…
Wenn das nicht stimm ziehe ich alles zurück).
Allerdings machen die diesen Datentausch oft und die Daten
sind nicht gerade klein (er sprach von 4GB grossen Räumen, das
ist schon ein Stück Trennwand…). Deshalb halte ich HT
(kleine Latenz, hohe Bandbreite) hier in diesem Fall für
besser. Bis er halt mehr als 16 OpteronCores braucht …
Bisher brauchen die grossen CFD-Simulationen von Ansys-CFX mit 900 000 Zellen und Verbrennungsprozessen 8 Knoten a 2 GByte Ram AMD-Venice mit Gigabit-Ethernet. Also brauchen wir mindestens 16 GByte Ram, schöner natürlich Faktor 2. Traffic ist das zweite Problem. Mit 4 CPUs Opteron wie auch immer realisiert mit SC oder DC hätten wir Trafficprobleme Giga-Eth. und Ram bereits erschlagen auf einem Board.
1*4DC und 32 Giga wäre bereits Wahnsinn, ein Traum.
2*4SC 16 Giga
oder
2*2DC 16 Giga
aber wären halt zwei Maschinen, die vielleicht zusammen kostengünstiger sind pro Geld und Simulationsleistung.
OK, wenn die nun ein komerzielles Produkt einsetzen bei dem
nicht ersichtlich ist welcher Prozess mit welchem kommuniziert
wird es komplex. Dann wird tatsächlich irgendwann CPU links
unten mit CPU rechts oben reden wollen. Das wird die
Performance schwer in den Keller absacken lassen.
yup
Das Zeug hat alles einen Sinn. Es ist weit, weit von normalen
Computeralltag entfernt, es wird mit Standardsoftware schnell
in die Knie gehen, aber es macht trotzdem für bestimmte Fälle
Sinn.
Und RDMA bekommt man gratis dazu.
Cache Kohaerenz leider nicht. Die kostet gleich wieder Zeit.
Stimmt. Bei CFD sind die Datensätze aber meistens
einigermassen disjunkt, da hat man Glück gehabt.
ok
Du hast Opterons, du kannst im Notfall auf InfiniPath
umsteigen. OK, damit opfert man einen Sockel und die Daten
müssen evtl. immernoch den ganzen Weg über 4 Sockel
transportiert werden… aber wenigstens fällt der ganze
PCI-XYZ Teil weg.
Kannst Du das bitte etwas erläutern?
Wir sollten mal HPC klarstellen:
Dir geht’s um Serverfarmen wo Standardsotware aus
Performancegründen verteilt läuft. Ich denke mal SQL-DB,
Webserver und der gleichen mehr. OK, da wird ein 8x (oder 8x
2x = 16 cores) Opteron abstinken, dafür reicht die Anbindung
nach aussen einfach nicht aus. 2 bis maximal 4 Kerne pro
System und ordentliches, jeder-spricht-mit-jedem Netzwerk
dazwischen.
ok
So, nun warten wir mal auf eine Antwort des Ursprungsposter.
Evtl. ist es ja duch Standardsoftware und ich kann mir meinen
schönen iwill in die Haare schmieren…
Ich fürchte ja … 
Viele Grüsse und besten Dank!
Peter