SMPOV - Howto

SMPOV ist ein Zusatzprogramm für Povray 3.5. Mit diesem Programm ist es möglich, ein einzelnes Bild verteilt über mehrere PCs berechnen zu lassen. Dies führt insbesondere bei großen Bildern zu einer erheblichen Zeitersparnis.

1. Was braucht man dafür?

Klar - man braucht mehrere PCs. Als Betriebssystem eignet sich Windows 98, 2000, XP. Es gibt wohl auch ähnliche Programme für Linux-Systeme, da ich selbst aber nicht über ein derartiges Betriebssystem verfüge, gehe ich an dieser Stelle auch nicht weiter da drauf ein.

Die PCs müssen miteinander vernetzt sein. Es reicht ein einfaches Workgroup-Netzwerk. Das Netzwerkprotokoll ist egal, wichtig ist daß man auf einem PC eine Freigabe erstellen kann, auf die alle anderen PCs Lese- und Schreibzugriff haben.

Grundsätzlich ist das Programm SMPOV auch für einen PC mit mehr als einer CPU (Multiprozessor-Board) geeignet.

Die Betriebssysteme können gemischt sein, also man kann durchaus 98 und XP zusammen verwenden!

Auf jedem der PCs muß Povray installiert und lauffähig sein. Das bedeutet vor allem auch, daß benötigte Erweiterungen für Povray mit installiert sein müssen. So zum Beispiel Radiosity oder LGEO-Erweiterungen für Povray. Meine Erstversuche sind an solchen fehlenden Erweiterungen gescheitert. Man vergisst gerne mal, daß man vor 2 Jahren irgendeine Lib in einem Verzeichnis eingebunden hat. Als Faustregel gilt: Lässt sich ein Bild auf einem PC einwandfrei rendern, so kann dieserPC auch mit SMPOV verwendet werden. Also im Zweifelsfall vorher mit der .pov-Datei einen Einzelversuch starten, ob alles funktioniert. Das erspart hinterher lästige Fehlersuche!

2. Wie funktioniert SMPOV?

SMPOV besteht in der Hauptsache aus zwei Komponenten: Einem Agenten der auf jedem PC läuft und der das freigegebene Verzeichnis auf neue Batch-Jobs kontrolliert und aus dem Hauptprogramm, in welchem man Renderoptionen und alle wichtigen Einstellungen vornehmen kann.
Hat man nun eine .pov-Datei erstellt (zum Beispiel mit Hilfe von L2P oder L3PAO), so öffnet man diese nicht mehr mit Povray, sondern man übergibt sie per drag & drop an SMPOV. Ist alles richtig eingerichtet, übernimmt SMPOV den Rest der Arbeit bis hin zum fertigen Bild. Dazu wird das Gesamtbild in nahezu beliebig (frei einstellbar) kleine Einzelbilder zerlegt und diese werden per Batchjob von den einzelnen PCs berechnet. Am Ende werden die Einzelbilder dann zu einem Gesamtbild zusammengefügt.
Es ist einleuchtend, daß die Aufteilung auf mehrere Rechner am Ende Zeit spart!

3. Ist das nicht alles sehr kompliziert einzurichten?

Kurz gesagt - Nein! Die Installation besteht eigentlich nur aus dem Entpacken der Dateien, dem Anlegen einiger Verknüpfungen auf dem Desktop (optional) und der Freigabe eines Verzeichnisses. Die SMPOV-Dateien müssen auf jedem PC vorhanden sein.
Allerdings gibt es ein paar Stolperfallen, die ich hier gerne erläutern möchte um den Einstieg zu erleichtern!

Windows 98 DOS-Box: Normalerweise soll sich die DOS-Box, über welche ein Batchjob an Povray übergeben wird, am Ende eines Render-Prozesses automatisch schließen. Das funktioniert nur leider unter Windows 98 nicht! Um dies zu korrigieren muß man im Windows-Ordner eine Verknüpfung zur Datei command.com erstellen, die den Namen _DEFAULT erhält. Anschließend muß das System einmal neu gestartet werden, damit die Änderung auch wirkt. Eine englische Anleitung findet sich im SMPOV-Archiv. Führt man diese Änderung nicht durch, so stoppt der Batch-Prozeß auf einem WIndows 98 System so lange, bis man das DOS-Fenster (Überschrift: beendet) von Hand schließt.

Aufteilung des Bildes: Eine sinnvolle Aufteilung für ein Bild zu finden ist nicht immer ganz einfach. Wenn man über zwei nahezu gleich schnelle Systeme verfügt, kann man ohne große Zeitverluste eine geringe Anzahl von Teilbildern wählen. Gehen die Leistungsdaten der Einzelmaschinen weiter auseinander, so sollte man mehr Teilbilder wählen um eine möglichst gleichmäßige Auslastung zu erreichen.

