DE19625869C2 - Verfahren zum parallelen Zusammenfassen von N Datensätzen - Google Patents
Verfahren zum parallelen Zusammenfassen von N DatensätzenInfo
- Publication number
- DE19625869C2 DE19625869C2 DE19625869A DE19625869A DE19625869C2 DE 19625869 C2 DE19625869 C2 DE 19625869C2 DE 19625869 A DE19625869 A DE 19625869A DE 19625869 A DE19625869 A DE 19625869A DE 19625869 C2 DE19625869 C2 DE 19625869C2
- Authority
- DE
- Germany
- Prior art keywords
- processor
- data
- processors
- regions
- assigned
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Description
Die Erfindung bezieht sich auf ein Verfahren zum parallelen
Zusammenfassen von N Datensätzen, mittels N Prozessoren
(P0, . . ., PN-1), die über ein Netzwerk zum Datenaustausch
verbunden sind.
Datenverarbeitungsverfahren der vorstehend beschriebenen
Gattung dienen der Verarbeitung großer Datenmengen, die in
jeweils unterschiedlichen Datensätzen vorliegen und zur
Berechnung eines Gesamtergebnisses miteinander in
Verbindung gebracht bzw. miteinander gemischt werden
müssen.
Zur Auswertung und Analyse großer Datenmengen bedient
man sich beispielsweise der graphischen Darstellung
bzw. Visualisierung der Daten, die in der heutigen
Zeit eine Schlüsseltechnologie darstellt, die es dem
Ingenieur ermöglicht, komplexe Zusammenhänge aus vielen
Bereichen der Technik zu erfassen und damit zu weiteren
Ergebnissen zu kommen. Ein Beispiel hierfür ist die
Visualisierung von Simulations-Ergebnissen aller Art.
Desweiteren können aber auch alle möglichen Arten von
Sensoren, z. B. Satelliten große Datenmengen liefern, die
visuell ausgewertet werden müssen. Hierzu werden
beispielsweise vom Satelliten Datensätze geliefert, die
Meßwerte aus unterschiedlichem Höhenschichten der
Atmosphäre beinhalten. Zur Erstellung eines Satelliten
bildes nach gewünschten thematischen Vorgaben, wie
beispielsweise die Darstellung der Oberflächentopographie
der Erde mit darüberliegenden, bodennahen Wolkenfeldern,
ist es erforderlich, die Datensätze aus den
unterschiedlichen Höhenlagen miteinander in Verbindung zu
bringen und derart zu mischen, so daß das gewünschte
graphische Endergebnis berechnet werden kann. Alle
übrigen Informationen aus anderen Höhenlagen sind dabei
zu unterdrücken.
Auch für Anwendungen in virtuellen Umgebungen ist es
wünschenswert, große Szenen schnell darstellen zu können,
wie beispielsweise bei Fahr- und Trainings-Simulatoren
aller Art.
Die zu visualisierenden Daten durchlaufen in an sich
bekannter Weise einer sogenannten Visualisierungs-Pipe
line, in der zunächst die Geometrieverarbeitung statt
findet und anschließend eine Rasterisierung. Für die
schnelle Visualisierung großer Datenmengen werden Hoch
leistungs-Graphik-Rechner eingesetzt. Es sind Verfahren
zur parallelen Verarbeitung von Datensätzen bekannt,
die sich wie im nachstehenden ausgeführt wird, in
grundsätzlich zwei unterschiedliche Verfahrensgruppen
einordnen lassen: Das sogenannte "screen subdivision-
Verfahren" und das sogenannte "image-composition-Verfah
ren".
Bei den "screen subdivision-Verfahren", wie sie bei
spielsweise in den Artikeln von H. Fuchs: "Distributing
a Visible Surface Algorithm over Multiple Computers",
Proceedings of the ACM Annual Conference, 1977, pp.
449-451 und F. I. Parke: "Simulation and Expected Per
formance Analysis of Multiple Processor Z-Buffer
Systems", ACM Computer Graphics (Proceedings of
SIGGRAPH 1980), Vol. 14, No. 3, July 1980, pp. 48-56
beschrieben sind, wird der gesamte zu bearbeitende
Bildraum in einzelne Bildregionen unterteilt, die ein
zelnen Prozessoren einer parallel arbeitenden Maschine
zugeordnet werden. Jeder Prozessor ist dafür zuständig,
die Objekte, die in die ihm zugeordneten Bildregionen
fallen, zu Rasterisieren. Ein extremer
Ansatz hierbei ist der sogenannte Prozessor-pro-Pixel
Ansatz, bei dem jedem einzelnen Pixel des Bildraumes
ein eigener Prozessor zugeordnet wird, siehe hierzu den
Beitrag von H. Fuchs, J. Goldfeather, J. P. Hultquist,
S. Spach, J. D. Austin, F. P. Brooks, J. G. Eyles, J.
Poulton: "Fast Spheres, Shadows, Textures,
Transparencies and Image Enhancements in Pixel Planes",
ACM Computer Graphics (Proceedings of SIGGRAPH 1985),
Vol. 19, No. 3, July 1985, pp. 111-120.
Weitaus häufiger werden jedoch Verfahren verwendet, bei
denen mehrere Pixel einem Prozessor zugeordnet werden, wie
beispielsweise bei der Pixel-Planes 5 oder bei der SGI
Reality Engine. Die vorstehenden Ansätze sind jeweils in
den Artikeln von H. Fuchs, J. Poulton, J. Eyles, T. Greer,
J. Goldfeather, D. Ellsworth, S. Molnar, G. Turk, B. Tebbs,
L. Israel: "Pixel-Planes 5: A Heterogeneous Multiprocessor
Graphics System Using Processor-Enhanced Memories", ACM
Computer Graphics (Proceedings of SIGGRAPH 1989), Vol. 23,
No. 3, July 1989, pp. 79-88 und von K. Akeley: "Reality
Engine Graphics", ACM Computer Graphics (Proceedings of
SIGGRAPH 1993), August 1993, pp. 109-116, beschrieben.
Im Unterschied zu den vorstehend genannten "screen
subdivision Verfahren" werden bei den "image-
composition-Verfahren" die graphischen Primitive des
Objektraumes verteilt und den Prozessoren zur Bearbeitung
zugeordnet. Jeder Prozessor ist bei solchen Verfahren dafür
zuständig, diejenigen Pixel zu berechnen, die durch das
Rendering der ihm zugeordneten Objekte sichtbar sind. Das
Ergebnis sind dann Teilbilder, die nur noch
zusammengemischt werden müssen, ähnlich, wie in dem Falle
von Satellitenbilddaten, wo die Meßwerte aus einer Vielzahl
übereinander liegender Höhenschichten der Atmosphäre zu
einem fertigen Satellitenbild zusammengefasst werden.
In diesem Beispiel stellt der Rendering-Prozeß eine
geometrische Transformation zwischen drei-dimensional
vorliegenden Datensätzen in einen zwei-dimensionalen
Bilddatensatz dar. Da die graphischen Primitive eines jeden
Datensatzes, zur Berechnung und Darstellung eines
Gesamtbildes möglicherweise die Primitive anderer
Datensätze im gleichen Objektraum überdecken, müssen
zur Herstellung eines Gesamtbildes die einzelnen Teil
bilder bzw. Datensätze miteinander gemischt werden,
so daß das fertige Bild erhalten werden kann. Dieser
Mischvorgang trägt auch zur Begriffsbildung des Namens
von "image composition-Verfahren" dar.
Image composition-Verfahren sind deshalb so interes
sant, weil durch die Zunahme weiterer Prozessoren, die
Fähigkeit große Datenmengen zu visualisieren bzw. zu
verarbeiten, gesteigert wird. Das schnelle Mischen von
vielen einzelnen Teilbildern bzw. Datensätzen ist das
eigentliche Problem bei dem image composition-Verfah
ren. Im wesentlichen sind zwei grundsätzliche Verfahren
bekannt, mit denen derartige Teilbilder bzw. Datensätze
gemischt werden können.
Grundlage für eines der bekannten Verfahren stellt eine
Pipeline dar, wohingegen ein anderes bekanntes Verfah
ren eine rekursive-Baum-Struktur aufweist.
Bei dem bekannten Pipeline-Verfahren werden die Prozes
soren in eine Art Pipeline aufgereiht, wobei Pixel oder
Pixelregionen durch diese Pipeline geschickt werden.
Auf dem Weg durch die Pipeline erfahren die Pixelregio
nen Veränderungen, die durch die an dem Prozeß betei
ligten Prozessoren bedingt sind. Folgende Artikel be
schreiben bekannte Pipeline-Verfahren, mit denen der
Inhalt einer Vielzahl von Teilbildern bzw. Datensätzen
miteinander gemischt werden: R. Weinberg: "Parallel
Processing Image Synthesis and Anti-Aliasing", ACM
Computer Graphics, Vol. 15, No. 3, August 1981, pp. 55-62,
M Deering, S. Winner, B. Schediwy, C. Duffy, N.
Hunt: "The Triangle Processor and Normal Vector Shader:
A VLSI System for High Performance Graphics", ACM Com
puter Graphics (Proceedings of SIGGRAPH 1988), Vol. 22,
No. 4, August 1988, pp. 21-30 und S. Molnar, J. Eyles,
J. Poulton: "PixelFlow: High Speed Rendering Using
Image Composition", ACM Computer Graphics (Proceedings
of SIGGRAPH 1992), July 1992, pp. 231-240.
Das nach einem rekursiven Baum arbeitende zweite Ver
fahren ist in den folgenden Beiträgen beschrieben: D.
Fussell, B. D. Rathi: "A VLSI-Oriented Architecture for
Real-Time Raster Display of Shaded Polygons", Procee
dings of Graphics Interface '82, Toronto, May 1982, pp.
373-380, S. Molnar, H. Fuchs: "Advanced Raster Graphics
Architecture" in: J. D. Foley, A. van Dam, S. K. Feiner,
J. F. Hughes: "Computer Graphics: Principles and
Practice", 2nd Edition, Addison-Wessley, Reading,
Massachusettes, 1990, pp. 855-922 und R. Scopigno, A.
Paoluzzi, S. Guerrini, G. Rumolo: "Parallel Depth
Merge: A Paradigm for Hidden Surface Removal",
Computers & Graphics, Vol. 17, No. 5, 1993, pp.
583-592.
Bei den bekannten Verfahren nach dem Pipeline-Prinzip
steigt in nachteilhafter Weise die Latenz, d. h. die
durch die Pipeline-Länge bedingte Zeitdauer zwischen dem
Eintrittszeitpunkt der zu mischenden Pixel bzw. Pixel
informationen und dem Vorliegen des Ergebnisses, je
mehr Prozessoren in der Pipeline vorgesehen sind. Über
dies gestatten die genannten Pipeline-Verfahren keine
skalierbare Datenverarbeitung, wie im Falle von paral
lelen Verfahren. Bei den Verfahren, die nach einer "re
kursiven-Baum-Struktur" arbeiten, werden die zur Ver
fügung stehenden Prozessoren je weiter der Prozeß vor
anschreitet, nur ungenügend genutzt.
Der Erfindung liegt daher die Aufgabe zugrunde, ein
Verfahren zum parallelen Zusammenfassen von N Daten
sätzen, derart anzugeben, daß möglichst schnell und
unter Nutzung aller vorhandener Komponenten die Infor
mationen einzelner Datensätze miteinander gemischt
werden, die in paralleler Verarbeitungsweise zu einem
gemeinsamen Endergebnis zusammengesetzt werden sollen.
Das Verfahren soll insbesondere bei der Visualisierung
von Datensätzen anwendbar sein und skalierbare Eigen
schaften aufweisen. Insbesondere soll das Verfahren
beschleunigt werden, indem möglichst alle vorhandenen
Prozessoren am gesamten Verfahrensablauf, d. h. von
Beginn bis Ende des Verfahrens zu beteiligen sind. Es soll
die Möglichkeit geschaffen werden, daß leistungsfähige
Hochleistungs-Rechner gebaut werden können, mit denen
der Berechnungsvorgang, d. h. der Austausch und Mischen
einzelner Daten aus N Datensätzen zur Erzeugung eines
einzigen Gesamtergebnisses, beschleunigt werden kann.
Die Lösung der Erfindung ist im Patentanspruch 1 ange
geben. Den Erfindungsgedanken vorteilhaft ausbildende
weitere Merkmale sind Gegenstand der Unteransprüche.
Erfindungsgemäß ist ein Verfahren zum parallelen Zusam
menfassen von N Datensätzen derart ausgebildet, daß
jedem von N Prozessoren jeweils ein Datensatz zuge
ordnet ist. Die N Datensätze werden zur Ergebnis
auswertung derart miteinander gemischt, daß jeder Pro
zessor jeweils Paar-Weise auf die Datensätze aller N - 1
Prozessoren in N - 1 getrennten Schritten zugreift und
mit diesen Daten austauscht, wobei eine Schritt-Ste
uerung die Prozessor-Paarbildung gemäß einer Exklusiv-
Oder-Funktion bestimmt.
Das Verfahren setzt an der Stelle an, wo N Prozessoren
bereits N verschiedene Teilbilder bzw. Datensätze erzeugt
haben, die im Falle der Erstellung eines graphischen
Endproduktes zusammengesetzt werden müssen. Diese N
Prozessoren sind derart miteinander verbunden, daß
beliebige Prozessoren ihre Daten austauschen können. Ein
wichtiger Aspekt der Erfindung liegt darin, daß mehrere
Prozessoren gleichzeitig, d. h. parallel und unabhängig auf
die Teilbilder bzw. Datensätze anderer Prozessoren
zugreifen können. Eine Schritt-Steuerung berechnet, welcher
Prozessor wann auf welche Daten zugreifen kann.
Im Falle der Berechnung eines graphischen Gesamtbildes,
wird der Bildraum konzeptuell in N Regionen R0, . . ., RN-1
aufgeteilt, wobei Größe und Eigenschaft der Regionen für
das Verfahren nebensächlich ist. Die Regionen müssen
insbesondere nicht zusammenhängend sein. Jede zu
bearbeitende Region ist einem bestimmten Prozessor
zugeordnet, der dafür verantwortlich ist, die Pixel der ihm
zugeordneten Region für das fertige Bild zu berechnen.
Hierfür fehlen ihm jedoch die Pixels dieser Region von N - 1
anderen Prozessoren. Beispielsweise wird auf das
Fallbeispiel zur Berechnung eines Satellitenbildes
verwiesen, auf dem Informationen aus unterschiedlichen
Höhenschichten sichtbar dargestellt ist. Zur Berechnung
eines Gesamtsatellitenbildes müssen daher Informationen aus
verschiedenen Höhenschichten miteinander in Verbindung
gebracht werden, um diese auf einem einzigen Bild
darzustellen.
Unter der Annahme, daß N eine 2er-Potenz ist, werden N - 1
Schritte S1, . . ., SN1 ausgeführt.
Im folgenden sei R i|j die j-te Bildregion Rj des i-ten Pro
zessores Pi und mit E i|j wird das Ergebnis im j-ten Ar
beitsschritt Sj auf dem i-ten Prozessor Pi bezeichnet.
Als anfängliches Teilergebnis E i|0 besitzt jeder Prozes
sor Pi die ihm zugeordnete Region seines lokalen Teil
bildes:
E i|0 = R i|i
In jedem Schritt tauschen Prozessor-Paare Bildregionen
aus und mischen diese danach zu ihren eigenen Teiler
gebnissen. In jedem Schritt hat jeder Prozessor einen
anderen Partner-Prozessor. Die Schritt-Steuerung be
stimmt mit einem Schrittzähler den aktuellen Partner-
Prozessor von Pj im i-ten Schritt Si durch die Ex
klusiv- Oder-Funktion und ist somit:
Pi ⊗ j
Die Schritt-Steuerung kann sowohl zentral, als auch
verteilt realisiert werden. Aus dem Arbeitsschritt des
Schrittzählers weiß jeder Prozessor genau, welche Daten
er von welchem Partner-Prozessor benötigt. Die beiden
Prozessoren eines Prozessor-Paares (Pj, Pi ⊗ j) tauschen
nämlich die Bildregion aus, für die der jeweils andere
Partner verantwortlich ist:
Nachdem dieser Tauschvorgang im Schritt Si beendet ist,
mischen alle Prozessoren Pj die vom Partner erhaltene
Bildregion mit ihrem lokalen Teilergebnis zu einem
neuen Teilergebnis, diese Misch-Funktion wird hier
durch den Z-Operator ausgedrückt:
E j|i = E j|i-1Z R Partner|j
Das dargelegte Verfahren ist nicht von der Art des ver
wendeten Misch-Verfahrens abhängig. Nach N-1 Schritten
besitzt jeder Prozessor Pj als Ergebnis E j|N-1 die richtig
gemischte Bildregion für die er zuständig ist.
Die weitere Vorgehensweise hängt nun davon ab, ob diese
letzten Ergebnisse in einem Speicher geschrieben wer
den, auf dem der Video-Controller direkt zugreifen
kann, oder nicht. Im ersteren Fall ist man fertig und im
zweiten Fall müssen die Regionen noch zusammengefaßt
werden. Hierfür kann man beispielsweise durch einen baum
förmig organisierten Datentransport Log2(N) Schritten
die Ergebnisse auf einem Prozessor zusammenfassen.
Vorstehend ist zwar davon ausgegangen worden, daß die
Schritte S1, . . ., SN-1 in eben dieser aufsteigenden
Reihenfolge ausgeführt werden. Dies jedoch ist nicht
zwingend notwendig. Die Schritte S1, . . ., SN-1 können
jedoch auch in einer beliebigen Permutation ausgeführt
werden, zumal das Endergebnis letztlich von der Permu
tation der Schritte unabhängig ist.
Ferner ist bislang davon ausgegangen worden, daß die
Anzahl der eingesetzten Prozessoren N einer 2er-Potenz
entspricht. Auch dies ist nicht zwingend erforderlich,
da im Falle, daß N keine 2er-Potenz ist, sich nur zwei
Umstände ändern: Die Zahl der benötigten Schritte ist
nicht mehr N - 1, sondern die gleiche, wie für die nächst
höhere 2er-Potenz von Prozessoren benötigt würde, also:
Zum anderen kann es vorkommen, daß im i-ten Schritt Si
beim Auffinden des Prozessor-Partners von Pj ein Pro
zessor herauskommt, den es gar nicht gibt, weil gilt:
i⊗j ≧ N
In diesem Fall setzt der Prozessor Pj in dem Schritt Si
aus.
Das vorstehend beschriebene Verfahren
ist vornehmlich zur Durchführung von Berechnungen ge
dacht, deren Endergebnisse visuelle Bilder darstellen.
Jedoch können mit dem erfindungsgemäßen Verfahren Daten
aus verschiedenen Anwendungsbereichen zusammengefaßt und in
Verbindung gebracht werden.
Durch die erfindungsgemäße gesteuerte
Paar-Bildung mit gezieltem Datenaustausch zwischen
jeweils einem Prozessor-Paar können in ökonomischer
Weise auf schnellstem Wege Daten zwischen
allen am Verfahrensprozeß beteiligten Prozessoren aus
getauscht werden, so daß nach N - 1
Schritten alle Prozessoren jegliche für Sie notwendigen
Informationen zur Berechnung ihrer Teil-Endergebnisse
erhalten. Zur Weiterverarbeitung des Gesamt-Endergeb
nisses sind nur noch die Teil-Endergebnisse jedes ein
zelnen Prozessors zusammenzuführen.
Die Erfindung wird nachstehend anhand eines Ausführungs
beispiels unter Bezugnahme auf die Zeichnungen exemplarisch
beschrieben. Es zeigen:
Fig. 1 schematisierte Komponentendarstellung der am
erfindungsgemäßen Verfahren beteiligten Hard
warekomponenten,
Fig. 2 Darstellung der Prozessor-Paarbildung in Ta
bellenform, sowie
Fig. 3 schematisiertes Ablauf-Diagramm des Verfahrens.
In Fig. 1 sind die für die Durchführung des Verfahrens
beteiligten Hardware-Komponenten dargestellt. Im vor
liegenden Falle sind N = 4 Prozessoren P0, P1, P2, P3 an
einen gemeinsamen Speicher SP über ein Verbindungs-Netzwerk
Vn angeschlossen. In dem Speicher SP sind vier Teilbilder
T1, T2, T3 und T4 gespeichert. Der Bildraum eines jeden
Teilbildes wird in vier rechteckige Regionen R0, R1, R2 und
R3 aufgespalten. Wie vorstehend bereits eingeführt,
entspricht, der jeweils untere Index der betreffenden
Bildregion innerhalb der einzelnen Teilbilder und der obere
Index der Prozessorzugehörigkeit. Alle 4 Teilbilder T1 bis
T4 sind über das Verbindungsnetzwerk den Prozessoren P0 bis
P3 zugeordnet. Anhand des Index wählt der Prozessor das zu
verarbeitende Teilbild aus. Im vorliegenden Falle werden
die Bildregionen R0 in den einzelnen Teilbildern T1 bis T4
von dem Prozessor P0 verarbeitet. Entsprechendes gilt für
die Regionen R1, R2 und R3. Ebenso ist im Speicher SP ein
Ergebnisdatensatz E vorgesehen, in den die Teilergebnisse
pro Prozessor nach erfolgtem Datenaustausch geschrieben
werden. Ein Schritt-Steuer-Modul S steuert mit Hilfe eines
Schrittzählers Sz die Prozessor-Paarbildung und legt
überdies fest, in welchem Schritt welche Daten zwischen
welchen Pro
zessoren ausgetauscht werden.
Im gezeigten Beispiel für N = 4 Prozessoren sind N-1 = 3
Zeitschritte auszuführen, so daß jeder Prozessor mit jedem
anderen in Verbindung tritt. In Fig. 2 ist eine Tabelle
dargestellt, nach der der Schrittzähler die
Prozessor-Paarbildung vornimmt. Die Schritt-Steuerung dient
dazu, daß im i-ten Arbeitsschritt Si für jeden Prozessor Pj
mit j = 0, 1, 2, 3 der aktuelle Partner-Prozessor, mit dem
die Bildregion ausgetauscht werden soll, berechnet werden
kann.
Aus dem Ablauf-Diagramm gemäß Fig. 3 sind die Misch-
Schritte zu entnehmen, die nach jedem Tausch-Vorgang
zwischen zwei Prozessor-Paaren vorgenommen werden.
In der linken Spalte stehen vertikal untereinander die vier
einzelnen Prozessoren P0 bis P3. Den einzelnen
Prozessoren sind ihre ursprünglichen Bildregionen R 0|0
bis R 3|3 aus den Teilbildern T1 bis T4 zugeordnet. In
einem ersten Schritt S1 erhält beispielsweise der Pro
zessor P0 die Daten der Bildregion R 1|0 vom Prozessor P1 und
mischt diese mit den Daten der Bildregion R 0|0, die
ihm bereits zugeteilt gewesen sind. Ferner erhält
beispielweise der Prozessor P3 im ersten Schritt S1 die
Daten der Bildregion R 2|3 vom Prozessor P2. Diese ihm
zukommenden Daten der Bildregion R 2|3 mischt nun der
Prozessor P3 mit den bereits vorhandenen Daten R 3|3. Der
Z-Operator stellt hier jeweils den Mischvorgang nach dem
vollendeten Tauschvorgang bei den einzelnen Prozessoren
dar.
In einem zweiten Schritt S2 wird gemäß der
Prozessorpaarbildung, die in Fig. 2 dargestellt
ist, ein weiterer Datenaustausch vorgenommen. So erhält
beispielsweise der Prozessor P1 die Daten der
Bildregion R 3|1 vom Prozessor P3 und mischt diese mit
seinen bereits gespeicherten Daten der Bildregionen R 0,1|1.
Im Gegenzug dazu beispielsweise übergibt der Prozessor
P1 die Daten der Bildregion R 1|3 dem Prozessor P3, der
diese mit seinen bereits abgespeicherten Daten R 2,3|3
mischt. Entsprechendes gilt für den letzten Schritt S3.
Zunächst einmal ist daraufhinzuweisen, daß alle Prozes
soren P0 bis P3 während des ganzen Datenaustauschpro
zesses parallel, d. h. simultan nebeneinander arbeiten.
Das erfindungsgemäße Verfahren nützt somit alle zur
Verfügung stehenden Hardware-Komponenten bis zum
letzten Verfahrensschritt, was beispielsweise beim
Verfahren, das nach dem rekursiven Baum-Prinzip
arbeitet nicht der Fall ist.
Die nachfolgende Gegenüberstellung der Zeitdauern zur
Berechnung des Gesamtbildes zwischen dem erfindungsge
mäßen Verfahren und dem bekannten Verfahren zeigt, daß
das erfindungsgemäße Verfahren erheblich schneller zum
Ergebnis führt, als die bekannten.
Bei A die Bildgröße, T(A) die Kosten für den Transfer
von A-Pixels, C(A) die Kosten für das Mischen von A-
Pixels und N die Zahl der eingesetzten Prozessoren, so
berechnet sich die Zeit, um ein Bild durch einen
binären Baum zu mischen nach folgender Formel:
Log2(N) . (T(A) + C(A))
Die Zeitdauer zur Berechnung eines Gesamtbildes mit
einem Pipeline-Verfahren, bei dem der Bildraum in R-
Regionen unterteilt ist, berechnet sich nach folgender
Formel:
(1 + (N - 1)/R) . (T(A) + C(A))
Eine entsprechende Abschätzung zur Zeitdauerberechnung
des erfindungsgemäßen Verfahrens zur Ermittlung eines
Gesamtbildes, läßt sich mit folgendem Zusammenhang ange
ben:
((N - 1)/N) . (T(A) + C(A))
Im Fall des obenstehend beschriebenen Prozesses mit N =
4 Prozessoren gilt folgende Beziehung für die Gesamt
zeitdauer TGesamt:
TGesamt = 0,75 . T(A) + 0,75 . C(A)
In diesem Beispiel würde eine Pipeline, die den Bild
raum in 100 Regionen unterteilt, etwa 37 Prozent mehr
Zeit benötigen und ein Binär-Baum-basiertes Mischver
fahren etwa 166 Prozent mehr.
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens
gegenüber dem Pipeline-Verfahren ist, daß das Ergebnis
bild nicht Stück für Stück verfügbar, sondern die be
teiligten Prozessoren das Bildmischen zur gleichen Zeit
beenden, ähnlich wie bei den Binär-Baum-Verfahren.
Claims (6)
1. Verfahren zum parallelen Zusammenfassen von N-
Datensätzen, mittels N Prozessoren (P0, . . ., PN-1), die
über ein Netzwerk miteinander zum Datenaustausch verbunden
sind,
gekennzeichnet durch die Kombination folgender Ver
fahrensschritte:
- - jedem Prozessor der N Prozessoren werden jeweils ein Datensatz der N-Datensätze zugeordnet,
- - die Datensätze werden in N Regionen (R0, . . ., Rn-1) unterteilt,
- - jede der N Regionen wird einem bestimmten Prozessor zur Berechnung der in den Regionen enthaltenen Einzeldaten für eine Ergebnisauswertung zugeordnet,
- - der Datenaustausch zwischen den einzelnen Prozessoren erfolgt derart, daß jeder Prozessor jeweils Paar weise auf die Datensätze aller N - 1 Prozessoren in N - 1 getrennten Schritten zugreift und jeweils die Regionen austauscht, die dem Prozessor zugeordnet sind,
- - eine Schritt-Steuerung bestimmt die Prozessor-
Paarbildung, daß ein Partnerprozessor eines
Prozessors Pj im i-ten Schritt gemäß einer Exklusiv
Oder-Funktion nachfolgend bestimmt wird:
- - nach erfolgtem Datenaustausch mischt jeder Prozessor die ausgetauschte Region mit der, dem Prozessor zugeordneten Reqion nach einer vorgegebenen Mischfunktion Z.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet, daß die Schritt-Steuerung einen
Schritt-Zähler aufweist, der pro Schritt für einen
Prozessor den aktuellen Partner-Prozessor bestimmt.
3. Verfahren nach Anspruch 2,
dadurch gekennzeichnet, daß der Schritt-Zähler Regionen aus
den Datensätzen auswählt, die zwischen den Partner-
Prozessoren ausgetauscht werden.
4. Verfahren nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß die Datensätze Teilbilder sind,
die zur Erstellung eines Gesamtbildes miteinander gemischt
werden.
5. Verfahren nach Anspruch 4,
dadurch gekennzeichnet, daß die Einzeldaten Bildpixel sind.
6. Verfahren nach einem der Ansprüche 1 bis 5,
dadurch gekennzeichnet, daß für den Fall, N ist eine
Zweier-Potenz, alle N Prozessoren in allen N - 1 Schritten
simultan am Tauschvorgang beteiligt werden.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19625869A DE19625869C2 (de) | 1996-06-27 | 1996-06-27 | Verfahren zum parallelen Zusammenfassen von N Datensätzen |
EP97931667A EP0907932A1 (de) | 1996-06-27 | 1997-06-26 | Verfahren zum parallelen zusammenfassen von n datensätzen |
PCT/DE1997/001338 WO1998000810A1 (de) | 1996-06-27 | 1997-06-26 | Verfahren zum parallelen zusammenfassen von n datensätzen |
US09/171,458 US20010054058A1 (en) | 1996-06-27 | 1997-06-27 | Process for combining in parallel n sets of data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19625869A DE19625869C2 (de) | 1996-06-27 | 1996-06-27 | Verfahren zum parallelen Zusammenfassen von N Datensätzen |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19625869A1 DE19625869A1 (de) | 1998-01-02 |
DE19625869C2 true DE19625869C2 (de) | 2001-01-04 |
Family
ID=7798253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19625869A Expired - Fee Related DE19625869C2 (de) | 1996-06-27 | 1996-06-27 | Verfahren zum parallelen Zusammenfassen von N Datensätzen |
Country Status (4)
Country | Link |
---|---|
US (1) | US20010054058A1 (de) |
EP (1) | EP0907932A1 (de) |
DE (1) | DE19625869C2 (de) |
WO (1) | WO1998000810A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006040791B3 (de) * | 2006-08-31 | 2008-03-27 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zur Zusammenfassung mehrerer Teilbilder für beliebige Abbildungsflächen |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1658808A1 (de) | 1994-09-02 | 2006-05-24 | Volcano Corporation | Ultraminiatur-druckfühler und leitdraht hierfür |
US7350036B2 (en) * | 2005-08-01 | 2008-03-25 | Intel Corporation | Technique to perform concurrent updates to a shared data structure |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2280523A (en) * | 1993-07-13 | 1995-02-01 | Mitsubishi Electric Corp | Sorting system and method. |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8902726A (nl) * | 1989-11-06 | 1991-06-03 | Oce Nederland Bv | Werkwijze en inrichting voor het bewerken van data afkomstig van beelden. |
US5315701A (en) * | 1992-08-07 | 1994-05-24 | International Business Machines Corporation | Method and system for processing graphics data streams utilizing scalable processing nodes |
EP0693737A3 (de) * | 1994-07-21 | 1997-01-08 | Ibm | Verfahren und Apparat zum Verwalten der Aufgaben in einem Mehrprozessorsystem |
-
1996
- 1996-06-27 DE DE19625869A patent/DE19625869C2/de not_active Expired - Fee Related
-
1997
- 1997-06-26 WO PCT/DE1997/001338 patent/WO1998000810A1/de not_active Application Discontinuation
- 1997-06-26 EP EP97931667A patent/EP0907932A1/de not_active Withdrawn
- 1997-06-27 US US09/171,458 patent/US20010054058A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2280523A (en) * | 1993-07-13 | 1995-02-01 | Mitsubishi Electric Corp | Sorting system and method. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006040791B3 (de) * | 2006-08-31 | 2008-03-27 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zur Zusammenfassung mehrerer Teilbilder für beliebige Abbildungsflächen |
US8275217B2 (en) | 2006-08-31 | 2012-09-25 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for combining several sub-images for any imaging surface areas |
Also Published As
Publication number | Publication date |
---|---|
EP0907932A1 (de) | 1999-04-14 |
WO1998000810A1 (de) | 1998-01-08 |
DE19625869A1 (de) | 1998-01-02 |
US20010054058A1 (en) | 2001-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3831428C2 (de) | ||
DE3619420C2 (de) | ||
DE69632578T2 (de) | Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen | |
DE69535231T2 (de) | VERFAHREN ZUR INTEGRATION EINES Bildtextursignalspeicher UND INTERPOLATIONSLOGIK | |
DE69534331T2 (de) | Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur | |
DE60018599T2 (de) | Dreidimensionale gui-fenster | |
DE4225872C2 (de) | Verfahren zum Kennzeichnen und Identifizieren ausgewählter Gebiete in Bildern | |
DE10296401B4 (de) | Verbund-Rendering von 3-D-Graphikobjekten | |
DE60126967T2 (de) | Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung | |
EP0984397B1 (de) | Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster | |
DE60012917T2 (de) | Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten | |
DE19807013B4 (de) | Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet | |
DE69914355T2 (de) | Bildverarbeitungsgerät | |
DE10106023A1 (de) | Verfahren und Vorrichtung zur Kollisionserkennung von Objekten | |
DE19807053B4 (de) | Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung | |
DE102013017640A1 (de) | Verteilte gekachelte Zwischenspeicherung | |
DE19917092A1 (de) | Verfahren zur Rasterisierung eines Graphikgrundelements | |
DE4341304A1 (de) | Verfahren und Vorrichtung zur Verwendung eines Videopuffers | |
DE102013018445A1 (de) | Festlegung eines nachgeordneten Bilderzeugungszustands in einer vorgeordneten Schattierungseinheit | |
DE19806985B4 (de) | Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht | |
DE102006023633A1 (de) | Gleichzeitige Projektion von mehrfach verzweigten Gefäßen und ihrer Umgebung auf einem einzigen Bild | |
EP2457219B1 (de) | Verfahren und anordnung zur generierung von darstellungen anisotroper eigenschaften sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium | |
DE69432507T2 (de) | Verfahren und Geräte zur Erzeugung von Zeichnungsdaten | |
DE4100691B4 (de) | Verfahren zur Darstellung eines dreidimensionalen Modells | |
DE19625869C2 (de) | Verfahren zum parallelen Zusammenfassen von N Datensätzen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |