Oliver Braun wrote:
[....] Hier noch einige Details zum Kunden.
Bei seiner Anwendung wird die ganze Zeit auf einer Datei rumgerechnet, welche ca. 24GB groß ist. Liegt diese Datei auf der Platte, ist der Datentransfer zur Platte der Engpass. Zur Zeit hat der Kunde einen Dual-Xeon (3.2) von uns. Die CPU-Auslastung liegt aufgrund des "Festplattenproblems" um 40%. Aus den Festplatten ist wohl nicht mehr rauszuholen (15.000er, Vortex-Contr., Raid 0). [....]
Ich kann Dieter nur recht geben! Wir haben bei 3D Projekten ueblicherweise mit Terabytes(!) (oder zumindest etlichen hundert Gigabytes) an Daten zu tun, und kein Mensch bei uns wuerde auf die Idee kommen, das alles im Speicher halten zu wollen (auch wenn es mitunter praktisch waere ;-)). Es ist auch nicht noetig, wenn die Programme zum Verarbeiten entsprechend ausgelegt sind - das gute Parallelisieren ist natuerlich A und O des Ganzen, damit weder I/O Bounds noch Network Bounds entstehen... So gibt es bei uns, wenn das Programm auf dem Cluster laeuft, ueblicherweise mehrere sog. Reader, die nichts anderes machen, als die Daten von Platte zu lesen und den Slaves (die Cluster-Knoten, welche die eigentlichen Rechnungen durchfuehren) zur Verfuegung stellen. Dabei wird von mehreren NFS-Servern gleichzeitig gelesen, damit es keine Probleme gibt. Slaves gibt es normalerweise weit ueber hundert. Bei guter Parallelisierung entstehen so keine I/O Bounds, weil die Reader bereits vorausschauend lesen koennen und die Daten schon von der Platte gelesen wurden, wenn sie gebraucht werden. Das Filesystem spielt evtl. auch noch eine Rolle bei dem Spielchen. Man braucht natuerlich fuer die Kommunikation ein einigermassen schnelles Netzwerk. Und, wie schon gesagt, es haengt viel davon ab, wie parallelisiert wird, ob es Probleme gibt oder nicht (zu kleine Pakete, zu grosse Pakete, usw.). Wir kommen so mit 4GB RAM pro Dual-CPU 32-bit Cluster Knoten aus. Unsere 64-bit Cluster haben mehr RAM. Wenn man natuerlich innerhalb des parallelisierten Programms an einem Check Point ankommt und dann gleichzeitig alle Slaves schreiben wollen, dann gehts schon rund :-) CU, Th.