einige Beispiele zur Verdeutlichung:

Es wird eine Aufteilung in nur zwei Halbbilder gewählt. Ein PC hat 1 GHz, der andere 2 GHz. PC 1 ist nach 30 Minuten fertig mit der Berechnung, PC 2 jedoch schon in der Hälfte der Zeit, also nach 15 Minuten. Nun hat der schnellere PC 15 Minuten lang nichts mehr zu tun, sondern wartet da drauf daß PC 1 mit seiner Bildhälfte fertig ist.

Es wird eine Aufteilung mit 16 Teilbildern ( 4 x 4) gewählt. Nun schafft PC 1 in 20 Minuten etwa 5 Bilder, während PC 2 in der gleichen Zeit 11 Bilder berechnet. Also eine Zeitersparnis von 10 Minuten oder 33%.

Dies sind natürlich theoretische Werte, die je nach Rechner und Bild stark variieren können. Man sollte aber immer versuchen die Bildaufteilung so zu wählen, daß der leistungsstarke Rechner möglichst lange zu tun hat. Gute Ergebnisse habe ich bei meinen Systemen mit einer Aufteilung von 8 x 8 Teilbildern bekommen. ich habe auch höhere Werte ausprobiert, aber da ergeben sich zwei entscheidende Nachteile. Zum einen wird jedes Teilbild mit der Dateigröße des Gesamtbildes abgelegt. Das bedeutet bei einem fertigen Bild, daß eine Größe von 5 MB hat und aus 100 Teilbildern besteht, einen Platzbedarf von 500 MB auf der Festplatte! Auf der anderen Seite wird für jedes Teilbild Povray neu gestartet und die .pov-Datei komplett neu eingelesen, bevor dann der Ausschnitt gerendert wird. Bei komplexen Bildern dauert die Startphase von Povray oft sehr lange. Durch Aufteilung in sehr viele Teilbilder kann so der Render-Prozeß am Ende länger dauern als bei einem normalen Durchlauf mit nur einem PC!
Hier hilft nur Ausprobieren um zu einem guten Durchsatz zu gelangen!

4. Das SMPOV-Options-Fenster

So sieht es aus (zum Vergrößern bitte auf das Bild klicken):

Die wichtigsten Optionen sind:

- Antialiasing ON (sollte man immer setzen, um glatte Kanten zu bekommen)

- SMP-Options: Hier wird die Anzahl der Teilbilder definiert

- Render-Resolution: Bestimmt die Größe des fertigen Bildes in Pixeln

- use /EXIT: wird hier die Auswahl entfernt, so bleibt Povray nach dem ersten gerenderten Bild geöffnet. Dies kann bei der Fehlersuche manchmal hilfreich sein!

- das weiße Feld oben rechts: Hierher wird per drag & drop die .pov-Datei gezogen. Man kann auch mehrere Dateien dort ablegen, diese werden dann nacheinander abgearbeitet.

Dem Programmpaket liegt eine englischsprachige Hilfedatei bei, wo nochmal die einzelnen Parameter erklärt werden. Für den Standardfall sollten aber die oben angeführten Parameter ausreichend sein.

5. Der Agent

Der Render-Agent wird auf jedem PC einzeln gestartet. Wann er gestartet wird ist eigentlich egal. Beim Start wird das COM-Verzeichnis abgefragt. Damit ist das gemeinsam genutzte und freigegebene Verzeichnis gemeint. Es muß also vor dem Start das freigegebene Verzeichnis als Laufwerk auf dem jeweiligen PC verbunden sein (zB. mit net use oder über den Explorer - Netzlaufwerk verbinden). Sobald der Agent in diesem verzeichnis einen Batchjob findet, beginnt er mit seiner Arbeit. Die weiteren Optionen sind selbsterklärend. Bei PCs mit nur einer CPU sollte logischerweise auch immer nur bei einer CPU ein Haken gesetzt sein! Die Startoptionen für Povray lassen sich auch während eines Jobs verändern und wirken ab dem nächsten Teilbild.

6. Super Programm, aber wo finde ich das?

Das Programm kann als Freeware unter www.it-berater.org heruntergeladen werden. Man findet dort auch nochmal eine Kurzanleitung zum Schnelleinstieg. Da diese aber zumindestens bei mir einige Fragen offen gelassen hat, habe ich mich zu diesem kleinen Howto entschlossen!

Und nun viel Spaß beim Ausprobieren!