PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechenarbeit für Panoramen auslagern


cdan
18.02.2009, 20:53
Da sitze ich so vor dem Rechner und der rechnet und rechnet an einem Panorama mit 42 Einzelaufnahmen a´ 36 MB. Ziemlich lange geht das schon und ich komme so ins Grübeln über den Sinn des Lebens und überhaupt.
Nebenan stehen drei Server die sich mehr oder weniger langweilen und deren leises surren dringt in meine Ohren, da schießt mir plötzlich ein Gedanke durch den Kopf. Wie kann ich einen Teil der Rechenarbeit von meinem PC auf diese Server verteilen?

Das Scenario:
PC mit Windows Vista Ultimate/64 Bit, Intel Core 2 Quad Q660@2,4 GHz, 8GB RAM
1 Server mit Windows Server 2003 Intel Xeon3040@1,86GHz, 6 GB RAM
2 Server mit Windows Server 2008/64 Bit, Intel Xeon X3353@2,66GHz, 8GB RAM

Die Aufgabe:
Auf dem PC wird mit CS4 das o.g. Panorama erstellt und die Arbeit erledigen alle Geräte gemeinsam.

Die Fragestellung:
Ist das überhaupt möglich und wenn ja welche Möglichkeiten gibt es zur Realisierung?

Die Vision:
Mehrere befreundete User des SUF teilen sich ihre Rechenleistung zur Berechnung von z.B. einem Panorama.

real-stubi
18.02.2009, 20:56
Die Vision:
Mehrere Befreundete User des SUF teilen sich ihre Rechenleistung zur Berechnung von z.B. einem Panorama.

Ich stell mir grad den Monsterzeitgewinn bei 42x36MB Bildern und der typischen DSL-Upstreamgeschwindigkeit vor :)

MfG
Stubi

RainerV
18.02.2009, 21:00
Hier (http://www.harlem-13-gigapixels.com/) findet man unter Details->Stitching eine Beschreibung von Hard- und Software sowie Zeitangaben für die Erzeugung eines 13-Gigapixel-Panoramas (2045 Bilder) von Harlem, das man sich auch gleich dort anschauen kann.

Rainer

Jens N.
18.02.2009, 21:12
Ich stell mir grad den Monsterzeitgewinn bei 42x36MB Bildern und der typischen DSL-Upstreamgeschwindigkeit vor :)


Das war auch mein erster Gedanke. Problem sind hier sicherlich die Datenmengen, die bei anderen Anwendungen für verteiltes Rechnen (Seti@Home o.ä.) wohl weniger ins Gewicht fallen.

redimp
18.02.2009, 21:13
Ich spinn' mal mit:

Wir betrachten erstmal nur die Bilder, was ließe sich hier parallelisieren? Das vereinigen von je Bildern läßt sich verteilen.

Mit vier Bildern sähe das so aus:

Bild 1 und Bild 2 werden gerechnet zu 12
Bild 2 und Bild 3 zu 23
Bild 3 und Bild 4 zu 34

Bild12 und Bild23 zu 123
Bild23 und Bild34 zu 234

Bild123 und Bild234 zu Bild1234

Das ist noch kein wirklich riesiger Gewinn ...

Wenn man das Berechnen von nur zwei Bildern parallelisiert, dann wird ess spannender ... denn dann kann man die Bilder in Teile zerlegen und die jeweils aufeinanderpassenden Puzzlestücke (ähnlich wie oben) zum rechnen verteilen ...

Aber das aufzudröseln habe ich jetzt keine Lust. Wie gut die Panorama Algorithemn sind, bzw. wie aufwendig dass weiß ich aus dem Stehgreif leider auch nicht.

Um einem Irrtum vorzugreifen: Man müsste sicher nicht alle Bilder an alle Mitrechner verteilen. Nur die Stücke die jeweils bearbeitet werden müssen hin und das Ergebnis zurück.

Generell behaupte ich aber mal: Das ließe sich parallelisieren. Der Schritt dahin, dies in Software umzusetzen, der ist aber aufwendig.

Gruß, Ralph

redimp
18.02.2009, 21:14
Das war auch mein erster Gedanke. Problem sind hier sicherlich die Datenmengen, die bei anderen Anwendungen für verteiltes Rechnen (Seti@Home o.ä.) wohl weniger ins Gewicht fallen.

Bei Seti@Home o.ä. werden gewaltige Datenmengen bewegt. Aber nicht alle auf einmal :)

Dat Ei
18.02.2009, 21:15
Die Datenmenge des Uploads eines einzelnen Knotens skaliert doch wunderbar mit der Anzahl der teilnehmenden Knoten. Was will man denn noch mehr?

Gerade ein Panorama-Stitching ist doch prädestiniert für ein verteiltes Rechnen, weil sich das Modell wunderbar über den Ort parallelisieren läßt.


Dat Ei

