next up previous contents
Next: XRay das Produkt Up: No Title Previous: Das Zwei-Phasenverfahren

Parallelverarbeitung

Beide hier vorhandene Verfahren eignen sich gut für die parallele Verarbeitung in Multiprozessormaschinen. Erstens ist eine Parallelisierung durch das Netzwerk möglich, wenn mehrere Bilder berechnet werden sollen, kann jedes Bild auf einem anderen Server berechnet werden. Mit dem Kommando ,,rquick'' wird auf dem entfernten Server eine remote-shell gestartet und die Arbeit kann ganauso wie auf der lokalen Maschiene erfolgen. Voraussetzung ist natürlich das Ihre Daten im Netzwerk verteilt werden.

Andere Möglichkeiten bietet eine echte Multiprozessormaschiene, hier kann ein Bild von mehreren Prozessoren berechnet werden. Beim Raytracing kann theoretisch jeder Bildpunkt von einem Prozessor berechnet werden, somit ist die Rechenzeit die Programmladezeit plus die Zeit die der am schwierigsten zu berechnende Bildpunkt. Wobei man sagen muß das die Programmladezeit auf einer Multiprozessormaschiene länger ist als auf einer single Prozessormaschiene, da bei einem Mulitprozessorsystem die Aufgaben auf die Prozessoren verteilt werden muß. Da es zur Zeit keine Maschiene geben wird auf der mehr als etwa 10 Prozessoren zur Verfügung stehen ist dieses Programm erstmal für Maschienen mit bis zu 4 Prozessoren ausgelegt. Wenn Sie ein System mit 5 Prozessoren haben dann rechnen 4 am Bild und einer wird mit der Verwaltung geschäftigt sein.

Beim jetzigen Stand des Programmes wird das Bild Zeilenweise von den CPU's bearbeitet, bei einer geringen Auflösung kann man gut beobachten das die Zeilen mit einer unterschiedlichen Geschwindigkeit berechnet werden. Dies ist eine sehr anschauliche und einfach zu implementierende Variante. Der Nachteil besteht darin, daß bei einer Maschiene mit wenigen CPU's öfters Threads generiert werden müssen, dies erhöht den Rechenaufwand. Wer nur einen Prozessor hat, sollte auf jeden Fall die Einprozessorvariante nutzen. Man kann von einem Arbeitsplatz mit einer CPU auch auf einem Server mit mehreren Prozessoren arbeiten, dann sollte die Multithreadet Variante verwendet werden.

Nicht ganz so einfach ist die Lösung des Gleichungssystems bei der Iteration der Lichtstärkenverteilung. Hier handelt es sich um eine klassische for Schleife. Bei der jeder neue Schleifendurchlauf das Ergebniss des vorigen Schleifendurchlaufes benötigt. Solche Algorithmen lassen sich nur bedingt parallelisieren. Bei der hier vorgestellten Lösung ist der Schleifendurchlauf die Arbeit des Prozessors der die Arbeit des anderen Koordiniert, wenn man das manuell betrachtet kann man sagen, der Chef bildet die Summe, die Daten für die Summe bringen die Mitarbeiter, wobei die Mitarbeiter die anderen CPU's sind.

Es wird nicht die Iteration selbst parallelisiert sondern nur die Rechenschritte die in der Iteration gebildet werden. Es wird die hellste Lichtquelle auf alle anderen Patches verteilt, das kann parallel geschehen, wenn es so viele CPU's wie Patches in der Scene vorhanden währen, konnte dies in einem Iterationsschritt geschehen. Zur Zeit wird mit vier Prozessen gearbeitet, also ist eine Mulitprozessormaschiene mit 5 CPU's ausgelastet.

Es soll hier erwähnt werden das das Multiprozessing heuzutage noch nicht von jedem Betriebssystem unterstützt wird. Dieses Programm wurde zwar für Multiprozessing ausgelegt, es stand aber kein Rechner zur Verfügung der dies auch wirklich unterstützt. So konnte das Multiprozessorsystem auf einer Singelprozessormaschiene nur getestet werden. Linux unterstützt das Multiprozessing indem es eine Threadbibliothek dem Anwender zur Verfügung stellt. Eine echte Multiprozessormaschiene stand mir leider nicht zur Verfügung, so das ich den Kern von Linux nicht auf einer Multiprozessormaschiene testen konnte. Es war auch notwendig das X-Windows neu zu übersetzen damit die Programmbibliotheken für die Threads zur Verfügung standen.

Es wird wohl noch einige Zeit dauern bis ein PC mit einer höheren Zahl von Prozessoren ausgestattet sind. Wer aber dieses Programm auf einer Workstation mit mehreren CPU's übersetzt kann dann mit einer hohen Leistungssteigerung rechnen. Es lässt sich leicht eine höhere Zahl von CPU's ansprechen. Abb. 17 bis 19.

   figure701
Abbildung: Möglichkeit der Verteilten Verarbeitung

   figure706
Abbildung 18: Multiprozessormaschiene

   figure711
Abbildung 19: Multiprozessor und Netzwerk


next up previous contents
Next: XRay das Produkt Up: No Title Previous: Das Zwei-Phasenverfahren

Helmut Fahrion
Sun Apr 13 15:58:19 GMT 1997