Das alte “Rechenzentrum” des TMC-Bryceforum bis Mitte 2000

4-Fach IPC-Cluster

HARDDISKARRAYS 

Iinsgesamt 16 Hardisks (5 davon Wechselplatten) mit zusammen 265 GB Speicherkapazität.

DUAL IPC-CLUSTER

Zwei unabhängige Client-Systeme zum Rendern mit momentan vier AMD K7-Athlon 700 Mhz Prozessoren. Weiterhin stehen vier Towergehäuse mit 6 weiteren Prozessorsystemen zur Verfügung.

RENDERSERVER 

Backplane mit 12 SLOT-CPU Cards mit je einem Pentium-II-450 Prozessor und zwei DEC-ALPHA Prozessoren mit 417MHZ als Steuereinheiten mit LINUX als Betriebssystem. Auf der RAM-CARD befinden sich momentan 2048 MB SDRAM.

Das Gesamtsystem verfügt zusätzlich noch über einen externen NOVELL Server mit etwa 25 GB Speicherkapazität. Zum Rendern stehen also insgesamt 22 Prozessoren zur Verfügung, welche mit einer Gesamtleistung von nahezu 4Gigaflops* arbeiten könnten.

* Gigaflop= Milliarden Floatingpoint Operationen pro Sekunde. Ein FLOP ist eine Berechnung, die mit einer Gleitkommazahl ausgeführt wird.

 

Die BRYCEFORUM Arbeitsplattform
8 x 100 MBit LEVEL ONE Netzwerkverteiler

Von hier verzeigt das Hauptnetz zu den 8 IPC-Clustersystemen, die dem Hauptrechner angeschlossen sind. Alle 8 können mit virtuellen WIN98 Systemen betrieben werden. So kann ein umfangreicher Bryceprozeß über ein von mir erstelltes Netzwerktool auf insgesamt 10 Systeme verteilt werden.

Arbeitsstationen

Von insgesamt 6 Monitoren kann das Gesamtsystem, welches natürlich nicht ausschließlich zum Rendern genutzt wird, kontrolliert werden. Neben zwei Statusmonitoren (Für das UNIX und NT-Serversystem) stehen 3 Monitore zur Verfügung, auf welchen beliebige Prozesse aus dem Primär- oder Sekundärsystem abgebildet werden können. Die Bedienung sämtlicher Systeme erfolgt über einen kaskadierbaren 64 fach – CPU-Switch.

Einige Anmerkungen zur Vorgehensweise auf dem IPC-Cluster
Bryce ist ja grundsätzlich nicht multiprozessorfähig, d.h. es kann immer nur singulär auf einem PC laufen und nutzt weitere Prozessoren nicht aus. Allerdings sind die üblichen Prozesse, die Bryce vollziehen soll beinahe beliebig parallelisierbar. Ein komplexes Bild z.B. mit 1024×768 Pixeln kann entweder als einzelner Prozeß laufen, der insgesamt 786432 Bildpunkte berechnet, oder aber beispielsweise als vier Subprozesse, die je 196608 Bildpunke berechnen. Auch wenn nicht jeder Prozeß in derselben Zeit beendet wird (manche Ausschnitte benötigen mehr Rechenzeit, obwohl sie von der Zahl der Bildpunkte gleich groß sind) ist es doch möglich, mit der Unterteilung viel Zeit zu sparen. Dabei dauert das Gesamtprozedere dann so lange, wie der langsamste der vier Einzelprozesse. Ähnlich gut lassen sich dann natürlich auch Filmsequenzen unterteilen. Mein System besitzt (wie oben beschrieben) eine Backplane mit 12 virtuellen PC, denen je ein Intel Pentium II-450 Prozessor zur Verfügung steht und welche sich 2048MB Hauptspeicher teilen. Damit habe ich rechnerisch etwa 5,4 Gigahertz P-II-Rechenleistung zur Verfügung, die natürlich nur ein theoretischer Wert sind. Im Schnitt kommen davon je nach Art des Renderns zwischen 4 und 5 Gigahertz zur Geltung – also im Schnitt etwa das acht- bis zehnfache eines normalen PC. Der Performancevorteil existiert natürlich nur beim reinen Rendern – während der Konstruktionsphase nutze ich einen normalen 750Mhz AMD-Athlon-Prozessor und 512 MB Hauptspeicher. Das genügt aber vollauf. Wenn es dann ans Rendern geht, muß ich erst mal entscheiden, ob des Rendern über den Cluster notwendig ist, oder nicht. Ich habe mich entschieden, alle Prozesse, die <1h benötigen nicht auf das MP-System auszulagern, sondern sie über den Standard PC laufen zu lassen. Liegt die “etimated calculation time” von Bryce aber weitaus höher (z.B. 38 Stunden), dann lohnt die Auslagerung natürlich sehr. Ein von mir selbst geschriebenes NT-Programm (ich nenne es “BryceMaster 14*”) übernimmt dann die Steuerung der Rechenanlage über das Interne Netzwerk und beginnt mit der Verteilung der Prozesse. Bei einem Film werden die Brycedateien so umgeschrieben, daß jeder Rechner im Cluster genau 1 Bild des Films berechnet – in der Primärphase also genau 12 Bilder los geschickt werden. Dazu bedarf es wie gesagt einer Änderung in den Quelldateien des Brycemodells. Die Parameter der Animation (welche Bilder berechnet werden sollen (Range)) müssen bei jedem der Prozesse angepaßt werden – das macht meine Software automatisch und beauftragt Bryce dann über eine Windows Call-Funktion genau dieses Bild zu berechnen und das Bild anschließend unter einem vorgegebenen Namen (z.B. PROJ1-001.BMP) zu Speichern und dann das Programm Bryce zu beenden. Sobald der Prozess vollkommen abgeschlossen ist ergeht eine Meldung an das Verteilerprogramm (TSR-Überwachung im Hintergrund), welches dann Bild Nr.13 an den Ersten Cluster PC schickt, welcher mit seinem Bild fertig wurde. Bei einer längeren Filmsequenz kann also jeder Cluster auch mehrere Bilder hintereinander berechnen. Die auf dem Netz abgelegten Ergebnisse müssen dann nur noch über einen weiteren Programmteil zur AVI-Sequenz zusammengefügt werden – fertig.

Reine Einzelbilder werden bei mir grundsätzlich automatisch in 12 Ausschnitte zerlegt und dann berechnet – hier wird jeder IPC-Rechner nur einmal genutzt. Mehr Aufwand lohnt dabei auch nicht. Die Zeitverluste für das jeweilige Aktivieren und Deaktivieren von Bryce sind im Vergleich zum Gewinn undramatisch. Man mag mir vorwerfen, daß das ein wenig “EDV-zu Fuss” ist, aber da Bryce leider keine Kommandozeilenbefehle entgegennimmt, scheint mir dieser (umständliche) Weg der einzig gangbare zu sein. Jedenfalls muss ich mich dabei um nichts kümmern und meine 38h Rendersequenz ist meist nach drei bis vier Stunden schon fertig. Das genügt mir! Ich hoffe, damit konnte ich einen kleinen Einblick in die Vorgehensweise verschaffen.