redimp
18.02.2009, 21:18
Hier (http://www.harlem-13-gigapixels.com/) findet man unter Details->Stitching eine Beschreibung von Hard- und Software sowie Zeitangaben für die Erzeugung eines 13-Gigapixel-Panoramas (2045 Bilder) von Harlem, das man sich auch gleich dort anschauen kann.

Die Jungs und Mädels haben nur einen Rechner mit nem DualCore genommen und das das verwendete Autostich parallel arbeiten kann, davon habe ich auf Anhieb nix finden können.

real-stubi
18.02.2009, 22:43
Die Datenmenge des Uploads eines einzelnen Knotens skaliert doch wunderbar mit der Anzahl der teilnehmenden Knoten. Was will man denn noch mehr?


Prinzipiell magst du ja recht haben, aber folgende praktische Situation angenommen:
Man macht 312 Bilder und will die zusammenrechnen - Dann müssen ja ca. 308 auf nen entfernten Rechner kommen - egal an wieviele Knoten du sendest, das Zeug muss nunmal raus :)

MfG
Stubi

redimp
18.02.2009, 22:48
Prinzipiell magst du ja recht haben, aber folgende praktische Situation angenommen:
Man macht 312 Bilder und will die zusammenrechnen - Dann müssen ja ca. 308 auf nen entfernten Rechner kommen - egal an wieviele Knoten du sendest, das Zeug muss nunmal raus :)

Hmm, das ist richtig. Aber wenn Du im Lan verteilt rechnen willst, oder eine entsprechende Anbindung hast, dann ist das kein Problem.

Ich hab mal ein paar Paper zu dem Thema angeguckt... die machen die dollsten Dinger, aber nix davon parallel.

@cdan

Wie lange rechnet Deine Kiste an dem o.g. Panorama?

Kannst Du mal im Taskmanager gucken ob der Photoshop alle CPUs benutzt (ich hoffe Du hast nen Multicore :) )

real-stubi
18.02.2009, 22:51
Hmm, das ist richtig. Aber wenn Du im Lan verteilt rechnen willst, oder eine entsprechende Anbindung hast, dann ist das kein Problem.


Ist mir klar, das dürfte aber für die wenigsten "befreundeten User des SUF" zutreffen - jedenfalls untereinander ;)

MfG
Stubi

redimp
18.02.2009, 22:55
Der Upstream muss ja nur denjenigen betreffen der das Panorama rechnet. Der muss verteilen. Die anderen müssten ja nur Stückchen hochladen (analog Seti@Home).

Basti
19.02.2009, 08:43
Morgen,
ich habe bevor unser neuer Mailserver on Air ging auch mal testweise darauf Panoramen gerechnet. Es ist ein Dell system mit 8 Xenon Kernen, aber ich verwende PTGui. Das ging ab :cool: Leider lassen viele Panorama Programme ein verteiltes Rechnen noch nicht zu, alternativ könnte man das Projekt ja in mehrere einzelne Slides teilen und diese dann auf die unterschiedlichen Rechner verteilen?
Basti

redimp
19.02.2009, 10:47
Morgen,
ich habe bevor unser neuer Mailserver on Air ging auch mal testweise darauf Panoramen gerechnet. Es ist ein Dell system mit 8 Xenon Kernen, aber ich verwende PTGui. Das ging ab :cool: Leider lassen viele Panorama Programme ein verteiltes Rechnen noch nicht zu, alternativ könnte man das Projekt ja in mehrere einzelne Slides teilen und diese dann auf die unterschiedlichen Rechner verteilen?
Basti

Das war das was ich oben vorgeschlagen hatte. Da ist aber die Datenmenge die man verteilen muss sehr groß und die Zahl der beteiligen Rechner fällt sehr schnell ab.

PTGui kann demnach multithreaden ... das waere schonmal ein Ansatz, ich gucke mir das Ding mal an.

Du schreibst, das viele Panorama Programme kein verteiltes Rechnen zulassen, hast Du überhaupt eins gefunden, dass das kann?

Gruß, Ralph

cdan
19.02.2009, 11:12
Erst einmal Danke für die rege Beteiligung am Thema und Rainer, dir vielen Dank für den interessanten Link.

@cdan

Wie lange rechnet Deine Kiste an dem o.g. Panorama?

Kannst Du mal im Taskmanager gucken ob der Photoshop alle CPUs benutzt (ich hoffe Du hast nen Multicore :) )

Für die Rechenaufgabe brauchte der PC ca. 30 Minuten und alle vier Kerne waren an der Arbeit beteiligt. Ich werde die exakte Zeit jedoch noch einmal messen, wobei je nach Komplexität der Bilder sehr unterschiedliche Rechenzeiten zusammen kommen. Backsteingebäude beanspruchen deutlich mehr Zeit als glatte Beton- oder Glasfassaden.

Basti
19.02.2009, 11:28
Du schreibst, das viele Panorama Programme kein verteiltes Rechnen zulassen, hast Du überhaupt eins gefunden, dass das kann?

Nein, aber ich habe danach auch nicht gesucht. PTGui kann aber mehrere Prozessorkerne komplett auslasten was gerade in meinem Fall einen extremen Performance Sprung gebracht hat.
Liebe Grüße
Basti