DE69232431T2 - Vorrichtung zur Lösung von linearen Gleichungssystem - Google Patents

Vorrichtung zur Lösung von linearen Gleichungssystem

Info

Publication number
DE69232431T2
DE69232431T2 DE69232431T DE69232431T DE69232431T2 DE 69232431 T2 DE69232431 T2 DE 69232431T2 DE 69232431 T DE69232431 T DE 69232431T DE 69232431 T DE69232431 T DE 69232431T DE 69232431 T2 DE69232431 T2 DE 69232431T2
Authority
DE
Germany
Prior art keywords
row
pivot
preprocessing
pivot element
processing
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
Application number
DE69232431T
Other languages
English (en)
Other versions
DE69232431D1 (de
Inventor
Yoshiyuki Mochizuki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from JP17216891A external-priority patent/JPH0520348A/ja
Priority claimed from JP17361691A external-priority patent/JPH0520349A/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69232431D1 publication Critical patent/DE69232431D1/de
Publication of DE69232431T2 publication Critical patent/DE69232431T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Description

    Hintergrund der Erfindung 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Vorrichtung zum Lösen von Systemen linearer Gleichungen, einen Parallel-Computer zum Lösen von Systemen linearer Gleichungen und Verfahren paralleler Berechnung zum Lösen von Systemen linearer Gleichungen.
  • 2. Beschreibung des Standes der Technik
  • Das Bedürfnis zum Lösen von Systemen linearer Gleichungen mit hoher Geschwindigkeit tritt häufig bei nummerischer Analysis des Finite-Elemente-Verfahrens und des Grenzelemente-Verfahrens und anderer Verarbeitungen technischer Berechnungen auf.
  • Unter auf direkten Verfahren zum Lösen von Systemen linearer Gleichungen basierenden Algorithmen befindet sich das Gauss-Eliminationsverfahren, basierend auf einer Bi- Pivot-Simultan-Elimination, welche beschrieben ist bei Takeo Murata, Chikara Okuni und Yukihiko Karaki, "Super Computer--Application to Science and Technology", Maruzen, 1985, Seite 95-96. Der Bi-Pivot-Simultan-Eliminations-Algorithmus beseitigt zwei Spalten gleichzeitig durch Auswählen von zwei Pivotelementen in einem Schritt. Er beschränkt eine gleichzeitige Eliminierung von zwei Spalten und die Auswahl von Pivotelementen auf teilweises drehen durch Reihen-Austausch. Weiterhin berücksichtigt er das Beschleunigen seiner Verarbeitung nur in der Anzahl der Wiederholung von Do-Schleifen.
  • Wenn eine gleichzeitige Eliminierung nicht auf zwei Spalten beschränkt und auf mehr als 2 Spalten erweitert ist, werden die entsprechenden Algorithmen nachfolgend als Multi- Pivot-Simultan-Eliminations-Algorithmen bezeichnet.
  • Ein vergleichbarer Algorithmus für Multi-Pivot-Simultan-Eliminations-Algorithmen ist beschrieben bei Jim Armstrong, "Algorithm and Perfomance Notes for Block LU Factorization", International Conference on Parallel Processing, 1988, Band 3, Seite 161-164. Es ist ein Block-LU-Faktorisierungs-Algorithmus vorgesehen zum Beschleunigen von Matrix- Vorgängen und soll auf Vektor-Computern oder Computern mit einigen gemultiplexten Prozessoren implementiert werden.
  • Daher wurde entsprechend dem Stand der Technik bisher nicht ein Gauss- Eliminationsverfahren oder Gauss-Jordan-Eliminationsverfahren entwickelt, welches auf einer Multi-Pivot-Simultan-Elimination basiert und in skalaren Computern und Parallel- Computern effizient implementierbar ist.
  • Zusammenfassung der Erfindung
  • Die Aufgabe der vorliegenden Erfindung ist es daher, eine Hochgeschwindigkeits- Parallelberechnungs-Ausstattung und Verfahren zur parallelen Berechnung zum Lösen von Systemen linearer Gleichungen durch Gauss-Eliminationsverfahren und Gauss- Jordan-Verfahren basierend auf Multi-Pivot-Simultan-Elimination anzugeben.
  • Um die vorstehend erwähnte Aufgabe zu verwirklichen, sind gemäß einem Aspekt der vorliegenden Erfindung vorgesehen:
  • ein Speicher, der reduzierte Koeffizientenmatrizen A(r) speichert, mit aus der ersten bis zur r-ten Spalte erzeugten Nullen und entsprechenden bekannten Vektoren b(r) und einem unbekannten Vektor x, ausgedrückt durch
  • A(r) = (ai ), 1 ≤ i, j ≤ n,
  • b(r) = (b&sub1;(r), b&sub2;(r), ..., bn(r))t, (1)
  • x = (x&sub1;, x&sub2;, ..., xn)t
  • für ein gegebenes System linearer Gleichungen
  • A(0)x = b(0) (2)
  • eine Pivotelement-Auswahlsektion, die mit dem Speicher verbunden ist, wählt ein Pivotelement in der i-ten Reihen von A(i-1) und vertauscht die i-te Spalte mit der gewählten Pivot- Spalte,
  • eine Vorverarbeitungssektion A&sub1;, die unmittelbar nach der Operation der obigen Pivotelement-Auswahlsektion das transportierte Pivotelement bestimmt
  • a (3)
  • berechnet
  • für pk + 2 ≤ j ≤ n und
  • k - 1 Vorverarbeitungssektionen At, mit t = 2, 3, ..., k, von denen jede mit dem Speicher verbunden ist und berechnet
  • für pk + t ≤ j ≤ n, und unmittelbar nachdem die Pivotelement-Auswahlsektion das transponierte Pivotelement bestimmt
  • a (11)
  • berechnet
  • für pk + t + 1 ≤ j ≤ n,
  • eine Aktualisierungssektion B, die an den Speicher angeschlossen ist, mit einem Satz von k Registern und einer Arithmetikeinheit, und berechnet
  • für (p + 1)k + 1 ≤ i, j ≤ n, die Werte von Regi(0), ..., Regi(k) in dem Registersatz behält,
  • eine Rückwärts-Substitutionssektion, die an den Speicher angeschlossen ist und den Wert des unbekannten Vektors x erhält durch Berechnen von
  • xi = bi(n) (19)
  • und
  • für 1 ≤ h ≤ i - 1 für i = n, n - 1, ..., 1 in dieser Reihenfolge von i, und
  • einer Haupt-Steuerungseinrichtung G, die, wenn n ein Vielfaches von k ist, die Pivot- Auswahlsektion, die Vorverarbeitungssektionen A&sub1;, ..., Ak und die Aktualisierungssektion B anweist, deren obige Abläufe für p = 0, 1, ..., n/k - 2 zu wiederholen und die Pivot- Auswahlsektion und die Vorverarbeitungssektionen A&sub1;, ..., Ak anweist, ihre obigen Vorgänge für p = n/k - 1 zu wiederholen, und, wenn n nicht ein Vielfaches von k ist, die Pivot- Auswahlsektion, die Vorverarbeitungssektionen A&sub1;, ..., Ak und die Aktualisierungssektion B anweist, deren obige Vorgänge für p = 0, 1, ... [n/k] - 1 zu wiederholen, wobei [x] die größte ganze Zahl gleich oder kleiner als x bezeichnet, und die Pivot-Auswahlsektion und die Vorverarbeitungssektionen A&sub1;, ..., An-[n/k]k anweist, deren obige Vorgänge zu wiederholen, und in beiden Fällen die Rückwärts-Substitutionssektion anweist, den unbekannten Vektor x zu erhalten.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung sind vorgesehen:
  • ein Speicher, der Koeffizientenmatrizen A(r), bekannte Vektoren b(r) und den durch (1) ausgedrückten, unbekannten Vektor x für ein gegebenes System linearer Gleichungen (2) speichert,
  • eine Pivot-Auswahlsektion, die an den Speicher angeschlossen ist, ein Pivotelement in der i-ten Reihe von A(i-1) wählt und die i-te Spalte mit der ausgewählten Pivotspalte vertauscht,
  • eine Vorverarbeitungssektion A&sub1;, die, unmittelbar nachdem der Ablauf der obigen Pivot- Auswahlsektion das transponierte Pivotelement (3) bestimmt hat, (4) für pk + 2 ≤ j ≤ n und (5) berechnet,
  • k - 1 Vorverarbeitungssektionen At, mit t = 2, 3, ..., k, von denen jede mit dem Speicher verbunden ist, (6), (7), ..., (10) für pk + t ≤ j ≤ n berechnet und unmittelbar nachdem die Pivot-Auswahlsektion das transponierte Pivotelement (11) bestimmt, (12) und (13) für pk + t + 1 ≤ j ≤ n berechnet,
  • eine Aktualisierungssektion B', welche an den Speicher angeschlossen ist, einen Satz aus k Registern und eine Arithmetikeinheit umfasst und (14), (15), ..., (18) für 1 &le; i &le; pk, (p + 1)k + 1 &le; j &le; n berechnet, wenn n ein Vielfaches von k und p < [n/k] ist, und für 1 &le; i &le; [n/k]k, [n/k]k + 1 &le; j &le; n anderenfalls, die Werte von Regi(0), ..., Regi(k) in dem Registersatz behält,
  • k - 1 Nachbearbeitungssektionen Ct, mit t = 1, 2, ..., k - 1, von denen jede mit dem Speicher verbunden ist und berechnet
  • für pk + t + 2 &le; j &le; n,
  • eine Haupt-Steuerungseinrichtung J, die, wenn n ein Vielfaches von k ist, die Pivot- Auswahlsektion, die Vorverarbeitungssektionen A&sub1;, ..., Ak, die Aktualisierungssektion B' und die Nachbearbeitungssektionen C&sub1;, ..., Ck-1 anweist, deren obige Abläufe für p = 0, 1, ..., n/k - 1 zu wiederholen, und wenn n nicht ein Vielfaches von k ist, die Pivot- Auswahlsektion, die Vorverarbeitungssektionen A&sub1;, ..., Ak, die Aktualisierungssektion B' und die Nachbearbeitungssektionen C&sub1;, ..., Ck-1 anweist, deren obige Vorgänge für p = 0, 1, ... [n/k] - 1 zu wiederholen und die Pivot-Auswahlsektion, die Vorverarbeitungssektionen A&sub1;, ..., An-[n/k]k, die Aktualisierungssektion B' und die Nachbearbeitungssektionen C&sub1;, ..., Cn-[n/k]k anweist, deren obige Vorgänge für p = [k/n] zu wiederholen.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein System aus Knoten &alpha;&sub0;, ..., &alpha;P-1 vorgesehen, von denen jeder mit jedem anderen durch ein Netzwerk verbunden ist und umfasst:
  • einen Speicher, der Blöcke aus k Reihen jeder Koeffizientenmatrix A(r) und entsprechend k Komponenten jedes bekannten Vektors b(r) und einen durch (1) ausgedrückten, unbekannten Vektor x für ein gegebenes System linearer Gleichungen (2) speichert, eine Pivot-Auswahlsektion, die an den Speicher angeschlossen ist, ein Pivotelement in der i-ten Reihe von A(i-1) auswählt und die i-te Spalte mit der ausgewählten Pivot-Spalte vertauscht,
  • eine Vorverarbeitungssektion A&sub1;, die an den Speicher angeschlossen ist und (4) für pk + 2 &le; j &le; n und (5) berechnet,
  • k - 1 Vorverarbeitungssektionen At, mit t = 2, 3, ..., k, von denen jede an den Speicher angeschlossen ist, (6), (7), ..., (10) für pk + t &le; j &le; n berechnet und (12) und (13) für pk + t + 1 &le; j &le; n berechnet,
  • eine Aktualisierungssektion B, welche an den Speicher angeschlossen ist, einen Satz von k Registern und eine Arithmetikeinheit umfasst und (14), (15), ..., (18) für (p + 1)k + 1 &le; j &le; n berechnet, die Werte von Regi(0), ..., Regi(k) indem Registersatz behält, eine Rückwärts-Substitutionssektion, die an den Speicher angeschlossen ist und die Unbekannte x durch Rückwärts-Substitution erhält, das heißt, durch Berechnen von (19) und (20),
  • einen Gateway, der an den Speicher angeschlossen ist und eine Verbindung nach außen ist, und
  • einen Sender, der an den Speicher angeschlossen ist und Daten zwischen dem Speicher und der Außenseite durch den Gateway überträgt.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x dem Knoten &alpha;u zugeordnet sind, bestimmt die Pivot-Auswahlsektion des Knotens &alpha;u und das Pivotelement (3) und die Vorverarbeitungssektion des Knotens &alpha;u berechnet (4) und (5) für pk + 2 &le; j &le; n und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Knotens durch den Gateway, während die Aktualisierungssektion B des aktiven Knotens der i-ten Reihe (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung A&sub1; bezeichnet.
  • Die Vorverarbeitungssektion At des obigen Knotens &alpha;u berechnet (6), (7), (8), (9), (10) für pk + t &le; j &le; n und berechnet, unmittelbar nachdem die Pivot-Auswahlsektion von &alpha;u das Pivotelement (11) bestimmt, (12) und (13) für pk + t + 1 &le; j &le; n und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Knotens durch den Gateway, während die Aktualisierungssektion B des aktiven Knotens der i-ten Reihe
  • berechnet für jedes i, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von den Abläufen wird nachfolgend als parallele Vorverarbeitung At bezeichnet, mit 2 &le; t &le; k.
  • Die Aktualisierungssektion B jedes aktiven Knotens der i-ten Reihe, wie (p + 1)k + 1 &le; i &le; n, berechnet ebenfalls (14) bis (18), behält die Werte von Regi(0), ..., Regi(k) in dem Registersatz. Diese Vorgänge werden unten als parallele Aktualisierung B bezeichnet.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Haupt- Steuerungseinrichtung Gp vorgesehen, welche an das System von Knoten durch das Netzwerk angeschlossen ist, die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x zu den Knoten in solch einer Weise verteilt und zuordnet, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechenden 2k Komponenten zu dem Speicher eines Knotens in der zyklischen Reihenfolge von &alpha;&sub0;, ..., &alpha;P-1, &alpha;&sub0;, &alpha;&sub1;, ... gesendet wird, und, wenn n ein Vielfaches von k ist, jeden Knoten anweist, eine parallele Vorverarbeitung A&sub1; bis Ak und parallele Aktualisierung B für p = 0, 1, ..., n/k - 1 auszuführen, und, wenn n nicht ein Vielfaches von k ist, jeden Knoten anweist, eine parallele Vorverarbeitung A&sub1; bis Ak und parallele Aktualisierung B für p = 0, 1, ..., [n/k] - 1 auszuführen und eine parallele Vorverarbeitung A&sub1; bis An-[n/k]k für p = [n/k] auszuführen und die Knoten &alpha;nweist, einen unbekannten Vektor durch eine Rückwärts-Substitution zu erhalten.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein System aus Knoten &alpha;&sub0;, ..., &alpha;P-1 vorgesehen, von denen jeder mit jedem anderen durch ein Netzwerk verbunden ist und umfasst:
  • einen Speicher, welcher Blöcke aus k Reihen jeder Koeffizientenmatrix A(r) und entsprechende k Komponenten jedes bekannten Vektors b(r) und einen durch (1) ausgedrückten, unbekannten Vektor x für ein gegebenes System linearer Gleichungen (2) speichert, eine Pivot-Auswahlsektion, die an den Speicher angeschlossen ist, ein Pivotelement in der i-ten Reihe von A(i-1) wählt und die i-te Spalte mit der ausgewählten Pivot-Spalte vertauscht,
  • eine Vorverarbeitungssektion A&sub1;, die an den Speicher angeschlossen ist und (4) für pk + 2 &le; j &le; n und (5) berechnet, k - 1 Vorverarbeitungssektionen At, mit t = 2, 3, ..., k von denen jede an den Speicher angeschlossen ist, (6), (7), ..., (10) für pk + t &le; j &le; n berechnet und (12) und (13) für pk + t + 1 &le; j &le; n berechnet,
  • eine Aktualisierungssektion B', die an den Speicher angeschlossen ist, einen Satz aus k Registern und eine Arithmetikeinheit umfasst und (14), (15), ..., (18) für (p + 1)k + 1 &le; j &le; n berechnet, die Werte von Regi(0), ..., Regi(k) in dem Registersatz behält, k - 1 Nachbearbeitungssektionen Ct, mit t = 1, 2, ..., k - 1, von denen jede an den Speicher angeschlossen ist und (21), (22), ..., (29) für pk + 2 + 2 &le; j &le; n berechnet, einen Gateway, der an den Speicher angeschlossen ist und eine Verbindung zur Außenseite ist, und
  • einen Sender, der an den Speicher angeschlossen ist und Daten zwischen dem Speicher und der Außenseite durch den Gateway überträgt.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x dem Knoten &alpha;u, zugeordnet sind, bestimmt die Pivot-Auswahlsektion von &alpha;u das Pivotelement (3) und die Vorverarbeitungssektion von &alpha;u berechnet (4) und (5) für pk + 2 &le; j &le; n und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Knotens durch den Gateway, während die Aktualisierungssektion B des aktiven Elementenprozessors der i-ten Reihe (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; j &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung A&sub1; bezeichnet.
  • Die Vorverarbeitungssektion At des Knotens &alpha;u berechnet (6), (7), (8), (9), (10) für pk + t &le; j &le; n und berechnet (12) und (13) für pk + t + 1 &le; j &le; n unmittelbar nachdem die Pivot- Auswahlsektion 2 von &alpha;u das Pivotelement (11) bestimmt und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Knotens durch den Gateway, während die Aktualisierungssektion B' des aktiven Knotens der i-ten Reihe (30) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung At bezeichnet, mit 2 &le; t &le; k.
  • Die Aktualisierungssektion B' jedes aktiven Knotens der i-ten Reihe, so dass 1 &le; i &le; pk oder (p + 1)k + 1 &le; i &le; n ist, wenn n ein Vielfaches von k ist, oder p < [n/k] and 1 &le; i &le; [n/k]k ist, berechnet andernfalls ebenfalls (14) bis (18) für (p + 1)k + 1 &le; j &le; n, wenn n ein Vielfaches von k ist oder p < [n/k] ist und anderenfalls für [n/k]k + 1 &le; j &le; n, behält die Werte von Regi(0), ..., Regi(k) in dem Registersatz. Diese Vorgänge werden nachfolgend als parallele Aktualisierung B' bezeichnet.
  • Die Nachbearbeitungssektion Ct des obigen Knotens &alpha;u berechnet (21), (22), ..., (29) für pk + t + 2 &le; j &le; n für t = 1, 2, ..., k - 1, wenn n ein Vielfaches von k ist oder anderenfalls p < [n/k] und für t = 1, 2, ..., n - [n/k]k ist. Diese Reihe von Vorgängen wird nachfolgend als nachträgliche Eliminierung C bezeichnet.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Haupt- Steuerungseinrichtung Jp vorgesehen, welche durch das Netzwerk an das System aus Knoten angeschlossen ist, die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x auf die Koeffizientenmatrix A(0) und die Komponenten von b(0) und x auf die Knoten in solch einer Weise verteilt, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechend 2k Komponenten zu dem Speicher eines Knotens in der zyklischen Reihenfolge von &alpha;&sub0;, ..., &alpha;P-1, &alpha;&sub0;, &alpha;&sub1;, ... sendet und, wenn n ein Vielfaches von k ist, jeden Knoten anweist, eine parallele Vorverarbeitung A&sub1; bis Ak, eine parallele Aktualisierung B' und nachträgliche Eliminierung C für p = 0, ..., n/k - 1 auszuführen, und, wenn n nicht ein Vielfaches von k ist, jeden Knoten anweist, eine parallele Vorverarbeitung A&sub1; bis Ak, eine parallele Aktualisierung B' und nachträgliche Eliminierung C für p = 0, 1, ..., [n/k] - 1 auszuführen und eine parallele Vorverarbeitung A&sub1; bis An-[n/k]k, parallele Aktualisierung B' und nachträgliche Eliminierung C für p = [n/k] auszuführen.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein Elementenprozessor vorgesehen, mit:
  • einer Pivot-Auswahlsektion, welche für Koeffizientenmatrizen A(r), bekannte Sektoren b(r) und für einen unbekannten Vektor x, ausgedrückt durch (1) für ein gegebenes System linearer Gleichungen (2), ein Pivotelement in der i-ten Reihe von A(i-1) auswählt und die i- te Spalte mit der gewählten Pivot-Spalte vertauscht,
  • einer Vorverarbeitungssektion A&sub1;, die an die Pivot-Auswahlsektion angeschlossen ist und (4) für pk + 2 &le; j &le; n und (5) berechnet,
  • k - 1 Vorverarbeitungssektionen At, mit t = 2, 3, ..., k, von denen jede an die Pivot- Auswahlsektion angeschlossen ist, (6), (7), ..., (10) für pk + t &le; j &le; n berechnet und (12) und (13) für pk + t + 1 &le; j &le; n berechnet,
  • einer Aktualisierungssektion B, welche an die Pivot-Auswahlsektion angeschlossen ist, mit einem Satz von k Registern und einer Arithmetikeinheit und (14), (15), ..., (18) für (p + 1)k + 1 &le; j &le; n berechnet, die Werte von Regi(0), ..., Regi(k) in dem Registersatz behält, einer Rückwärts-Substitutionssektion, die an die Pivot-Auswahlsektion angeschlossen ist und die Unbekannte x durch Rückwärts-Substitution erhält, das heißt, durch Berechnen von (19) und (20), und
  • einem Gateway, der an die Pivot-Auswahlsektion angeschlossen ist und eine Verbindung zu der Außenseite ist.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein System aus Clustern CL&sub0;, ..., CLP-1 vorgesehen, von denen jeder mit jedem anderen durch ein Netzwerk verbunden ist und umfasst:
  • obige Elementenprozessoren PE&sub1;, ..., PEPc,
  • einen Speicher, der Blöcke aus k Reihen jeder Koeffizientenmatrix A(r) und entsprechenden k Komponenten jedes bekannten Vektors b(r) und den unbekannten Vektor x speichert,
  • einen C Gateway, der eine Verbindung mit der Außenseite ist, und
  • einen Sender, der Daten zwischen dem Speicher und der Außenseite durch den C in Gateway sendet.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x zu dem Cluster CLu zugeordnet sind, übernehmen die Pivot-Auswahlsektion, die Aktualisierungssektion und die Rückwärts-Substitutionssektion jedes Elementenprozessors von CLu einen Teil der k Reihen und 2k Komponenten Reihe für Reihe, während die Vorverarbeitungssektion At jedes Elementenprozessors von CLu Elemente der (pk + 1)-ten Reihe von A(r) und der (pk + 1)-ten Komponenten von b(r) einzeln übernimmt.
  • Insbesondere die Pivot-Auswahlsektion des Elementenprozessors PE&sub1; von CLu bestimmt das transponierte Pivotelement (3) der (pk + 1)-ten Reihe und die Vorverarbeitungssektionen A&sub1; der Elementenprozessoren von CLu berechnen gleichzeitig (4) und (5) für pk + 2 &le; j &le; n und (5) in jedem A&sub1; berechnet Elemente und Komponenten in ihrem Bereich und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Clusters durch den C Gateway, während die Aktualisierungssektion B des aktiven Elementenprozessors der i- ten Reihe (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung CLA&sub1; bezeichnet.
  • Die Vorverarbeitungssektionen At des obigen Clusters CLu berechnen gleichzeitig (6), (7), (8), (9), (10) für pk + t &le; j &le; n für jede At, welche Elemente und Komponenten in ihrem Bereich berechnen, unmittelbar nachdem die Pivot-Auswahlsektion von PEt von CLu das Pivotelement (11) bestimmt, berechnet gleichzeitig (12) und (13) für pk + t + 1 &le; j &le; n, und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Clusters durch den C Gateway, während die Aktualisierungssektion B des aktiven Elementenprozessors der i- ten Reihe (30) für jedes i berechnet, so dass (p + 1)k + 1 &le; j &le; n ist: Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung CLAt bezeichnet, mit 2 &le; t &le; k.
  • Die Aktualisierungssektionen B jedes aktiven Elementenprozessors in der i-ten Reihe, so dass (p + 1)k + 1 &le; i &le; n ist, berechnen (14) bis (18) für (p + 1)k + 1 &le; i &le; n, behalten die Werte von Regi(0) bis Regi(k) in dem Registersatz. Dieser Vorgang wird unten als parallele Aktualisierung Bc bezeichnet.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Haupt- Steuerungseinrichtung Gpc vorgesehen, ist an das obige System angeschlossen, verteilt und ordnet die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x zu den Clustern in solch einer Weise zu, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechend 2k Komponenten zu dem Speicher eines Clusters gesendet wird in der zyklischen Reihenfolge von CL&sub0;, ..., CLP-1, CL&sub0;, CL&sub1;, ..., und wenn n ein Vielfaches von k ist, jeden Cluster anweist, eine parallele Vorverarbeitung CLA&sub1; bis CLAk und parallele Aktualisierung Bc für p = 0, 1, ..., n/k - 2 auszuführen und CLA&sub1; bis CLAk für p = n/k - 1 auszuführen, und, wenn n nicht ein Vielfaches von k ist, jeden Cluster anweist, CLA&sub1; bis CLAk und Bc für p = 0, 1, ..., n/k - 1 auszuführen und CLA&sub1; bis CLAn-[n/k]k für p = [n/k] auszuführen und weist jeden Cluster an, den unbekannten Vektor x durch die Rückwärts-Substitutionssektionen seiner Elementenprozessoren und seines Senders zu erhalten.
  • Gemäß dem weiteren Aspekt der vorliegenden Erfindung ist ein Elementenprozessor vorgesehen, mit:
  • einer Pivot-Auswahlsektion, die für Koeffizientenmatrizen A(r), bekannte Vektoren b(r) und einen unbekannten Vektor x, ausgedrückt durch (1) für ein gegebenes System linearer Gleichungen (2) ein Pivotelement in der i-ten Reihe von A(i-1) auswählt und die i-te Spalte mit der gewählten Pivotspalte vertauscht,
  • einer Vorverarbeitungssektion A&sub1;, die an die Pivot-Auswahlsektion angeschlossen ist und (4) für pk + 2 &le; j &le; n und (5) berechnet,
  • k - 1 Vorverarbeitungssektionen At, mit t = 2, 3,.., k, von denen jede an die Pivot- Auswahlsektion angeschlossen ist, (6), (7), ..., (10) für pk + t &le; j &le; n berechnet und (12) und (13) für pk + t + 1 &le; j &le; n berechnet,
  • einer Aktualisierungssektion B', welche an die Pivot-Auswahlsektion angeschlossen ist, einen Satz von k Registern und eine Arithmetikeinheit umfasst und (14), (15), ..., (18) für (p + 1)k + 1 &le; j &le; n berechnet, die Werte von Regi(0), ..., Regi(k) in dem Registersatz behält, k - 1 Nachbearbeitungssektionen Ct, mit t = 1, 2, ..., k - 1, von denen jede an die Pivot- Auswahlsektion angeschlossen ist und (21), (22), ..., (29) für pk + t + 2 &le; j &le; n berechnet, und
  • einem Gateway, der an die Pivot-Auswahlsektion angeschlossen ist und eine Verbindung zu der Außenseite ist.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein System aus Clustern CL&sub0;, ..., CLP-1 vorgesehen, von denen jeder mit jedem anderen durch ein Netzwerk verbunden ist und umfasst:
  • obige Elementenprozessoren PE1, ..., PEPc
  • einen Speicher, der die Koeffizientenmatrizen A(r), die bekannten Vektoren b(r) und den unbekannten Vektor x speichert,
  • einen C Gateway, der eine Verbindung mit der Außenseite ist, und einen Sender, der Daten zwischen dem Speicher und der Außenseite durch den C Gateway sendet.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x dem Cluster CLu zugeordnet sind, übernehmen die Pivot-Auswahlsektion und die Aktualisierungssektion B' jedes Elementenprozessors von CLu einen Teil der k Reihen und 2k Komponenten Reihe für Reihe, während die Vorverarbeitungssektion At und die Nachbearbeitungssektion Ct jedes Elementenprozessors von CLu Elemente der (pk + t)- ten Reihe von A(r) und die (pk + t)-te Komponente von b(r) einzeln übernehmen.
  • Insbesondere bestimmt die Pivot-Auswahlsektion des Elementenprozessors PE&sub1; des CLu das transponierte Pivotelement (3) der (pk + 1)-ten Reihe und die Vorverarbeitungssektionen A&sub1; der Elementenprozessoren von CLu berechnen gleichzeitig (4) und (5) für pk + 2 &le; j &le; n, wobei jede A&sub1; Elemente und Komponenten in ihrem Bereich berechnet und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Clusters durch den C Gateway, während die Aktualisierungssektion B' des aktiven Elementenprozessors in der i- ten Reihe (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung CLA&sub1; bezeichnet.
  • Die Vorverarbeitungssektionen At der Elementenprozessoren des obigen Clusters CLu berechnen gleichzeitig (6), (7), (8), (9), (10) für pk + t &le; j &le; n, wobei jede At Elemente und Komponenten in ihrem Bereich berechnet und unmittelbar nachdem die Pivot- Auswahlsektion von PEt von CLu das Pivotelement (11) bestimmt, gleichzeitig (12) und (13) für pk + t + 1 &le; j &le; n berechnet und der Sender sendet die Ergebnisse zu dem Speicher jedes anderen Clusters durch den C Gateway, während die Aktualisierungssektion B' des aktiven Elementenprozessors der i-ten Reihe (30) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung CLAt bezeichnet, mit 2 &le; t &le; k.
  • Die Aktualisierungssektion B' jedes aktiven Elementenprozessors der i-ten Reihe, so dass 1 &le; i &le; pk or (p + 1)k + 1 &le; i &le; n ist, wenn n ein Vielfaches von k ist oder p < [n/k] and 1 &le; i &le; [n/k] ist, berechnet anderenfalls (14) bis (18) für (p + 1)k + 1 &le; j &le; n, wenn n ein Vielfaches von k ist, oder p < [n/k] ist, und anderenfalls für [n/k]k + 1 &le; j &le; n, behält die Werte von Regi(0), ..., Regi(k) in dem Registersatz. Diese Vorgänge werden unten als parallele Aktualisierung B' c bezeichnet.
  • Die Nachbearbeitungssektionen Ct von Elementenprozessoren des obigen CLu berechnen gleichzeitig (21), (22), ..., (29) für j, so dass pk + t + 2 &le; j &le; n ist für t = 1, 2, ..., k - 1, wenn n ein Vielfaches von k ist oder anderenfalls p < [n/k] ist, und für t = 1, 2, ..., n - [n/k]. Diese Reihe von Vorgängen wird unten als nachträgliche Eliminierung Cc bezeichnet.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Haupt- Steuerungseinrichtung Jpc vorgesehen, die an das obige System angeschlossen ist, die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x zu den Clustern in solch einer Weise verteilt und zuordnet, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechenden 2 k Komponenten zu dem Speicher eines Clusters in der zyklischen Reihenfolge von CL&sub0;, ..., CLP-1, CL&sub0;, CL&sub1;, ..., gesendet wird, und, wenn n ein Vielfaches von k ist, jeden Cluster anweist, eine parallele Vorverarbeitung CLA&sub1; bis CLAk, eine parallele Aktualisierung B'c und eine parallele, nachträgliche Eliminierung Cc für p = 0, 1, ..., n/k - 1 auszuführen und, wenn n nicht ein Vielfaches von k ist, jeden Cluster anweist, parallele Vorverarbeitung CLA&sub1; bis CLAk, parallele Aktualisierung B'c und eine nachträgliche Eliminierung Cc für p = 0, 1, ..., [n/k] - 1 auszuführen und eine parallele Vorverarbeitung CLA&sub1; bis CLAn-[n/k]k, parallele Aktualisierung B' c und nachträgliche Eliminierung Cc für p = [n/k] auszuführen.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein paralleles Eliminierungsverfahren vorgesehen zum Lösen des Systems linearer Gleichungen (2) in einem Parallel-Computer mit C Clustern CL&sub1;, ..., CLc, die durch ein Netzwerk verbunden sind. Jeder der Cluster umfasst Pc Elementenprozessoren und einen gemeinsam genutzten Speicher, der einen Teil der reduzierten Matrizen A(r) und der bekannten Vektoren b(r) und des unbekannten Vektors x speichert. Dieses Verfahren wird durch den folgenden Parallel-Computer ausgeführt:
  • eine Datenverteileinrichtung, welche die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x in dem gemeinsam genutzten Speicher der Cluster in solch einer Weise verteilt, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechenden 2k Komponenten zu dem gemeinsam genutzten Speicher in der zyklischen Reihenfolge von CL&sub1;, ... CLc, CL&sub1;, CL&sub2;, ... gesendet wird und diese in dem von den Clustern gemeinsam genutzten Speicher verteilten ihren Elementenprozessoren Reihe für Reihe zuordnet,
  • eine Pivot-Auswahleinrichtung, welche ein Pivotelement in einer jedem Elementenprozessor zugeordneten Reihe auswählt,
  • eine Elementar-Vorab-Eliminierungseinrichtung, die, nachdem die Pivot- Auswahleinrichtung das Pivotelement
  • a (31)
  • auswählt,
  • in dem aktiven Elementenprozessor in der (kPc + 1)-ten Reihe berechnet, die Ergebnisse zu dem gemeinsam genutzten Speicher jedes anderen Clusters sendet, zu welchem der aktive Elementenprozessor einer i-ten Reihe für kPc + 1 &le; i &le; n gehört und für I = 2, ..., Pc
  • für kPc + 1 &le; i &le; n in dem aktiven Elementenprozessor der i-ten Reihe berechnet,
  • in dem aktiven Elementenprozessor der (kPc + 1)-ten Reihe berechnet, und, nachdem die Pivot-Auswahleinrichtung das Pivotelement
  • a (37)
  • bestimmt,
  • in dem aktiven Elementenprozessor der (kPc + 1)-ten Reihe berechnet, die Ergebnisse (38) und (39) zu dem gemeinsam genutzten Speicher jedes anderen Clusters sendet, zu welchem der aktive Elementenprozessor einer i-ten Reihen gehört, für kPc + I + 1 &le; i &le; n, eine Multi-Pivot-Eliminierungseinrichtung, die berechnet
  • in jedem aktiven Elementenprozessor der i-ten Reihe mit (k + 1)Pc + 1 &le; i &le; n, eine Einrichtung zum Testen, ob der Vorgang der Multi-Pivot-Eliminierungseinrichtung [n/Pc] mal wiederholt wurde, und
  • eine Rest-Eliminierungseinrichtung, welche die obige Elementar-Vorab- Eliminierungseinrichtung für die ([n/Pc]Pc + 1)-te Reihe bis zu der n-ten Reihe ausführt, wenn die obige Testeinrichtung erkennt, dass der Vorgang der Multi-Pivot- Eliminierungseinrichtung [n/Pc] mal ausgeführt wurde und n nicht ein Vielfaches von Pc ist.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein paralleles Berechnungsverfahren vorgesehen, mit:
  • einer Rückwärts-Substitutionseinrichtung, die berechnet
  • xi = bi(n) (42)
  • in dem aktiven Elementenprozessor der i-ten Reihe nach dem Eliminierungsvorgang des obigen parallelen Eliminierungsverfahrens,
  • einer Rück-Übertragungseinrichtung, die xi zu dem gemeinsam genutzten Speicher jedes Clusters überträgt, zu welchem der aktive Elementenprozessor einer h-ten Reihe bei 1 &le; h &le; i - 1 gehört,
  • einer Rückwärts-Berechnungseinrichtung, die
  • für 1 &le; h &le; i - 1 in dem aktiven Elementenprozessor der h-ten Reihe berechnet, und eine Einrichtung zum Prüfen, ob der Ablauf der elementaren Rückwärts- Substitutionseinrichtung von i = n bis i = 1 wiederholt wird.
  • Die Lösung des Systems linearer Gleichungen (1) wird somit erhalten durch die elementare Rückwärts-Substitution als
  • xn = bn(n), ..., x&sub1; = b&sub1;(n) (44)
  • in dieser Reihenfolge.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein Parallel- Eliminierungsverfahren vorgesehen zum Lösen des Systems linearer Gleichungen (2) in einem Parallel-Computer mit C Clustern CL&sub1;, ..., CLc, verbunden durch ein Netzwerk. Jeder der Cluster umfasst Pc Elementenprozessoren und einen gemeinsam genutzten Speicher, der einen Teil der reduzierten Matrizen A(r) und der bekannten Vektoren b(r) und den unbekannten Vektor x speichert. Dieses Verfahren wird ausgeführt durch einen Parallel-Computer, mit:
  • einer Datenverteileinrichtung, welche die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x in solch einer Weise auf die Cluster verteilt, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechenden 2k Komponenten zu dem gemeinsam genutzten Speicher in der zyklischen Reihenfolge von CL&sub1;, ..., CLc, CL&sub1;, CL&sub2;, ... gesendet wird und deren auf die Cluster verteilten, gemeinsam genutzten Speicher seinen Elementenprozessoren Reihe für Reihe zuordnet,
  • einer Pivot-Auswahleinrichtung, die ein Pivotelement in einer für jeden Elementenprozessor zugeordneten Reihe auswählt,
  • einer Elementar-Vorab-Eliminierungseinrichtung, die, nachdem die Pivot- Auswahleinrichtung das Pivotelement (31) auswählt, (32) und (33) in dem aktiven Elementenprozessor der (Pck + 1)-ten Reihe berechnet, die Ergebnisse zu dem gemeinsam genutzten Speicher jedes anderen Clusters sendet, zu welchem der aktive Elementenprozessor einer i-ten Reihe gehört, so dass kPc + &le; i &le; n ist, und für I = 2, ..., Pc, (34) für kPc + 1 &le; i &le; n in dem aktiven Elementenprozessor der i-ten Reihe berechnet, (35) und (36) in dem aktiven Elementenprozessor der (kPc + 1)-ten Reihe berechnet und, nachdem die Pivot-Auswahleinrichtung das Pivotelement (37) auswählt, (38) und (39) in dem aktiven Elementenprozessor der (kPc + 1)-ten Reihe berechnet, die Ergebnisse (38) und (39) zu dem gemeinsam genutzten Speicher jedes anderen Clusters sendet, zu welchem der aktive Elementenprozessor der i-ten Reihe für kPc + I + 1 &le; i &le; n gehört, berechnet, einer Multi-Pivot-Eliminierungseinrichtung, die (43) und (44) in jedem aktiven Elementenprozessor der i-ten Reihen berechnet, so dass (k + 1)Pc + 1 &le; i &le; n ist,
  • einer Einrichtung zur nachträglichen Eliminierung, die
  • in dem aktiven Elementenprozessor in der i-ten Reihe berechnet,
  • einer Einrichtung zur nachträglichen Eliminierung, die (45) und (46) für I = -w + q + 1 für w = 1, ..., q und q = 1, ..., Pc - 1 für kPc + 1 &le; i &le; kPc + q in dem aktiven Elementenprozessor der i-ten Reihe berechnet,
  • einer Einrichtung zum Prüfen, ob der Ablauf der Einrichtung zur nachträglichen Eliminierung [n/Pc] mal ausgeführt wurde, und
  • einer Rest-Eliminierungseinrichtung, welche die obige Vorab-Eliminierungseinrichtung für die ([n/Pc]Pc + 1)-te bis n-te Reihe freigibt und die obige Multi-Pivot- Eliminierungseinrichtung und die Einrichtung zur nachträglichen Eliminierung freigibt, wenn die obige Prüfeinrichtung erkennt, dass der Vorgang der Einrichtung zur nachträglichen Eliminierung [n/Pc] mal ausgeführt wurde.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist vorgesehen:
  • eine Sucheinrichtung, wobei ein obiger Elementenprozessor für ein Nicht-Null-Element in der Reihenfolge ansteigender Spaltennummern von dem Diagonalelement in der gleichen Reihe sucht, wenn ein Diagonalelement einer Koeffizientenmatrix 0 ist,
  • eine Spaltennummern-Übermittlungseinrichtung, die anderen Elementenprozessoren die Spaltennummer eines durch die obige Sucheinrichtung gefundenen Nicht-Null-Elementes mitteilt,
  • eine Element-Austauscheinrichtung, wobei jeder Elementenprozessor die zwei Elemente austauscht, welche in seinem Bereich sind und die gleichen Spaltennummern aufweisen, wie das obige Diagonal-Null-Element und das gefundene Nicht-Null-Element, und eine Komponenten-Austauscheinrichtung, wobei zwei Elementenprozessoren die zwei Komponenten des unbekannten Vektors austauschen, welche in deren Bereich sind und die gleichen Komponenten-Indizes aufweisen, wie die Spaltennummer des obigen Diagonal-Null-Elementes und des gefundenen Nicht-Null-Elementes.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist vorgesehen:
  • eine Sucheinrichtung, bei welcher ein obiger Elementenprozessor nach einem Element mit dem größten Absolutwert in der Reihenfolge ansteigender Spaltennummern von einem Diagonalelement in der gleichen Reihe sucht,
  • eine Spaltennummern-Übermittlungseinrichtung, die anderen Elementenprozessoren die Spaltennummer eines durch die obige Sucheinrichtung gefundenen Elementes mitteilt, eine Element-Austauscheinrichtung, wobei jeder Elementenprozessor die zwei Elemente austauscht, welche in seinem Bereich sind und die gleichen Spaltennummern aufweisen, wie das obige Diagonalelement und das gefundene Element, und
  • eine Komponenten-Austauscheinrichtung, wobei zwei Elementenprozessoren die zwei Komponenten des unbekannten Vektors austauschen, welche in deren Bereich sind und die gleichen Komponenten-Indizes aufweisen, wie die Spaltennummer des obigen Diagonalelementes und der gefundenen Komponente. Die vorliegenden Erfindung wird ausgeführt durch eine Vorrichtung gemäß den beigefügten unabhängigen Ansprüchen 1, 2, 5,8.
  • Kurzbeschreibung der Zeichnungen
  • Diese und andere Aufgaben und Merkmale der vorliegenden Erfindung werden deutlich aus der vorliegenden Beschreibung in Verbindung mit deren bevorzugten Ausführungsformen anhand der beigefügten Zeichnungen, in welchen gleiche Teile mit gleichen Bezugszeichen bezeichnet sind. Dabei zeigen:
  • Fig. 1 ein Blockschaltbild einer linearen Berechnungsausstattung gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • Fig. 2 ein Flussdiagramm eines Steuerungsalgorithmus, welcher in der ersten Ausführungsform auszuführen ist;
  • Fig. 3 ein Blockschaltbild einer linearen Berechnungsausstattung gemäß der zweiten Ausführungsform der vorliegenden Erfindung;
  • Fig. 4 ein Flussdiagramm des Steuerungsalgorithmus, der in der zweiten Ausführungsform auszuführen ist;
  • Fig. 5 ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung gemäß der dritten Ausführungsform der vorliegenden Erfindung;
  • Fig. 6 ein Blockschaltbild eines in Fig. 5 gezeigten Knotens;
  • Fig. 7 ein Flussdiagramm des Steuerungsalgorithmus, der in der dritten Ausführungsform auszuführen ist;
  • Fig. 8 ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung gemäß der vierten Ausführungsform der vorliegenden Erfindung;
  • Fig. 9 ein Blockschaltbild eines in Fig. 8 gezeigten Knotens;
  • Fig. 10 ein Flussdiagramm des Steuerungsalgorithmus, der in der vierten Ausführungsform auszuführen ist;
  • Fig. 11 ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung gemäß der fünften Ausführungsform der vorliegenden Erfindung;
  • Fig. 12 ein Blockschaltbild eines in Fig. 11 gezeigten Clusters;
  • Fig. 13 ein Blockschaltbild eines in Fig. 12 gezeigten Elementenprozessors;
  • Fig. 14 ein Flussdiagramm des Steuerungsalgorithmus, der in der fünften Ausführungsform auszuführen ist;
  • Fig. 15 ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung gemäß der sechsten Ausführungsform der vorliegenden Erfindung;
  • Fig. 16 ein Blockschaltbild eines in Fig. 15 gezeigten Clusters;
  • Fig. 17 ein Blockschaltbild eines in Fig. 16 gezeigten Elementenprozessors;
  • Fig. 18 ein Flussdiagramm des in der sechsten Ausführungsform auszuführenden Steuerungsalgorithmus;
  • Fig. 19 ein Blockschaltbild eines Elementenprozessors oder Prozessormoduls in einem Parallel-Computer, welcher die 7. und 8. Ausführungsform implementiert;
  • Fig. 20 ein Blockschaltbild eines in der 7. und 8. Ausführungsform verwendeten Clusters;
  • Fig. 21 ein Blockschaltbild des Parallel-Berechnungs-Verfahrens gemäß der 7. Ausführungsform;
  • Fig. 22 ein Blockschaltbild des Parallel-Berechnungs-Verfahrens gemäß der 8. Ausführungsform;
  • Fig. 23 eine Darstellung zum Zeigen des Pivot-Verfahrens gemäß der 7. und 8. Ausführungsform.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Die bevorzugten Ausführungsformen gemäß der vorliegenden Erfindung werden unten anhand der beigefügten Zeichnungen beschrieben.
  • Fig. 1 ist ein Blockschaltbild einer linearen Berechnungsausstattung in der ersten Ausführungsform der vorliegenden Erfindung. In Fig. 1 ist 1 ein Speicher; 2 ist eine an den Speicher 1 angeschlossene Pivot-Sektion, 3, 4, 5 sind jeweils Vorverarbeitungssektionen A&sub1;, At, Ak, die jede an den Speicher 1 angeschlossen sind; 6 ist eine Aktualisierungssektion B, angeschlossen an den Speicher 1; 7 ist eine Rückwärts-Substitutionssektion, angeschlossen an den Speicher 1; 8 ist eine Haupt-Steuerungseinrichtung G; 101 ist ein Registersatz, aufgebaut aus k Registern; 102 ist eine Arithmetikeinheit.
  • Das Folgende ist eine Beschreibung der Wirkungsweise jeder Komponente der ersten Ausführungsform.
  • Der Speicher 1 ist ein gewöhnlicher Halbleiterspeicher und speichert reduzierte Koeffizientenmatrizen A(r) mit Nullen, erzeugt aus der ersten bis r-ten Spalte und entsprechende bekannte Vektoren b(r) und einen durch (1) ausgedrückten unbekannten Vektor x für ein gegebenes System linearer Gleichungen (2).
  • Die Pivot-Sektion ist an den Speicher 1 angeschlossen, wählt ein Pivotelement in der i- ten Reihe entsprechend den Anweisungen der Haupt-Steuerungseinrichtung G (8), wenn die ersten (i - 1) Spalten bereits reduziert sind, und vertauscht die i-te Spalte mit der ausgewählten Pivot-Spalte und die i-te Komponente mit der entsprechenden Komponente von x. Die Auswahl des Pivotelementes basiert auf einem als partielles Drehen bezeichneten Verfahren, wobei ein Element mit dem größten Absolutwert in der i-ten Reihe als das Pivotelement ausgewählt wird. Der Austausch kann eine direkte Datenübertragung oder Transposition von Spaltennummern und Komponenten-Indizes sein.
  • Unmittelbar nach dem die Pivot-Sektion (2) das transponierte Pivotelement (3) bestimmt, berechnet die Vorverarbeitungssektion A&sub1; (3) den Ausdruck (4) für pk + 2 &le; j &le; n und den Ausdruck (5) anhand der Anweisungen der Haupt-Steuerungseinrichtung G. Jede Vorverarbeitungssektion At (4), mit t = 2, 3, ..., k ist an den Speicher (1) angeschlossen, berechnet die Ausdrücke (6), (7), (8), (9), (10) für pk + t &le; j &le; n, berechnet, unmittelbar nachdem die Pivot-Sektion das transponierte Pivotelement (11) bestimmt, Ausdrücke (12) und (13) für pk + t + 1 &le; j &le; n entsprechend den Anweisungen der Haupt- Steuerungseinrichtung G (8).
  • Die Aktualisierungssektion B (6) ist an den Speicher (1) angeschlossen, umfasst einen Registersatz (101) von k Registern und eine Arithmetikeinheit (102) und berechnet Ausdrücke (14), (15), (16), (17), (18) für (p + 1)k + 1 &le; i, j &le; n in der Arithmetikeinheit (102), behält jeden Wert von Regi(0), ..., Regi(k) in den entsprechenden Registern des Registerssatzes (101) entsprechend den Anweisungen der Haupt-Steuerungseinrichtung G (8). Die Ausdrücke (14), (15), (16) sind vorläufige Formeln und die Ausdrücke (17) und (18) sind Formeln, die aktualisierte Komponenten bestimmen.
  • Die Rückwärts-Substitutionssektion (7) ist an den Speicher (1) angeschlossen und erhält den Wert des unbekannten Vektors x durch Berechnen der Ausdrücke (19) und (20) für 1 &le; h &le; i - 1 für i = n, n - 1, ..., 1 in dieser Reihenfolge von i.
  • Die Wirkungsweise der Haupt-Steuerungseinrichtung G (8) wird unten anhand von Fig. 2 beschrieben, welche ein Flussdiagramm ihres Steuerungsalgorithmus zeigt.
  • Der erste Schritt prüft, ob n ein Vielfaches von k ist. Wenn dies der Fall ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der linken Seite ein. Der t-te Schritt innerhalb dieser Schleife mit t = 1, ..., k weist die Pivot-Sektion (2) und die Vorverarbeitungssektion At (4) an, deren Abläufe für die (pk + t)-te Reihe der gegenwärtigen, reduzierten Matrix A(Pk+t-1) auszuführen. Der nächste Schritt prüft, ob p = n/k - 1 ist. Wenn dies der Fall ist, verlässt der nächste Schritt die Schleife. Wenn p < n/k - 1 ist, weist der nächste Schritt die Aktualisierungssektion B (6) an, ihren Ablauf auszuführen. Der nächste Schritt erhöht p um 1 und kehrt zu den Abläufen der Pivot-Sektion 2 und der Vorverarbeitungssektion A&sub1; 3 zurück.
  • Wenn n nicht ein Vielfaches von k ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der rechten Seite ein. Innerhalb dieser Schleife sind die Abläufe die gleichen, mit Ausnahme der Tatsache, dass die Bedingung zum Verlassen der Schleife p = [n/k] ist und die Positionen zum Prüfen für das Verlassen unmittelbar nach dem Ablauf von An-[n/k]k ist.
  • Nach Verlassen einer der Schleifen weist der letzte Schritt die Rückwärts- Substitutionssektion 7 an, ihren Ablauf auszuführen und beendet den vollständigen Ablauf zum Erhalten des unbekannten Vektors x.
  • Fig. 3 ist ein Blockschaltbild einer linearen Berechnungsausstattung der zweiten Ausführungsform der vorliegenden Erfindung. In Fig. 3 ist (1) ein Speicher, (2) ist eine Pivot- Sektion, angeschlossen an den Speicher (1); (3), (4), (5) sind Vorverarbeitungssektionen A&sub1;, At, Ak, die jede an den Speicher (1) angeschlossen sind; (9) ist eine Aktualisierungssektion B', angeschlossen an den Speicher (1); (10), (11), (12) sind Nachbearbeitungssektionen C&sub1;, Ct, Ck-1, jede angeschlossen an den Speicher (1); (13) ist eine Haupt- Steuerungseinrichtung J; (103) ist ein Registersatz, aufgebaut aus k Registern; (104) ist eine Arithmetikeinheit für, (101) ist eine Arithmetikeinheit.
  • Das Folgende ist eine Beschreibung der Wirkungsweise jeder Komponente, welche sich von einer in der ersten Ausführungsform unterscheidet.
  • Die Aktualisierungssektion B' (9) ist an den Speicher 1 angeschlossen und, berechnet (14), (15), ..., (18) für 1 &le; i &le; pk, (p + 1)k + 1 &le; i &le; n, (p + 1)k + 1 &le; j &le; n, wenn n ein Vielfaches von k ist, oder anderenfalls p < [n/k] und für 1 &le; i &le; [n/k]k, [n/k]k + 1 &le; j &le; n in der Arithmetikeinheit 104, behält jeden Wert von Regi(0), ..., Regi(k) in den entsprechenden Registern des Registersatzes 103.
  • Die k - 1 Nachbearbeitungssektionen Ct (11), mit t = 1, 2, ..., k - 1 sind an den Speicher 1 angeschlossen und berechnen (21), (22), ..., (29) für pk + t + 2 &le; j &le; n.
  • Die Wirkungsweise der Haupt-Steuerungseinrichtung J 13 ist unten anhand von Fig. 4 beschrieben, welche ein Flussdiagramm ihres Steuerungsalgorithmus zeigt.
  • Der erste Schritt prüft, ob n ein Vielfaches von k ist. Wenn dies der Fall ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife auf der linken Seite ein. Der t-te Schritt innerhalb dieser Schleife, mit t = 1, ..., k weist die Pivot-Sektion 2 und die Vorverarbeitungssektion At 4 an, ihre Abläufe für die (pk + t)-te Reihe der gegenwärtigen, reduzierten Matrix A(pk+t-1) auszuführen. Der nächste Schritt weist die Aktualisierungssektion B' 9 an, ihren Ablauf auszuführen. Die folgenden k - 1 Schritte weisen die Nachbearbeitungssektionen C&sub1; (10) bis Ck-1 (12) an, ihre Abläufe in dieser Reihenfolge auszuführen. Der nächste Schritt prüft, ob p = n/k - 1 ist. Wenn dies der Fall ist, verlässt der nächste Schritt die Schleife und beendet den Ablauf. Wenn p &le; n/k - 1 ist, erhöht der nächste Schritt p um 1 und kehrt zu dem Ablauf der Pivot-Sektion 2 zurück.
  • Wenn n nicht ein Vielfaches von k ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der rechten Seite ein. Innerhalb dieser Schleife sind die ersten n - [n/k]k + 1 Schritte die gleichen wie diejenigen in der Schleife an der linken Seite. Nach Anweisen der Vorverarbeitungssektion An-[n/k]k (4) zum Ausführen ihres Ablaufs prüft der Schritt, ob p = [n/k] ist. Wenn dies nicht der Fall ist, weisen die folgenden Schritte die Abläufe der Pivot-Sektion (2) und der Vorverarbeitungssektion An-[n/k]+1 (4) durch die Abläufe der Pivot-Sektion (2) und der Vorverarbeitungssektion Ak (5) an, gefolgt von dem Ablauf der Aktualisierungssektion B' (9) und dann die Abläufe der Nachbearbeitungssektionen C&sub1; (10) bis Ck-1 (12). Dann inkrementiert der Schritt p um 1 und kehrt zu dem Ablauf der Pivot-Sektion (2) zurück. Wenn p = [n/k] ist, weisen die folgenden Schritte die Aktualisierungssektion B' (9) an, ihren Ablauf auszuführen, weisen die Nachbearbeitungssektionen C&sub1; (10) bis Cn-[n/k]k (11) an, ihre Abläufe auszuführen, und beenden den gesamten Vorgang zum Erhalten des unbekannten Vektors.
  • Fig. 5 ist ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung der dritten Ausführungsform der vorliegenden Erfindung. In Fig. 5 ist (21) ein Netzwerk; (22), (23), (24) sind Knoten &alpha;&sub0;, &alpha;u, &alpha;P-1, die untereinander durch das Netzwerk (21) verbunden sind; (25) ist eine an jeden Knoten angeschlossene Haupt-Steuerungseinrichtung Gp. Fig. 6 ist ein Blockschaltbild eines Knotens in Fig. 5. In Fig. 6 ist (1) ein Speicher; (2) ist eine an den Speicher 1 angeschlossene Pivot-Sektion; (3), (4), (5) sind Vorverarbeitungssektionen A&sub1;, At, Ak, die jede an den Speicher (1) angeschlossen sind; (6) ist eine Aktualisierungssektion B, angeschlossen an den Speicher (1); (7) ist eine Rückwärts- Substitutionssektion, angeschlossen an den Speicher (1); (26) ist ein Gateway, der eine Verbindung mit der Außenseite ist; (27) ist ein Sender, der Daten zwischen dem Speicher (1) und der Außenseite durch den Gateway (26) überträgt; (101) ist ein Registersatz, aufgebaut aus k Registern; (102) ist eine Arithmetikeinheit.
  • Das Folgende ist eine Beschreibung der Wirkungsweise jeder Komponente der dritten Ausführungsform.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(r) und x zu dem Knoten &alpha;u (23) zugeordnet sind, bestimmt die Pivot-Sektion 2 des Knotens &alpha;u (23) das Pivotelement (3) und die Vorverarbeitungssektion des Knotens &alpha;u (23) berechnet (4) und (5) für pk + 2 &le; j &le; n und der Sender (27) sendet die Ergebnisse zu dem Speicher (1) jedes anderen Knotens durch den Gateway (26), während die Aktualisierungssektion B (6) des aktiven Elementenprozessors der i-ten Reihe (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung A&sub1; bezeichnet.
  • Die Vorverarbeitungssektion At 4 des Knotens &alpha;u (23) berechnet Ausdrücke (6), (7), (8), (9), (10) für pk + t &le; j &le; n und berechnet unmittelbar nachdem die Pivot-Sektion 2 von &alpha;u (23) das Pivotelement (11) bestimmt, (12) und (13) für pk + t + 1 &le; j &le; n und der Sender (27) sendet die Ergebnisse zu dem Speicher (1) jedes anderen Knotens durch den Gateway (26), während die Aktualisierungssektion B (6) des aktiven Elementenprozessors der i-ten Reihe (30) für jedes i berechnet, so dass (p +1)k + 1 &le; i &le; n ist. Diese Reihe von parallelen Abläufen wird unten als parallele Vorverarbeitung A, bezeichnet, mit 2 t k.
  • Die Aktualisierungssektion B (6) jedes aktiven Knotens der i-ten Reihe, so dass (p + 1)k + 1 &le; i &le; n ist, berechnet ebenfalls Ausdrücke (14) bis (18) für (p + 1)k + 1 &le; j &le; n, behält die Werte von Regi(0), ..., Regi(k) in dem Registersatz. Diese Abläufe werden unten als parallele Aktualisierung B bezeichnet.
  • Die Rückwärts-Substitutionssektionen 7 der Knoten &alpha;u (23) berechnen (19) und (20) unter Verwendung erforderlicher Daten, gesendet durch die Sender (27) anderer Knoten. Diese Abläufe werden als Rückwärts-Substitution bezeichnet.
  • Die Wirkungsweise der Haupt-Steuerungseinrichtung Gp (25) wird unten anhand von Fig. 7 beschrieben, welche ein Flussdiagramm ihres Steuerungsalgorithmus auf der Ebene der obigen Beschreibung zeigt.
  • Der erste Schritt verteilt und ordnet die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x zu den Knoten &alpha;&sub0; (22), ..., &alpha;u (23), ..., &alpha;P-1 (24) in solch einer Weise zu, dass jeder Block aus k Reihen und entsprechend 2k Komponenten (n - [n/k]k Reihen und 2(n - [n/k]k) Komponenten in der letzten Verteilung) zu dem Speicher (1) eines Knotens zu einem Zeitpunkt in der zyklischen Reihenfolge von &alpha;&sub0;, ..., &alpha;P-1, &alpha;&sub0;, &alpha;&sub1;, ... gesendet werden.
  • Der nächste Schritt prüft, ob n ein Vielfaches von k ist. Wenn dies der Fall ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der linken Seite ein. Der t-te Schritt innerhalb dieser Schleife ordnet die Ausführung der parallelen Vorverarbeitung A, für die (pk + t)-te Reihe der gegenwärtigen, reduzierten Matrix A(pk+t-1) an. Der nächste Schritt prüft, ob p = n/k - 1 ist. Wenn dies der Fall ist, verlässt der nächste Schritt die Schleife. Wenn p < n/k - 1 ist, ordnet der nächste Schritt die Ausführung der parallelen Aktualisierung B an. Der nächste Schritt inkrementiert p um 1 und kehrt zu der Ausführung der parallelen Vorverarbeitung A&sub1; zurück.
  • Wenn n nicht ein Vielfaches von k ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife auf der rechten Seite ein. Innerhalb dieser Schleife sind die Abläufe die gleichen, mit Ausnahme der Tatsache, dass die Bedingung zum Verlassen der Schleife p = [n/k] ist und die Positionen zum Testen zum Verlassen zwischen der parallelen Vorverarbeitung An-[n/k]k und An-[n/k]k+1 ist.
  • Nach Verlassen von einer der Schleifen ordnet der letzte Schritt die Ausführung der Rückwärts-Substitution an und beendet den gesamten Ablauf zum Erhalten des unbekannten Vektors x.
  • Fig. 8 ist ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung der vierten Ausführungsform der vorliegenden Erfindung. In Fig. 8 ist (31) ein Netzwerk; (32), (33), (34) sind Knoten &alpha;&sub0;, &alpha;u, &alpha;P-1, die untereinander durch das Netzwerk (31) verbunden sind; (35) ist eine an jeden Knoten angeschlossene Haupt-Steuerungseinrichtung Jp. Fig. 9 ist ein Blockschaltbild eines Knotens in Fig. 8. In Fig. 9 ist (1) ein Speicher; (2) ist eine Pivot-Sektion, angeschlossen an den Speicher 1; (3), (4), (5) sind Vorverarbeitungssektionen A&sub1;, At, Ak, die jede an den Speicher (1) angeschlossen sind; (9) ist eine an den Speicher (1) angeschlossene Aktualisierungssektion B'; (10), (11), (12) sind Nachbearbeitungssektionen C&sub1;, Ct, Ck-1, die jede an den Speicher (1) angeschlossen sind; (26) ist ein Gateway, der eine Verbindung mit der Außenseite ist; (27) ist ein Sender, der Daten zwischen dem Speicher (1) und der Außenseite durch den Gateway (26) überträgt; (103) ist ein aus k Registern aufgebauter Registersatz; (104) ist eine Arithmetikeinheit. Das Folgende ist eine Beschreibung der Wirkungsweise jeder Komponente der vierten Ausführungsform.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x in dem Knoten &alpha;u (33) zugeordnet sind, bestimmt die Pivot-Sektion (2) des Knotens &alpha;u 33 das Pivotelement (3) und die Vorverarbeitungssektion des Knotens &alpha;u (33) berechnet (4) und (5) für pk + 2 &le; j &le; n und der Sender (27) sendet die Ergebnisse zu dem Speicher 1 jedes anderen Knotens durch den Gateway (26), während die Aktualisierungssektion B 6 des aktiven Elementenprozessors in der i-ten Reihen (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Abläufen wird unten als parallele Vorverarbeitung A&sub1; bezeichnet.
  • Die Vorverarbeitungssektion At (4) des Knotens &alpha;u (23) berechnet Ausdrücke (6), (7), (8), (9), (10) für pk + t &le; j &le; n und berechnet (12) und (13) für pk + t + 1 &le; j &le; n, unmittelbar nachdem die Pivot-Sektion (2) von &alpha;u (23) das Pivotelement (11) bestimmt, und der Sender (27) sendet die Ergebnisse zu dem Speicher (1) jedes anderen Knotens durch den Gateway (26), während die Aktualisierungssektion B' (9) des aktiven Elementenprozessors in der i-ten Reihe (30) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Abläufen wird unten als parallele Vorverarbeitung At bezeichnet, mit 2 &le; t &le; k.
  • Die Aktualisierungssektion B' (9) jedes aktiven Knotens der i-ten Reihe, so dass 1 &le; i &le; pk oder (p + 1)k + 1 &le; i &le; n ist, wenn n ein Vielfaches von k ist oder anderenfalls p < [n/k] und 1 &le; i &le; [n/k]k ist, berechnet Ausdrücke (14) bis (18) für (p + 1)k + 1 &le; j &le; n, wenn n ein Vielfaches von k oder anderenfalls p < [n/k] ist und für [n/k]k + 1 &le; j &le; n, behält die Werte von Regi(0), ..., Regi(k) in dem Registersatz. Diese Abläufe werden unten als parallele Aktualisierung B' bezeichnet.
  • Die Nachbearbeitungssektion Ct 11 des obigen Knotens &alpha;u (33) berechnet (21), (22), ..., (29) für pk + t + 2 &le; j &le; n für t = 1, 2, ..., k - 1, wenn n ein Vielfaches von k oder anderenfalls p < [n/k] ist und für t = 1, 2, ..., n - [n/k]k. Diese Reihe von Abläufen wird unten als nachträgliche Eliminierung C bezeichnet.
  • Die Wirkungsweise der Haupt-Steuerungseinrichtung Jp (35) wird unten anhand von Fig. 10 beschrieben, welche ein Flussdiagramm ihres Steuerungsalgorithmus auf der Ebene der obigen Definition zeigt.
  • Der erste Schritt verteilt und ordnet die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x zu dem Knoten &alpha;&sub0; (32), ..., &alpha;u (33), ..., &alpha;P-1(34) in solch einer Weise zu, dass jeder Block aus k Reihen und entsprechend 2k Komponenten (n - [n/k]k Reihen und 2(n - [n/k]k Komponenten in der endgültigen Verteilung) zu dem Speicher (1) eines Knotens zu einem Zeitpunkt in der zyklischen Reihenfolge von &alpha;&sub0;, ..., &alpha;P-1, &alpha;&sub0;; &alpha;&sub1;, ... gesendet werden.
  • Der nächste Schritt prüft, ob n ein Vielfaches von k ist. Wenn dies der Fall ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der linken Seite ein. Der t-te Schritt innerhalb dieser Schleife ordnet die Ausführung der parallelen Vorverarbeitung At für die (pk + t)-te Reihe der gegenwärtigen, reduzierten Matrix A(pk+t+1) an. Der nächste Schritt ordnet die Ausführung der parallelen Aktualisierung B' an. Der nächste Schritt ordnet die Ausführung der nachträglichen Eliminierung C an. Der nächste Schritt prüft, ob p = n/k - 1 ist. Wenn dies der Fall ist, verlässt der nächste Schritt die Schleife. Wenn p < n/k - 1 ist, inkrementiert der nächste Schritt p um 1 und kehrt zu der Ausführung der parallelen Vorverarbeitung A&sub1; zurück.
  • Wenn n nicht ein Vielfaches von k ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der rechten Seite ein. Innerhalb dieser Schleife sind die Abläufe die gleichen mit Ausnahme der Tatsache, dass die Bedingung zum Verlassen der Schleife p = [n/k] ist, und wenn p = [n/k] ist, überspringt der Schritt die Reihenfolge für die Ausführung der parallelen Vorverarbeitung An-[n/k]k+1 bis Ak.
  • Durch die obige Verarbeitung wird der unbekannte Vektor erhalten.
  • Fig. 11 ist ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung gemäß der fünften Ausführungsform der vorliegenden Erfindung. In Fig. 11 ist (41) ein Netzwerk; (42), (43), (44) sind Cluster CL&sub0;, CLu, CLP-1 ist, die untereinander durch das Netzwerk (41) verbunden sind; (45) ist eine Haupt-Steuerungseinrichtung Gpc, angeschlossenen an jeden Cluster. Fig. 12 ist ein Blockschaltbild eines Clusters in Fig. 11. In Fig. 12 ist (1) ein Speicher; (46) ist ein C Gateway, der eine Verbindung zu der Außenseite ist; (47), (48), (49) sind Elementenprozessoren PE&sub1;, PE2, PEPc, die jeder an den Speicher 1 angeschlossen sind; (50) ist ein Sender, der Daten zwischen dem Speicher (1) und der Außenseite durch den C Gateway (46) überträgt. Fig. 13 ist ein Blockschaltbild eines Elementenprozessors in Fig. 12. In Fig. 13 ist (2) einen Pivot-Sektion; (3), (4), (5) sind Vorverarbeitungssektionen A&sub1;, At, Ak, die jede an die Pivot-Sektion (2) angeschlossen sind; (6) ist eine an die Pivot-Sektion (2) angeschlossene Aktualisierungssektion B; (7) ist eine Rückwärts-Substitutionssektion, angeschlossen an die Pivot-Sektion (2); (51) ist ein Gateway, der eine Verbindung mit der Außenseite ist; (101) ist ein aus k Registern aufgebauter Registersatz; (102) ist eine Arithmetikeinheit.
  • Das Folgende ist eine Beschreibung der Wirkungsweise jeder Komponente der fünften Ausführungsform.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x dem Cluster CLu (43) zugeordnet sind, übernehmen die Pivot-Sektion (2), die Aktualisierungssektion (6) und die Rückwärts-Substitutionssektion (7) jedes Elementenprozessors von CLu (43) einen Teil der k Reihen und 2k Komponenten Reihe für Reihe, während die Vorverarbeitungssektion At (4) jedes Elementenprozessors von CLu (43) Elemente der (pk + t)-ten Reihe von A(r) und der (pk + t)-ten Komponente von b(r) einzeln übernimmt.
  • Insbesondere die Pivot-Sektion (2) des Elementenprozessors PE&sub1; von CLu (43) bestimmt das transponierte Pivotelement (3) der (pk + 1)-ten Reihe und die Vorverarbeitungssektionen A&sub1; (3) der Elementenprozessoren von den CLu berechnen gleichzeitig (4) und (5) für pk + 2 &le; j &le; n, wobei jede A&sub1; 3 Elemente und Komponenten in ihrem Bereich berechnet und der Sender (50) sendet die Ergebnisse zu dem Speicher jedes anderen Clusters durch den C Gateway (46), während die Aktualisierungssektion B (6) des aktiven Elementenprozessors der i-ten Reihe (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Abläufen wird unten als parallele Vorverarbeitung CLA&sub1; bezeichnet.
  • Die Vorverarbeitungssektionen At (4) des obigen Clusters CLu (43) berechnen gleichzeitig Ausdrücke (6), (7), (8), (9), (10) für pk + t &le; j &le; n, wobei jede At (4) Elemente und Komponenten in ihrem Bereich berechnet und, unmittelbar nachdem die Pivot-Sektion von PEt von CLu (43) das Pivotelement (11) bestimmt, gleichzeitig Ausdrücke (12) und (13) für pk + t + 1 &le; j &le; n berechnet und der Sender (50) sendet die Ergebnisse zu dem Speicher (1) jedes anderen Clusters durch den C Gateway (46), während die Aktualisierungssektion B (6) des aktiven Elementenprozessors der 1-ten Reihe (30) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Abläufen wird unten als parallele Vorverarbeitung CLAN mit 2 &le; t &le; k bezeichnet.
  • Die Aktualisierungssektionen B (6) jedes aktiven Elementenprozessors der i-ten Reihe, so dass (p + 1)k + 1 &le; i &le; n ist, berechnen (14) bis (18) für (p + 1)k + 1 &le; j &le; n, behalten die Werte von Regi(0), ..., Regi(k) in dem Registersatz (101). Diese Abläufe werden unten als parallele Aktualisierung Bc bezeichnet.
  • Die Rückwärts-Substitutionssektionen (7) der Elementenprozessoren berechnen Ausdrücke (19) und (20) unter Verwendung von den notwendigen Daten, übertragen durch die Sender (50) anderer Cluster. Diese Abläufe werden als Rückwärts-Substitution bezeichnet.
  • Die Wirkungsweise der Haupt-Steuerungseinrichtung Gpc (45) wird unten anhand von Fig. 14 beschrieben, welche ein Flussdiagramm ihres Steuerungsalgorithmus auf der Ebene der obigen Definition zeigt.
  • Der erste Schritt verteilt und ordnet die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x zu dem Cluster CL&sub0; (42), ..., CLu (43), ..., CLP-1 (44) in solch einer Weise zu, dass jeder Block aus k Reihen und entsprechend 2k Komponenten (n - [n/k] Reihen und 2(n - [n/k]k) Komponenten in der letzten Verteilung) zu dem Speicher (1) eines Knotens zu einem Zeitpunkt in der zyklischen Reihenfolge von CL&sub0;, ..., CLP-1, CL&sub0;, CL&sub1;, ... gesendet werden.
  • Der nächste Schritt prüft, ob n ein Vielfaches von k ist. Wenn dies der Fall ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der linken Seite ein. Der t-te Schritt innerhalb dieser Schleife ordnet die Ausführung der parallelen Vorverarbeitung CLAN für die (pk + t)-te Reihe der gegenwärtigen, reduzierten Matrix A(Pk+t+1) an. Der nächste Schritt prüft, ob p = n/k - 1 ist. Wenn dies der Fall ist, verlässt der nächste Schritt die Schleife. Wenn p < n/k - 1 ist, und ordnet der nächste Schritt die Ausführung der parallelen Aktualisierung Bc an. Der nächste Schritt inkrementiert p um 1 und kehrt zu der Ausführung der parallelen Vorverarbeitung CLA&sub1; zurück.
  • Wenn n nicht ein Vielfaches von k ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der rechten Seite ein. Innerhalb dieser Schleife sind die Abläufe die gleichen, mit Ausnahme der Tatsache, dass die Bedingung zum Verlassen der Schleife p = [n/k] ist und die Position zum Prüfen zum Verlassen zwischen der parallelen Vorverarbeitung CLAn-[n/k]k und CLAn-[n/k]k+1 Ist.
  • Nach Verlassen einer der Schleifen ordnet der letzte Schritt die Ausführung der Rückwärts-Substitution an und beendet den gesamten Ablauf zum Erhalten des unbekannten Vektors x.
  • Fig. 15 ist ein Blockschaltbild einer parallelen, linearen Berechnungsausstattung gemäß der sechsten Ausführungsform der vorliegenden Erfindung. In Fig. 15 ist (61) ein Netzwerk; (62), (63), (64) sind Cluster CL&sub0;, CLu, CLP-1, die untereinander durch das Netzwerk (61) verbunden sind; (65) ist eine Haupt-Steuerungseinrichtung Jpc, angeschlossen an jedes Cluster. Fig. 16 ist ein Blockschaltbild eines Clusters in Fig. 15. In Fig. 16 ist (1) ein Speicher; (46) ist ein C Gateway, der eine Verbindung zu der Außenseite ist; (66), (67), (68) sind Elementenprozessoren PE&sub1;, PE&sub2;, PEPc, die jeder an den Speicher (1) angeschlossen sind; (50) ist ein Sender, der Daten zwischen dem Speicher (1) und der Außenseite durch den C Gateway (46) überträgt. Fig. 17 ist ein Blockschaltbild eines in Fig. 16 gezeigten Elementenprozessors. In Fig. 17 ist (2) eine Pivot-Sektion; (3), (4), (5) sind Vorverarbeitungssektionen A&sub1;, At, Ak, die jede mit der Pivot-Sektion (2) verbunden sind; (9) ist eine Aktualisierungssektion B', angeschlossen an die Pivot-Sektion (2); (10), (11), (12) sind Nachbearbeitungssektionen C&sub1;, Ct, Ck-1, die jede an die Pivot-Sektion (2) angeschlossen sind; (51) ist ein Gateway, der eine Verbindung mit der Außenseite ist; (103) ist ein aus k Registern aufgebauter Registersatz; (104) ist eine Arithmetikeinheit.
  • Das Folgende ist eine Beschreibung der Wirkungsweise jeder Komponente der vierten Ausführungsform.
  • Wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x zu dem Cluster CLu (63) zugeordnet sind, übernehmen die Pivot-Sektion (2) und die Aktualisierungssektion B' (9) jedes Elementenprozessors von CLu (63) einen Teil der k Reihen und 2k Komponenten Reihe für Reihe, während die Vorverarbeitungssektion At (4) und Nachbearbeitungssektion C&sub1; 11 jedes Elementenprozessors von CLu (63) die Elemente der (pk + t)-ten Reihe von A(r) und die (pk + t)-te Komponente von b(r) einzeln übernimmt.
  • Insbesondere die Pivot-Sektion (2) des Elementenprozessors PE&sub1; von CLu(63) bestimmt das transponierte Pivotelement (3) der (pk + 1)-ten Reihe und die Vorverarbeitungssektionen A&sub1; (3) der Elementenprozessoren CLu 63 berechnen gleichzeitig Ausdrücke (4) und (5) für pk + 2 &le; j &le; n, wobei jede A&sub1; (3) Elemente und Komponenten in ihrem Bereich berechnet und der Sender (50) sendet die Ergebnisse zu dem Speicher (1) jedes anderen Clusters durch den C Gateway (46), während die Aktualisierungssektion B' (9) des aktiven Elementenprozessors der i-ten Reihe den Ausdruck (14) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Abläufen wird unten als parallele Vorverarbeitung CLA&sub1; bezeichnet.
  • Die Vorverarbeitungssektionen At (4) des obigen Clusters CLu (63) berechnen gleichzeitig die Ausdrücke (6), (7), (8), (9), (10) für pk + t &le; j &le; n, wobei jede At (4) Elemente und Komponenten in ihrem Bereich berechnet und unmittelbar nachdem die Pivot-Sektion (2) des Elementenprozessors PE, von CLu (63) das Pivotelement (11) bestimmt, gleichzeitig Ausdrücke (12) und (13) für pk + t + 1 &le; j &le; n berechnet und der Sender (50) sendet die Ergebnisse zu dem Speicher (1) jedes anderen Clusters durch den C Gateway (46), während die Aktualisierungssektion B' (9) des aktiven Elementenprozessors der i-ten Reihe den Ausdruck (30) für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n ist. Diese Reihe von Vorgängen wird unten als parallele Vorverarbeitung CLAt bezeichnet, mit 2 &le; t &le; k.
  • Die Aktualisierungssektion B' (9) jedes aktiven Elementenprozessors der i-ten Reihe, so dass 1 &le; i &le; pk oder (p + 1)k + 1 &le; i &le; n ist, wenn n ein Vielfaches von k oder p < [n/k] ist und anderenfalls 1 &le; i &le; [n/k]k ist, berechnet die Ausdrücke (14) bis (18) für (p + 1)k + 1 &le; j < n wenn n ein Vielfaches von k ist oder anderenfalls p < [n/k] ist und für [n/k]k + 1 &le; j &le; n, behält die Werte von Regi(0), ..., Regi(k) in dem Registersatz. Diese Abläufe werden unten als parallele Aktualisierung B'c bezeichnet.
  • Die Nachbearbeitungssektionen der Ct 11 der Elementenprozessoren des obigen CLu (63) berechnen gleichzeitig Ausdrücke (21), (22), ..., (29) für j, so dass pk + t + 2 &le; j &le; n ist, für t = 1, 2, ..., k - 1, wenn n ein Vielfaches von k oder p < [n/k] ist und anderenfalls für t = 1, 2, ..., n - [n/k]k, wobei jede Ct (11) Elemente und Komponenten in ihrem Bereich berechnet. Diese Reihe von Vorgängen wird unten als nachträgliche Eliminierung Cc bezeichnet.
  • Die Wirkungsweise der Haupt-Steuerungseinrichtung Jpc (65) wird unten anhand von Fig. 18 beschrieben, welche ein Flussdiagramm ihres Steuerungsalgorithmus auf der Ebene der obigen Definition zeigt.
  • Der erste Schritt verteilt und ordnet die Reihen der Koeffizientenmatrix A(0) und die Komponenten von b(0) und x zu dem Cluster CL&sub0; (62), ..., CLu (63), ..., CLP-1 (64) in solch einer Weise zu, dass jeder Block aus k Reihen und entsprechend 2k Komponenten (n - [n/k]k Reihen und 2(n - [n/k]k Komponenten in der letzten Verteilung) zu dem Speicher (1) eines Knotens zu einem Zeitpunkt in der zyklischen Reihenfolge von CL&sub0;, ..., CLP-1, ..., CL&sub0;, CL&sub1;, ... gesendet werden.
  • Der nächste Schritt prüft, ob n ein Vielfaches von k ist. Wenn dies der Fall ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der linken Seite ein. Der t-te Schritt innerhalb dieser Schleife ordnet die Ausführung der parallele Vorverarbeitung CLAt für die (pk + t)-te Reihe der gegenwärtigen, reduzierte Matrix A(pk+t-1) an. Der nächste Schritt ordnet die Ausführung der parallelen Aktualisierung B' c an. Der nächste Schritt ordnet die Ausführung der nachträgliche Eliminierung Cc an. Der nächste Schritt prüft, ob p = n/k - 1 ist. Wenn dies der Fall ist, verlässt der nächste Schritt in die Schleife. Wenn p < n/k - 1 ist, inkrementiert der nächste Schritt p um 1 und kehrt zu der Ausführung der parallelen Vorverarbeitung CLA&sub1; zurück.
  • Wenn n nicht ein Vielfaches von k ist, initialisiert der nächste Schritt p als p = 0 und tritt in die Schleife an der rechten Seite ein. Innerhalb dieser Schleife sind die Abläufe die gleichen, mit Ausnahme der Tatsache, dass die Bedingung zum Verlassen der Schleife p = [n/k] ist und wenn p = [n/k] ist, überspringen die Schritte die Reihenfolge für die Ausführung der parallelen Vorverarbeitung CLAn-[n/k]k+1 bis CLAk.
  • Durch die obige Verarbeitung wird der unbekannte Vektor erhalten.
  • Fig. 19 zeigt ein Blockschaltbild eines Elementenprozessors oder Prozessormoduls eines Parallel-Computers, welches die siebte Ausführungsform der vorliegenden Erfindung implementiert. In Fig. 19 ist (201) ein Gateway; (202) ist ein Cache-Speicher; (203) ist eine zentrale Verarbeitungseinheit; (204) ist ein lokaler Speicher; (205) ist ein gemeinsam genutzter Bus. Fig. 20 zeigt ein Blockschaltbild eines Clusters, aufgebaut aus Elementenprozessoren (212), (213), ..., (214), einem C Gateway (210) und einem gemeinsam genutzten Speicher (211). Ein Netzwerk des Parallel-Computers verbindet jeden der Cluster mit jedem anderen, so dass Daten zwischen jeden zwei Clustern gesendet werden können. Die Anzahl von Elementenprozessoren in jedem Cluster sei Pc und die gesamte Anzahl von Clustern sei C. Die gesamte Anzahl P von Elementenprozessoren in dem Parallel-Computer ist dann C·Pc. Weiterhin seien die Cluster bezeichnet mit CL&sub1;, CL&sub2;, ..., CLu und die Elementenprozessoren von CLu seien bezeichnet mit PRu1, ..., PRuPc.
  • Fig. 21 ist ein Blockschaltbild eines parallelen, linearen Berechnungsverfahrens gemäß der siebten Ausführungsform der vorliegenden Erfindung, implementiert durch einen wie oben aufgebauten Parallel-Computer. In Fig. 21 ist (220) eine Datenverteileinrichtung; (221) ist eine Pivot-Einrichtung; (222) ist eine Elementar-Vorab-Eliminierungseinrichtung;
  • (223) ist eine Multi-Pivot-Eliminierungseinrichtung; 224 ist eine Eliminierungs- Prüfeinrichtung; (225) ist eine Rest-Eliminierungseinrichtung; (226) ist eine Elementar- Rückwärts-Substitutionseinrichtung; (227) ist eine Elementar-Rückwärts- Übertragungseinrichtung; (228) ist eine Elementar-Rückwärts-Berechnungseinrichtung; (229) ist eine Rückwärts-Verarbeitungs-Prüfeinrichtung.
  • Die Wirkungsweise des parallelen, linearen Berechnungsverfahrens der siebten Ausführungsform wird unten anhand von Fig. 21 beschrieben.
  • In dem ersten Schritt verteilt die Datenverteileinrichtung (220) jede i-te Reihe von A(0) und i-te Komponenten von b(0) und x auf das Cluster CLu, so dass u = [i/Pc] - [[i/Pc]/C]C + 1 ist. Dann ordnet die Datenverteileinrichtung (220) jede i-te Reihe von A(0) und i-te Komponente, verteilt auf den Cluster CLu, dem Elementenprozessor PRuv zu, so dass v = i - [i/Pc]Pc + 1 ist. Dann initialisiert die Datenverteileinrichtung k als k = 0.
  • In dem zweiten Schritt prüft die Eliminierungs-Prüfeinrichtung, ob die Multi-Pivot- Eliminierungseinrichtung ihren Ablauf [n/Pc] mal wiederholt, das heißt, ob k = [n/Pc] ist. Wenn sie dies tut, springt der Ablauf zu dem fünften Schritt. Wenn sie dies nicht tut, geht der Ablauf über zu dem dritten Schritt.
  • In dem dritten Schritt führt die Elementar-Vorab-Eliminierungseinrichtung (222) eine vorläufige Verarbeitung für die i-ten Reihen reduzierter Matrizen und die entsprechenden, bekannten Vektoren aus, so dass i = kPc + 1 und I = 1, ..., Pc in dieser Reihenfolge sind. Die Verarbeitung betrifft einen Pivot-Auswahlvorgang für jedes I.
  • Verfahren zum Auswählen eines Pivotelementes sind allgemein klassifiziert in entweder partielles drehen oder vollständiges drehen. Partielles drehen wählt als ein Pivotelement in jeder reduzierten Matrix A(r) ein Element mit dem größten Absolutwert in der relevante Spalte oder Reihe. Vollständiges drehen wählt als ein Pivotelement in jeder reduzierten Matrix A(r) das Element mit dem größten Absolutwert in der Teilmatrix aus den Spalten oder Reihen, welche bisher nicht gedreht wurden. Daneben, wenn Genauigkeit nicht besonders wichtig ist, ist das Auswählen eines Pivotelementes nur erforderlich, wenn das relevante Diagonalelement 0 ist und in diesem Fall ein Nicht-Null-Element als ein Pivotelement bei partiellem drehen gewählt werden kann. Pivot-Verfahren in der vorliegenden Erfindung verwenden partielles drehen und das vorliegende erste Verfahren wählt das erste Nicht-Null-Element in der relevanten Reihe mit dem größten Absolutwert in der relevanten Reihe.
  • Fig. 23 zeigt den Ablauf der Pivot-Auswahleinrichtung (221). In Fig. 23 ist (240) eine Sucheinrichtung; (241) ist eine Spaltennummern-Mitteilungseinrichtung; (242) ist eine Element-Austauscheinrichtung; (243) ist eine Komponenten-Austauscheinrichtung.
  • In dem vorliegenden ersten Verfahren der Pivot-Auswahl prüft der aktive Elementenprozessor jeder i-ten Reihe durch die Sucheinrichtung (240), ob a(i-1)ij = 0 ist, mit i = j. Wenn dies nicht der Fall ist, endet der Ablauf. Wenn dies der Fall ist, sucht der Elementenprozessoren durch die Sucheinrichtung (240) nach einem Nicht-Null-Element in der i-ten Reihe von A(i-1) aus a(i-1)ij, mit j = i + 1 bis a(i-1)ij mit j = n in dieser Reihenfolge. Wenn a(i-1)ij mit j = h das erste derartige Element ist, informiert der Elementenprozessor durch die Mitteilungseinrichtung (241) jeden Elementenprozessor der Spaltennummer h durch eine Mitteilung. Insbesondere sendet der Elementenprozessor entweder h zu einem bestimmten Wort des gemeinsam genutzten Speichers (211) jedes Clusters und jeder Elementenprozessor bezieht sich auf das Wort, oder der Elementenprozessor sendet h zu einer reservierten Busleitung und jeder Elementenprozessor holt h in seinen lokalen Speicher (204). Dann tauschte jeder Elementenprozessor durch die Element-Austauscheinrichtung (242) gleichzeitig das Element mit der Spaltennummer i mit dem Element mit der Spaltennummer h in der Reihe in seinem Bereich. Dann tauschen zwei aktive Elementenprozessoren der i-ten Komponente und der h-ten Komponente des unbekannten Vektors x entsprechend diese Komponenten durch die Komponenten-Austauscheinrichtung (243). Der Pivot-Auswahlvorgang endet dadurch.
  • In dem vorliegenden zweiten Verfahren der Pivot-Auswahl setzt der aktive Elementenprozessor der i-ten Reihe durch die Sucheinrichtung (240) Max = a(i-1)ij und mit j = i und Col = j. Dieser Elementenprozessor vergleicht dann max mit a(i-1)ij für j = i + 1, ..., n in dieser Reihenfolge und aktualisiert Max und Col als Max = a(i-1)ij und Col = j, nur wenn a(i-1)ij größer ist als Max. Dann informiert der Elementenprozessor jeden Elementenprozessor über Col durch eine Mitteilung. Die verbleibenden Schritte sind die gleichen wie oben.
  • In dem Ablauf der Elementar-Vorab-Eliminierungseinrichtung (222) berechnet, wenn I = 1 ist, der Elementenprozessor PRul, der für die (kPc + 1)-te Reihe in dem Cluster CLu, mit u = k - [k/C] + 1, zuständig ist, (32) und (33) und sendet die Ergebnisse zu dem gemeinsam genutzten Speicher jedes anderen Clusters, zu welchem der aktive Elementenprozessor einer i-ten Reihe, so dass kPc + 2 &le; i &le; n gilt. Wenn 2 &le; I &le; Pc ist, berechnet jeder aktive Elementenprozessor der i-ten Reihe, so dass kPc + I &le; i &le; n ist, einen Ausdruck (34) und der Elementenprozessor PRul berechnet Ausdrücke (35) und (36). Dann, nachdem die Pivot-Auswahleinrichtung das Pivotelement (37) bestimmt, berechnet der Elementenprozessor PRul Ausdrücke (38) und (39) und sendet die Ergebnisse zu dem gemeinsam genutzten Speicher jedes anderen Clusters, zu welchem der aktive Elementenprozessor einer i-ten Reihe, so dass kPc + I + 1 &le; i &le; n ist, gehört.
  • In dem vierten Schritt berechnet jeder aktive Elementenprozessor der i-ten Reihe, so dass (k + 1)Pc + 1 &le; i &le; n ist, durch die Multi-Pivot-Eliminierungseinrichtung (223) Ausdrücke (40) und (41) für i.
  • In dem fünften Schritt führt jeder aktive Elementenprozessor in der i-ten Reihe, so dass [n/Pc]Pc + I &le; i &le; n ist, durch die Rest-Eliminierungseinrichtung (225) den gleichen Ablauf wie in der Elementar-Vorab-Eliminierungseinrichtung (232) für 1 = 2, ..., n - [n/Pc]Pc aus. Dann initialisiert dieser Schritt i als i = n und geht zu dem sechsten Schritt. In dem sechsten Schritt berechnet der aktive Elementenprozessor der i-ten Reihe den Ausdruck (240) durch die Elementar-Rückwärts-Substitutionseinrichtung (226).
  • In dem sechsten Schritt berechnet der aktive Elementenprozessor der i-ten Reihe den Ausdruck (42) durch die Elementar-Rückwärts-Substitutionseinrichtung (226).
  • In dem siebten Schritt prüft die Rückwärts-Verarbeitungs-Prüfeinrichtung (229), ob i = n ist. Wenn dies der Fall ist, wurde die Lösung des Systems linearer Gleichungen (2) durch die obige Elementar-Rückwärts-Substitution als (44) erhalten und der Ablauf endet. Wenn dies nicht der Fall ist, geht der Ablauf über zu dem achten Schritt.
  • In dem achten Schritt sendet eine Elementar-Rückwärts-Sendeeinrichtung das xi zu dem gemeinsam genutzten Speicher jedes Clusters, zu dem der aktive Elementenprozessor einer h-ten Reihe gehört, so dass 1 &le; h &le; i - 1 ist.
  • In dem neunten Schritt berechnet jeder aktive Elementenprozessor der h-ten Reihe, so dass 1 &le; h &le; i - 1 ist, (43) durch die Elementar-Rückwärts-Berechnungseinrichtung. Dann verringert dieser Schritt i um 1 und geht zu dem sechsten Schritt.
  • Fig. 22 ist ein Blockschaltbild eines parallelen, linearen Berechnungsverfahrens der achten Ausführungsform der vorliegenden Erfindung, implementiert durch einen Parallel- Computer, aufgebaut wie in der siebten Ausführungsform. In Fig. 22 ist (220) eine Datenverteileinrichtung; (221) ist eine Pivot-Auswahleinrichtung; (231) ist eine Eliminierungs-Prüfeinrichtung, (232) ist eine Elementar-Vorab-Eliminierungseinrichtung; (233) ist eine Multi-Pivot-Eliminierungseinrichtung; (234) ist eine Elementar-Nach- Eliminierungseinrichtung; (225) ist eine Nach-Eliminierungs-Verarbeitungseinrichtung; (236) ist eine Rest-Eliminierungseinrichtung.
  • Die Wirkungsweise des parallelen, linearen Berechnungsverfahrens der siebten Ausführungsform wird unten anhand von Fig. 22 beschrieben.
  • In dem ersten Schritt verteilt die Datenverteileinrichtung (220) jede i-te Reihe von A(0) und i-te Komponente von b(0) und x zu dem Cluster CLu, so dass u = [i/Pc] - ([i/Pc]/C]C + 1 ist. Dann ordnet die Datenverteileinrichtung (220) jede zu dem Cluster CLu verteilte i-te Reihe von A(0) und i-te Komponente von b(0) zu dem Elementenprozessor PRuv zu, so dass v = i - [i/Pc]Pc + 1 ist. Dann initialisiert die Datenverteileinrichtung k als k = 0.
  • In dem zweiten Schritt prüft die Eliminierungs-Prüfeinrichtung (231), ob die Multi-Pivot- Eliminierungseinrichtung ihren Ablauf [n/Pc] mal wiederholt, das heißt, ob k = [n/Pc] ist. Wenn Sie das tut, springt der Ablauf zu dem sechsten Schritt. Wenn sie das nicht tut, geht der Ablauf zu dem dritten Schritt.
  • In dem dritten Schritt führt die Elementar-Vorab-Eliminierungseinrichtung (232) eine vorläufige Verarbeitung für die i-ten Reihe in der reduzierten Matrizen und die entsprechenden bekannten Vektoren aus, so dass i = kPc + I und I = 1, ..., Pc ist, in dieser Reihenfolge. Die Verarbeitung betrifft einen Pivot-Auswahlvorgang für jedes I, welcher der gleiche ist, wie in der siebten Ausführungsform.
  • In der Vorab-Eliminierungseinrichtung (232), wenn I = 1 ist, berechnet der aktive Elementenprozessor PRul der (kPc + 1)-ten Reihe in dem Cluster CLu, mit u = k - [k/C] + 1, die Ausdrücke (32) und (33), nachdem die Pivot-Auswahleinrichtung (221) das Pivotelement (31) bestimmt, und sendet die Ergebnisse zu dem gemeinsam genutzten Speicher jedes anderen Clusters. Wenn 2 &le; I &le; Pc ist, berechnet jeder aktive Elementenprozessor der i- ten Reihe, so dass kPc + I &le; i &le; n ist, einen Ausdruck (34) und der Elementenprozessor PRul berechnet Ausdrücke (35) und (36). Nachdem die Pivot-Auswahleinrichtung das Pivotelement (37) bestimmt, berechnet der Elementenprozessor PRul dann Ausdrücke (38) und (39) und sendet die Ergebnisse zu dem gemeinsam genutzten Speicher jedes anderen Clusters.
  • In dem vierten Schritt berechnet jeder aktive Elementenprozessor der i-ten Reihe, so dass 1 &le; i &le; kPc or (k + 1)Pc + 1 &le; i &le; n ist, (40) und (41) durch die Multi-Pivot- Eliminierungseinrichtung (233).
  • In dem fünften Schritt beseitigt die Nach-Eliminierungs-Verarbeitungseinrichtung (235) durch die Multi-Pivot-Eliminierungseinrichtung (233) erzeugte, nicht erforderliche Elemente. Der Kern der Nach-Eliminierungs-Verarbeitungseinrichtung (25) ist die Elementar- Nach-Eliminierungseinrichtung 234, welche Ausdrücke (45) und (46) in dem aktiven Elementenprozessor der i-ten Reihe berechnet.
  • Durch die Nach-Eliminierungs-Verarbeitungseinrichtung berechnet der aktive Elementenprozessor der (kPc + w)-ten Reihe Ausdrücke (45) und (46), mit i = Pc + w und I = - w + q + 1, von w = 1 bis w = q für q = 1, 2, ..., Pc - 1.
  • In dem sechsten Schritt führt jeder aktive Elementenprozessor der i-ten Reihe, so dass [n/Pc]Pc + 1 &le; i &le; n ist, den Ablauf der Elementar-Vorab-Eliminierungseinrichtung (232) durch die Rest-Eliminierungseinrichtung (236) aus. Dann führt die Rest- Eliminierungseinrichtung den Ablauf der Multi-Pivot-Eliminierungseinrichtung (233) aus, gefolgt von der Nach-Eliminierungs-Verarbeitungseinrichtung (235). Der Ablauf der Vorab-Eliminierungs-Verarbeitungseinrichtung (232) soll für I = 1, ..., n - [n/Pc]Pc ausgeführt werden. Der Ablauf der Multi-Pivot-Eliminierungseinrichtung (233) soll ausgeführt werden durch Berechnen von Ausdrücke (40) und (41) für 1 &le; i &le; [n/Pc]Pc und k = [n/Pc]. Der Ablauf der Nach-Eliminierungs-Verarbeitungseinrichtung (235) soll ausgeführt werden von q = 1 bis q = n - [n/Pc]Pc für k = [n/Pc].
  • Der unbekannte Vektor x wird als der Vektor b(r) nach dem obigen Ablauf erhalten.
  • Wenn die Vorverarbeitungssektion At und die Nachbearbeitungssektion Ct ihre eigenen Registersätze als die Aktualisierungssektion B und B' in der ersten Ausführungsform bis sechsten Ausführungsform aufweisen und deren Abläufe durch Restwerte von Variablen und Divisoren ausgeführt werden, wird die Anzahl der Lade- und Speicher-Abläufe für den Speicher verringert und eine weitere Verbesserung der Berechnungsgeschwindigkeit kann verwirklicht werden.
  • In der siebten und achten Ausführungsform sollen zwei Komponenten des unbekannten Vektors ausgetauscht werden, wenn die entsprechenden Spalten durch die Pivot- Einrichtung ausgetauscht werden. Es ist jedoch nicht erforderlich, die Komponenten tatsächlich zu transponieren. Durch einfaches speichern der korrekten Position der Komponenten nach jedem Austausch von Spalten wird die korrekte Lösung erhalten durch berücksichtigen der Positionen in der letzten Verteilung der Komponenten des unbekannten Vektors.
  • Die vorliegende Erfindung gibt somit eine lineare Hochgeschwindigkeits- Berechnungsausstattung und parallele, lineare Berechnungsausstattung zum Lösen von Systemen linearer Gleichungen durch das Gauss-Eliminierungsverfahren und Gauss-Jordan-Verfahren an, basierend auf einer gleichzeitigen Multi-Pivot- Eliminierung und skalaren Abläufen. Die Beschleunigung wird verwirklicht durch Verringern der Anzahl von Lade- und Speicher-Abläufen für den Speicher durch Behalten von Werten von Variablen in den Registersätzen bei der Aktualisierungsverarbeitung und Verringern der Anzahl von Iterationen durch gleichzeitige Multi- Pivot-Eliminierung. Und die vorliegende Erfindung wird in skalaren Computern einfach implementiert. Tatsächlich zeigt ein durch Software in einem skalaren Computer ausgeführtes Experiment, dass das Gauss-Verfahren und das Gauss-Jordan- Verfahren basierend auf einer gleichzeitigen 8-Pivot-Eliminierung 2,5 mal schneller ist als das ursprüngliche Gauss-Eliminierungsverfahren und Gauss-Jordan- Eliminierungsverfahren.
  • Wie bei der parallelen Berechnungsausstattung der dritten bis sechsten Ausführungsform in der siebten und achten Ausführungsform sind jedem Speicher Blöcke aus k Reihen aus der Koeffizientenmatrix A(0) für das gleichzeitige k-Pivot- Eliminierungsverfahren zugeordnet, so dass Wirkungen der parallelen Berechnung verbessert werden. In der fünften und sechsten Ausführungsform, in welcher Elementenprozessoren geclustert sind, werden die Vorverarbeitung oder die Vorverarbeitung und die Nachbearbeitung ebenfalls parallel ausgeführt und die Berechnung ist effektiver. In diesen Ausführungsformen hat eine theoretische Abschätzung gezeigt, dass, wenn die Anzahl von Komponenten des unbekannten Vektors X ausreichend groß für eine bestimmte Anzahl von Prozessoren ist, die Wirkungen der parallele Berechnung ausreichend leistungsstark ist. Daher wurde eine parallele, lineare Berechnungsausstattung erhalten, die das Gauss-Verfahren und Gauss-Jordan- Verfahren basierend auf einer gleichzeitigen Multi-Pivot-Eliminierung effektiv anwendet.
  • Weiterhin ermöglicht die vorliegende Erfindung effizient eine parallele Hochgeschwindigkeits-Berechnung zum Lösen von Systemen linearer Gleichungen unter Verwendung eines Parallel-Computers mit einer Anzahl von Elementenprozessoren durch die Verfahren der siebten und achten Ausführungsform.
  • Obwohl die vorliegende Erfindung in Verbindung mit den bevorzugten Ausführungsformen davon anhand der beigefügten Zeichnungen vollständig beschrieben wurde, ist anzumerken, dass vielfältige Änderungen und Modifikationen für den Durchschnittsfachmann erkennbar sind. Solche Änderungen und Modifikationen werden als innerhalb des Umfangs der vorliegenden den Erfindung enthalten aufgefasst, wie sie durch die beigefügten Ansprüche definiert ist.

Claims (13)

1. Vorrichtung zum Lösen eines Systems linearer Gleichungen, mit:
einer Speichereinrichtung zum Speichern einer Koeffizientenmatrix A(0) und einem korrespondierenden bekannten Komponenten-Vektor b(0) und zum Speichern einer reduzierten Zwischen-Matrix A(r) und eines korrespondierenden bekannten Komponenten-Vektors b(r), wobei ein unbekannter Vektor ausgedrückt wird durch
A(r) = (a ), 1 &le; i, j &le; n,
b(r) = (b&sub1;(r), b&sub2;(r), ..., bn(r))t,
x = (x&sub1;, x&sub2;, ..., xn)t
mit r = 0, 1, ...,n für ein gegebenes System linearer Gleichungen,
A(0)x = b(0),
einer Dreh-Einrichtung, angeschlossen an die Speichereinrichtung und eine Steuerungseinrichtung, zum Wählen eines Pivotelements in der i-ten Reihe von A(i-1) gemäß einem partiellen Dreh-Algorithmus, d. h., das Pivotelement einer Reihe ist das Element mit dem maximalen Wert, und zum Vertauschen der i-ten Spalte mit der gewählten Pivot-Spalte für 1 &le; i &le; n, umfassend weiterhin eine Einrichtung zum Bestimmen des transponierten Pivotelements für eine gegebene positive ganze Zahl k und einen Wert eines nicht negativen ganzzahligen Parameters p und wobei das transponierte Pivotelement
a
ist,
eine an die Speichereinrichtung und die Steuerungseinrichtung angeschlossene Vorverarbeitungs-Einrichtung, mit k Vorverarbeitungs-Elementen Ai, wobei jedes der Vorverarbeitungs-Elemente Ai eine Einrichtung enthält zum Berechnen von
für pk + 2 &le; j &le; n und
nachdem die Pivotelement-Auswahleinrichtung das transponierte Pivotelement
a
bestimmt,
eine Mehrzahl von Vorverarbeitungs-Einrichtungen At, mit t = 2, 3, ..., k, wobei jede mit der Speichereinrichtung und der Steuerungseinrichtung verbunden ist zum Berechnen von
für pk + t &le; j &le; n und wobei jede der Mehrzahl der Vorverarbeitungs-Einrichtungen At weiterhin eine Einrichtung umfasst zum Berechnen von
für pk + t + 1 &le; j &le; n, nachdem die Pivotelement-Auswahleinrichtung das transponierte Pivotelement
a
bestimmt, mit 1 &le; t &le; k,
einer Aktualisierungseinrichtung, angeschlossen an die Speichereinrichtung und Steuerungseinrichtung, mit einem Registersatz aus k Registern und einer Arithmetik- Einrichtung, wobei die Arithmetik-Einrichtung eine Einrichtung umfasst zum Berechnen von
und wobei die Arithmetik-Einrichtung weiterhin eine Einrichtung umfasst zum Speichern von entweder Werten von
Reg , ..., Reg
die in dem Registersatz verbleiben, für (P + 1)k + 1 &le; i, j &le; n, oder
für 1 &le; i &le; pk, (p + 1)k + 1 &le; i &le; n und (p + 1)k + 1 &le; j &le; n, wenn n ein Vielfaches von k ist oder p < [n/k], und für 1 &le; i &le; [n/k]k, [n/k]k + 1 &le; j &le; n ansonsten, wobei die Werte von
Reg , ...,Reg
in dem Registersatz verbleiben,
eine Rückwärts-Substitutionseinrichtung, welche an die Speichereinrichtung angeschlossen ist, zum Erhalten des Wertes des unbekannten Vektors x, wobei die Rückwärts-Substitutionseinrichtung eine Einrichtung umfasst zum Berechnen von
xi = b
und
für 1 &le; h &le; i - 1 für i = n, n - 1, ..., 1 in dieser Reihenfolge von i,
k - 1 Nachbearbeitungseinrichtungen Ct, mit t = 1, 2, ..., k - 1, von denen jede an den Speicher angeschlossen ist und ein Einrichtung umfasst zum Berechnen von
Reg(0) = a ,
Reg(1) = a ,
für pk + t + 2 &le; j &le; n,
eine Haupt-Steuerungsseinrichtung G, ferner mit einer Einrichtung zum Prüfen, ob n ein Vielfaches von k ist, und wobei, wenn n ein Vielfaches von k ist, die Haupt- Steuerungseinrichtung G eine Einrichtung umfasst um:
die Pivotelement-Auswahleinrichtung, die Vorverarbeitungs-Sektionen A&sub1;, ..., Ak und die Aktualisierungseinrichtung anzuweisen, ihre Abläufe zu wiederholen für p = 0, 1, ..., n/k - 2, und die Pivotelement-Auswahleinrichtung und die Vorverarbeitungs-Einrichtung A&sub1;, ..., Ak anzuweisen, ihre Abläufe für p = n/k - 1 zu wiederholen, oder im Fall die Pivotelement-Auswahlsektion, die Vorverarbeitungs-Sektionen A&sub1;, ..., Ak, die Aktualisierungs-Einrichung B' und die Nachbearbeitungseinrichtungen C&sub1;, ..., Ck, anzuweisen, ihre Abläufe für p = 0, 1, ..., n/k - 1 zu wiederholen, wenn n nicht ein Vielfaches von k ist, die Haupt-Steuerungseinrichtung G eine Einrichtung umfasst, um:
die Pivotelement-Auswahleinrichtung, die Vorverarbeitungs-Einrichtungen A&sub1;, ..., Ak und die Aktualisierungseinrichtung B zum Wiederholen ihrer Abläufe für p = 0, 1, ..., n/k - 1 anzuweisen, wobei [n/k] die größte ganze Zahl bezeichnet, die n/k nicht überschreitet, und die Pivotelement-Auswahleinrichtung und die Vorverarbeitungs-Einrichtungen A&sub1;, ..., An-[n/k]k anzuweisen, ihre Abläufe auszuführen, und um die Rückwärts- Substitutionseinrichtung zum Erhalten des unbekannten Vektors anzuweisen, oder die Pivotelement-Auswahleinrichtung, die Vorverarbeitungs-Einrichtungen A&sub1;, ..., Ak, die Aktualisierungseinrichtung und die Nachbearbeitungseinrichtungen C&sub1;, ..., Ck-1 anzuweisen, ihre Abläufe für p = 0, 1, ..., [n/k] - 1 zu wiederholen, und die Pivotelement- Auswahleinrichtung, die Vorverarbeitungs-Einrichtungen A&sub1;, ..., An-[n/k]k, die Aktualisierungseinrichtung B' und die Nachbearbeitungseinrichtungen C&sub1;, ..., Cn-[n/k]k zum Ausführen ihrer Abläufe für p = [k/n] anzuweisen.
2. Vorrichtung zum Lösen eines Systems linearer Gleichungen, mit:
einem Netzwerk,
einer Haupt-Steuerungseinrichtung, angeschlossen an das Netzwerk, und mit einer
Einrichtung zum Ausführen einer Ablaufsteuerung,
einer Mehrzahl von Knoten &alpha;u, mit u = 0, 1, ..., P - 1, von denen jeder durch das Netzwerk mit jedem anderen verbunden ist und aufweist:
eine Speichereinrichtung zum Speichern von Blöcken aus k Reihen aus einer Koeffizientenmatrix A(0) und einem entsprechenden bekannten Komponentenvektor b(0) und zum Speichern von Blöcken aus k Reihen einer reduzierten Zwischenmatrix A(r) and einem korrespondierenden bekannten Komponentenvektor b(r) und einem dem Knoten zugeordneten unbekannten Vektor x ausgedrückt durch
A(r) = (a ), 1 &le; i, j &le; n,
b(r) = (b&sub1;(r), b&sub2;(r), ..., bn(r))t,
x= (x&sub1;, x&sub2;, ..., xn)t
für 0 &le; r &le; n, wobei r eine positive ganze Zahl ist, für ein gegebenes System aus linearen Gleichungen
A(0)x = b(0)
eine Pivotelement-Auswahleinrichtung, welche an die Speichereinrichtung angeschlossen ist zum Auswählen eines Pivotelements in der i-ten Reihe von A(i-1) gemäß einem partiellen Dreh-Algorithmus, d. h., das Pivotelement einer Reihe ist das Element mit dem maximalen Wert, und Austauschen der i-ten Spalte mit der gewählten Pivot-Spalte für i in der Knoten-Beanspruchung, umfassend weiterhin eine Einrichtung zum Bestimmen des transponierten Pivotelements für eine gegebene positive ganze Zahl k und einen Wert eines nicht negativen ganzzahligen Parameters p und wobei das transponierte Pivotelement
a
eine an die Speichereinrichtung und die Steuerungseinrichtung angeschlossene Vorverarbeitungs-Einrichtung, mit k Vorverarbeitungs-Elementen Ai, wobei jedes der Vorverarbeitungs-Elemente Ai eine Einrichtung enthält zum Berechnen von
für pk + 2 &le; j &le; n und
für pk + 1 in der Knoten-Beanspruchung, nachdem die Pivotelement-Auswahleinrichtung das transponierte Pivotelement
a
bestimmt,
k - 1 Vorverarbeitungs-Einrichtungen At, mit t = 2, 3, ..., k, angeschlossen an die Speichereinrichtung, mit einer Einrichtung zum Berechnen von
für pk + t &le; j &le; n für pk + t in der Knoten-Beanspruchung, und wobei jede der k - 1 Vorverarbeitungs-Einrichtungen At weiterhin umfasst
für pk + t + 1 &le; j &le; n und für pk + t in der Knoten-Beanspruchung, nachdem die Pivotelement-Auswahleinrichtung das transponierte Pivotelement
a
bestimmt,
eine Aktualisierungseinrichtung, angeschlossen an die Speichereinrichtung mit einem
Registersatz aus k Registern und einer Arithmetik-Einrichtung, und wobei die Arithmetik- Einrichtung eine Einrichtung umfasst zum Berechnen von
für (p + 1)k + 1 &le; j &le; n und für i in der Knoten-Beanspruchung, und eine Einrichtung zum Behalten der Werte von
Reg , ..., Reg
in dem Registersatz,
eine Rückwärts-Substitutionseinrichtung, angeschlossen an die Speichereinrichtung zum Erhalten des Wertes des unbekannten Vektors x durch Berechnen
xi = b
und
für i und h in der Knoten-Beanspruchung,
k - 1 Nachbearbeitungs-Einrichtungen Ct, mit t = 1, 2, ..., k - 1, von denen jede an die Speichereinrichtung angeschlossen ist zum Berechnen von
für pk + t + 2 &le; j &le; n und pk + t in der Knoten-Beanspruchung,
eine Gateway-Einrichtung, angeschlossen an die Speichereinrichtung,
eine Sendeeinrichtung, angeschlossen an die Speichereinrichtung, zum Senden von Daten zwischen der Speichereinrichtung und der Außenseite des Knotens durch die Gateway-Einrichtung, und wobei die Haupt-Steuerungseinrichtung eine Einrichtung umfasst zum Steuern der Speichereinrichtung, der Pivotelement-Auswahleinrichtung, der Vorverarbeitungs-Einrichtung A&sub1;, der Vorverarbeitungs-Einrichtung At, der Aktualisierungseinrichtung, der Rückwärts-Substitutionseinrichtung und der Nachbearbeitungseinrichtungen Ct in einer solchen Weise, dass entweder
wenn die (pk + 1)-te bis (p + 1)k-te Reihe der A(0) und entsprechende Komponenten von b(0) and x dem Knoten &alpha;u zugeordnet sind, die Pivotelement-Auswahleinrichtung des Knotens &alpha;u das Pivotelement
a
bestimmt, und die Vorverarbeitungs-Einrichtung des Knotens &alpha;u
a und b
berechnet für pk + 2 &le; j &le; n, und die Sendeeinrichtung die Ergebnisse zu den Speichereinrichtungen aller anderen Knoten durch die Gateway-Einrichtung sendet, während die Aktualisierungseinrichtung B des zuständigen Knotens der i-ten Reihe
Reg
für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n,
die Vorverarbeitungs-Einrichtung At des Knotens &alpha;u
für pk + t &le; j &le; n berechnet, und, unmittelbar nachdem die Pivotelement- Auswahleinrichtung von &alpha;u das Pivotelement
a und b
bestimmt,
a
berechnet für pk + t + 1 &le; j &le; n und die Sendeeinrichtung die Ergebnisse zu den
Speichereinrichtungen aller anderen Knoten durch die Gateway-Einrichtung sendet, während die Aktualisierungseinrichtung B des zuständigen Knotens der i-ten Reihe
berechnet für jedes i, so dass (p + 1)k + 1 &le; i &le; n,
wobei die Aktualisierungseinrichtung B jedes zuständigen Knotens der i-ten Reihe so dass (p + 1)k + 1 &le; i &le; n,
berechnet für (p + 1)k + 1 &le; j &le; n und die Werte von
Reg , ..., Reg
in dem Registersatz behält, und
die Rückwärts-Substitutionseinrichtung des zuständigen Knotens der i-ten und h-ten Komponenten
xi, b
berechnet für 1 &le; h &le; i - 1 für i = n, n - 1, ..., 1 in dieser Reihenfolge von oder dass,
wenn die (pk + 1)-te bis (p + 1)k-te Reihe der A(0) und der entsprechenden Komponenten von b(0) und x dem Knoten &alpha;u zugeordnet sind, die Pivotelement- Auswahleinrichtung des Knotens &alpha;u das Pivotelement
a
bestimmt und die Vorverarbeitungs-Einrichtung des Knotens &alpha;u
a und b
berechnet für pk + 2 &le; j &le; n, und die Sendeeinrichtung die Ergebnisse zu den Speichereinrichtungen aller anderen Knoten durch die Gateway-Einrichtung sendet, während die Aktualisierungseinrichtung B' des zuständigen Knotens der i-ten Reihe
Reg
für jedes i berechnet, so dass (p + 1)k + 1 &le; i &le; n,
für t = 2, 3, ..., t die Vorverarbeitungs-Einrichtung At des Knotens &alpha;u
für pk + t &le; j &le; n berechnet und unmittelbar, nachdem die Pivotelement- Auswahleinrichtung von &alpha;u das Pivotelement
a
bestimmt,
a und b
für pk + t + 1 &le; j &le; n berechnet und die Sendeeinrichtung die Ergebnisse zu den Speichereinrichtungen aller anderen Knoten durch die Gateway-Einrichtung sendet, während die Aktualisierungs-Einrichtung B' des zuständigen Knotens der i-ten Reihe
berechnet für alle 1, so dass (p + 1)k + 1 &le; i &le; n,
wobei die Aktualisierungseinrichtung B' jedes zuständigen Knotens der i-ten Reihe, so dass 1 &le; i &le; pk oder (p + 1)k + 1 &le; i &le; n ist, wenn n ein Vielfaches von k oder p < [n/k] und 1 &le; i &le; [n/k]k ist,
berechnet
für (p + 1)k + 1 &le; j &le; n, wenn n ein Vielfaches von k oder p < [n/k] ist, und für [n/k]k + 1 &le; j &le; n die Werte von
Reg , ..., Reg
in dem Registersatz behält, und
wobei die Nachbearbeitungs-Sektionen Ct des Knotens &alpha;u
berechnen für pk + t + 2 &le; j &le; n für t = 1, 2, ..., k - 1, wenn n ein Vielfaches von k oder p < [n/k] ist, und für t = 1, 2, ..., n-[n/k]k, um eine nachträgliche Eliminierung auszuführen.
3. Vorrichtung nach Anspruch 2, bei welcher die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst zum Verteilen und Zuordnen der Reihen der Koeffizientenmatrix A(0) und der Komponenten der b(0) und x zu den Knoten in solch einer Weise, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechend 2k Komponenten zu der Speichereinrichtung des einen Knotens in der zyklischen Reihenfolge der a&sub0;, ..., aP-1, a&sub0;, a&sub1;, ... gesendet wird und wobei die Haupt- Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, falls n ein Vielfaches von k ist, jeden Knoten anzuweisen, eine parallele Vorverarbeitung und parallele Aktualisierung für p = 0, 1, ..., n/k - 2 auszuführen und eine parallele Vorverarbeitung für p = n/k - 1 auszuführen, und wobei die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, falls n nicht ein Vielfaches von k ist, jeden Knoten anzuweisen, eine parallele Vorverarbeitung und parallele Aktualisierung für p = 0, 1, ..., [n/k] - 1 auszuführen und eine parallele Vorverarbeitung für p = [n/k] auszuführen und die Knoten anzuweisen, den unbekannten Vektor x durch Ausführen der Rückwärts- Substitution zu erhalten.
4. Vorrichtung nach Anspruch 2, bei welcher die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst zum Verteilen und Zuordnen der Reihen der Koeffizientenmatrix A(0) und der Komponenten der b(0) und x zu den Knoten in solch einer Weise, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechend 2k Komponenten zu der Speichereinrichtung des einen Knotens in der zyklischen Reihenfolge von a&sub0;, ..., aP-1, a&sub0;, a&sub1;, ... gesendet wird und wobei die Haupt- Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, falls n ein Vielfaches von k ist, jeden Knoten anzuweisen, eine parallele Vorverarbeitung, parallele Aktualisierung und nachträgliche Eliminierung für p = 0, 1, ..., [n/k] - 1 auszuführen, und wobei die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, falls n nicht ein Vielfaches von k ist, in jedem Knoten eine parallele Vorverarbeitung, eine parallele Aktualisierung und nachträgliche Beseitigung für p = 0, 1, ..., [n/k] - 1 auszuführen und
die parallele Vorverarbeitung, parallele Aktualisierung und nachträgliche Eliminierung für p = [n/k] auszuführen.
5. Vorrichtung zum Lösen eines Systems linearer Gleichungen, mit:
einem Netzwerk,
einer Haupt-Steuerungseinrichtung, angeschlossen an das Netzwerk, zum Ausführen einer Ablauf-Steuerung, und
einer Mehrzahl von Clustern CLu aus Verarbeitungs-Elementen, mit u = 0, 1, ..., P - 1, von denen jeder mit jedem anderen durch das Netzwerk verbunden ist und aufweist: eine Speichereinrichtung zum Speichern von Blöcken aus k Reihen einer Koeffizientenmatrix A(0) und einem entsprechenden bekannten Komponentenvektor b(0) und zum Speichern von Blöcken aus k Reihen einer reduzierten Zwischen-Matrix A(r) und einem entsprechenden bekannten Komponentenvektor b(r) und einem, dem Knoten zugeordneten unbekannten Vektor x und ausgedrückt durch
A(r) = (a ), 1 &le; i, j &le; n,
b(r) = (b&sub1;(r), b&sub2;(r), ..., bn(r))t,
x = (x&sub1;, x&sub2;, ..., xn)t
für 0 &le; r &le; n, wobei r eine positive ganze Zahl ist, für ein gegebenes System linearer Gleichungen
A(0)x = b(0)
eine C Gateway-Einrichtung zwischen jedem der Cluster und der Außenseite, eine Sendeeinrichtung zum Senden von Daten zwischen dem Speicher und der Außenseite des Clusters durch die C Gateway-Einrichtung, und
eine Mehrzahl von Verarbeitungselementen PEt, mit t = 1, 2, ..., Pc, von denen jedes an die Speichereinrichtung angeschlossen ist und umfasst:
eine Pivotelement-Auswahleinrichtung, angeschlossen an die Speichereinrichtung zum
Wählen eines Pivotelements in der i-ten Reihe von A(i-1) gemäß einem partiellen Dreh- Algorithmus, das heißt, das Pivotelement einer Reihe ist das Element mit dem maximalen Wert, und zum Austauschen der i-ten Spalte mit der gewählten Pivot-Spalte für i in der Elementen-Prozessor-Beanspruchung, und mit einer Einrichtung zum Bestimmen des transponierten Pivotelements für eine gegebene positive ganze Zahl k und einen Wert eines nicht negativen, ganzzahligen Parameters p, wobei das transponierte Pivotelement
a
ist,
eine Vorverarbeitungs-Einrichtung, angeschlossen an die Speichereinrichtung und die Steuerungseinrichtung, mit k Vorverarbeitungs-Elementen Ai, wobei jedes der Vorverarbeitungs-Elemente Ai eine Einrichtung umfasst zum Berechnen von
für pk + 2 &le; j &le; n und
für pk + 1 in der Elementen-Prozessor-Beanspruchung, nachdem die Pivotelement- Auswahleinrichtung das transponierte Pivotelement
a
bestimmt,
k - 1 Vorverarbeitungs-Einrichtungen At, mit t = 2, 3, ..., k, von denen jede an die Speichereinrichtung angeschlossen ist und weiterhin eine Einrichtung umfasst zum Berechnen von
Reg = a
für pk + t &le; j &le; n und wobei jede der k - 1 Vorverarbeitungs-Einrichtungen At weiterhin umfasst
für pk + t + 1 &le; j &le; n, nachdem die Pivotelement-Auswahleinrichtung das transponierte Pivotelement
a
bestimmt,
eine Aktualisierungseinrichtung B, angeschlossen an die Speichereinrichtung und an die Haupt-Steuerungseinrichtung, umfassend einen Registersatz aus k Registern und eine Arithmetik-Einrichtung, und wobei die Arithmetik-Einrichtung eine Einrichtung umfasst zum Berechnen von
für (p + 1)k + 1 &le; j &le; n und für i in der Elementen-Prozessor-Beanspruchung, eine Einrichtung zum Behalten der Werte von
Reg , ..., Reg
in dem Registersatz,
eine Rückwärts-Substitutionseinrichtung, angeschlossen an die Speichereinrichtung, um den Wert des unbekannten Vektors x zu erhalten; und eine Einrichtung zum Berechnen von
xi = b
und
für i und h in der Elementen-Prozessor-Beanspruchung,
eine Aktualisierungseinrichtung, angeschlossen an die Pivotelement- Auswahleinrichtung, mit einem Registersatz aus k Registern und einer Arithmetik- Einrichtung, wobei die Arithmetik-Einrichtung eine Einrichtung umfasst zum Berechnen von
Reg = a
für (p + 1)k + 1 &le; j &le; n und eine Einrichtung zum Behalten der Werte von
Reg , ..., Reg
in dem Registersatz,
k - 1 Nachbearbeitungs-Einrichtungen Ct mit t = 1, 2, ..., k - 1, von denen jede an die Pivotelement-Auswahleinrichtung angeschlossen ist, und mit einer Einrichtung zum Berechnen von
für pk + t + 2 &le; j &le; n,
eine Gateway-Einrichtung, angeschlossen an die Speichereinrichtung oder an die Pivotelement-Auswahleinrichtung, um eine Kommunikation mit der Außenseite des Verarbeitungselementes zu ermöglichen, und wobei die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst zum Steuern der Mehrzahl von Clustern aus Verarbeitungselementen, des Netzwerkes, der Speichereinrichtung, der Gateway- Einrichtung, der Sendeeinrichtung, der Pivotelement-Auswahleinrichtung, der Vorverarbeitungs-Einrichtung A&sub1;, der Vorverarbeitungs-Einrichtungen At, der Aktualisierungseinrichtung B, der Rückwärts-Substitutionseinrichtung, der Aktualisierungseinrichtung und der Nachbearbeitungs-Einrichtungen Ct in solch einer Weise, dass entweder,
wobei, wenn die (pk + 1)-te bis (p + 1)k-te Reihe von A(0) und entsprechende Komponenten von b(0) und x zu dem Cluster CLu zugeordnet sind, die Pivotelement- Auswahleinrichtung des Verarbeitungselementes PE&sub1; des CLu das transponierte Pivotelement
a
der (pk + 1)-ten Reihe bestimmt, und die Vorverarbeitungs-Einrichtung A&sub1; des Verarbeitungselementes von CLu gleichzeitig
a und b
für pk + 2 &le; i &le; n und
Reg
mit jeder der Vorverarbeitungs-Einrichtungen A&sub1; berechnet für zuständige Elemente und Komponenten, und die Sendeeinrichtung die Ergebnisse zu der Speichereinrichtung jedes anderen Clusters durch die C Gateway-Einrichtung sendet, während die Aktualisierungseinrichtung des zuständigen Verarbeitungselementes der i-ten Reihe
Reg
für jedes i berechnet, für (p + 1)k + 1 &le; i &le; n,
für 2 &le; t &le; k so dass die Vorverarbeitungs-Einrichtung At des Clusters CLu gleichzeitig
für pk + t &le; j &le; n mit jeder Vorverarbeitungs-Einrichtung At, berechnet für zuständige Elemente und Komponenten unmittelbar, nachdem die Pivotelement- Auswahleinrichtung des PES des CLu das Pivotelement
a
bestimmt, und
a und b
für pk + t + 1 &le; j &le; n, und die Sendeeinrichtung die Ergebnisse zu der Speichereinrichtung jedes anderen Clusters durch die C Gateway-Einrichtung sendet, während die Aktualisierung-Einrichtung des zuständigen Verarbeitungselementes der i- ten Reihe
berechnet für jedes i, so dass (p + 1)k + 1 &le; i &le; n, und
wobei die Aktualisierungseinrichtung B von jedem zuständigen Verarbeitungselement der i-ten Reihe, so dass (p + 1)k + 1 &le; i &le; n
berechnet, für (p + 1)k + 1 &le; j &le; n die Werte von
Reg , ..., Reg
in dem Registersatz behält, und
wobei die Rückwärts-Substitutionseinrichtung jedes zuständigen Clusters der i-ten und h-ten Komponenten
xi und b
berechnet für 1 &le; h &le; i - 1 für i = n, n - 1, ..., 1 in dieser Reihenfolge von i, oder wobei, wenn die (pk + 1)-te bis (p + 1+)k-te Reihe der A(0) und entsprechende Komponenten der b(0) und x dem Cluster CLu zugeordnet sind, die Pivotelement- Auswahleinrichtung des Verarbeitungselements PE&sub1; des CLu das transponierte Pivotelement
a
der (pk + 1)-ten Reihe bestimmt, und die Vorverarbeitungs-Einrichtung A&sub1; des Verarbeitungselements des CLu gleichzeitig
a und b
berechnet für pk + 2 &le; j &le; n, wobei jede Vorverarbeitungs-Einrichtung A&sub1; Elemente und Komponenten in ihrer Zuständigkeit berechnet, und die Sendeeinrichtung sendet die Ergebnisse zu der Speichereinrichtung jedes anderen Clusters durch die C Gateway- Einrichtung, während die Aktualisierungseinrichtung B' des zuständigen Verarbeitungselementes der i-ten Reihe
Reg
für jedes i für (p + 1)k + 1 &le; i &le; n berechnet,
für t = 2, 3, ..., k berechnet die Vorverarbeitungs-Einrichtung At des Verarbeitungselements des Clusters CLu gleichzeitig
für pk + t &le; j &le; n, wobei jede Vorverarbeitungs-Einrichtung At Elemente und Komponenten in ihrer Zuständigkeit berechnet und unmittelbar, nachdem die
Pivotelement-Auswahleinrichtung des Verarbeitungselements PEt des CLu das Pivotelement
a
bestimmt, gleichzeitig
a und b
berechnet für pk + t + 1 &le; j &le; n und die Sendeeinrichtung die Ergebnisse zu der Speichereinrichtung jedes anderen Clusters durch die C Gateway-Einrichtung sendet, während die Aktualisierungseinrichtung B' des zuständigen Verarbeitungselements der i-ten Reihe
berechnet für jedes i, so dass (p + 1)k + 1 &le; i &le; n,
wobei die Aktualisierungseinrichtung B' jedes zuständigen Verarbeitungselements der 1- ten Reihe für 1 &le; i &le; pk oder (p + 1)k + 1 &le; i &le; n, wenn n ein Vielfaches von k ist, oder p < [n/k] und 1 &le; i &le; [n/k]k ebenfalls
berechnet für (p + 1)k + 1 &le; j &le; n, wenn n ein Vielfaches von k ist, oder p < [n/k] und für [n/k]k + 1 &le; j &le; n, anderenfalls, die Werte von
Reg , ..., Reg
in dem Registersatz behält, und
wobei die Nachbearbeitungs-Einrichtung Ct des Verarbeitungselements des CLu gleichzeitig
berechnet für j, so dass pk + t + 2 &le; j &le; n für t = 1, 2, ..., k - 1, wenn n ein Vielfaches von k ist, oder p < [n/k] und für t = 1, 2, ..., n - [n/k]k anderenfalls, um eine nachträgliche Eliminierung auszuführen.
6. Vorrichtung nach Anspruch 5, bei welcher die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst zum Verteilen und Zuordnen der Reihen der Koeffizientenmatrix A(0) und der Komponenten von b(0) und x zu den Clustern in solch einer Weise, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechenden 2 k Komponenten zu der Speichereinrichtung des einen Clusters in der zyklischen Reihenfolge von CL&sub0;, ..., CIp-1, CL&sub0;, CL&sub1;, ... gesendet wird, und wobei die Haupt- Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, wenn n ein Vielfaches von k ist, jedes Cluster anzuweisen, eine parallele Vorverarbeitung und parallele Aktualisierung für p = 0, 1, ..., n/k - 2 auszuführen und eine parallele Vorverarbeitung für p = n/k - 1 auszuführen, und wobei die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, wenn n nicht ein Vielfaches von k ist, die Cluster anzuweisen, eine parallele Vorverarbeitung und parallele Aktualisierung für p = 0, 1, ..., [n/k] -1 auszuführen, und eine parallele Vorverarbeitung für p = [n/k] auszuführen und um jeden Cluster anzuweisen, den unbekannten Vektor x durch Ausführen der Rückwärts- Substitution zu erhalten.
7. Vorrichtung nach Anspruch 5, bei welcher die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um die Reihen der Koeffizientenmatrix A(0) und der Komponenten von b(0) und x auf die Cluster zu verteilen und zuzuordnen in solch einer Weise, dass jeder Block aus aufeinanderfolgenden k Reihen und entsprechenden 2k Komponenten zu der Speichereinrichtung des einen Clusters in der zyklischen Reihenfolge CL&sub0;, ..., CLp-1, CL&sub0;, CL&sub1;, ... gesendet wird, und wobei die Haupt- Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, wenn n ein Vielfaches von k ist, jedes Cluster anzuweisen, eine parallele Vorverarbeitung eine parallele Aktualisierung und parallele nachträgliche Eliminierung für p = 0, 1, ..., n/k - 1 auszuführen, und wobei die Haupt-Steuerungseinrichtung weiterhin eine Einrichtung umfasst, um, wenn n nicht ein Vielfaches von k ist, jedes der Cluster anzuweisen, eine parallele Vorverarbeitung, parallele Aktualisierung und parallele nachträgliche Eliminierung für p = 0, 1, ..., [n/k] - 1 auszuführen, und die parallele Vorverarbeitung, parallele Aktualisierung und nachträgliche Eliminierung für p = [n/k] auszuführen.
8. Parallel-Computer zum Lösen eines Systems linearer Gleichungen mit einer Mehrzahl CL&sub1; -CLc von C Clustern aus Verarbeitungselementen,
verbunden durch ein Netzwerk, wobei jeder Cluster eine Mehrzahl Pc von Verarbeitungselementen und eine gemeinsam genutzte Speichereinrichtung zum Speichern einer Koeffizientenmatrix A(0) und eines entsprechenden bekannten Komponentenvektors b(0) umfasst, und zum Speichern eines Teils einer reduzierten Zwischen-Matrix A(r) und eines entsprechenden bekannten Komponentenvektors b(r) und eines unbekannten Vektors x, ausgedrückt durch
A(r) = (a ), 1 &le; i, j &le; n,
b(r) = (b&sub1;(r), b&sub2;(r), ..., bn(r))t,
x = (x&sub1;, x&sub2;, ..., xn)t
für 0 &le; r &le; n und r ist eine positive ganze Zahl, für ein gegebenes System linearer Gleichungen
A(0)x = b(0)
wobei der Parallel-Computer weiterhin umfasst:
eine Daten-Verteilungseinrichtung zum Verteilen der Reihen der Koeffizientenmatrix A(0) und der Komponenten des Vektors b(0) und x auf die gemeinsam genutzte Speichereinrichtung in den Clustern, wobei die Verteilungseinrichtung weiterhin eine Einrichtung umfasst zum Senden jedes Blocks aus aufeinanderfolgenden k Reihen und entsprechenden 2k Komponenten zu dem gemeinsam genutzten Speicher in der zyklischen Reihenfolge von CL&sub1;, ..., CLC, CL&sub1;, CL&sub2;, ..., und eine Einrichtung zum reihenweisen Zuordnen der verteilten Blöcke der gemeinsam verwendeten Speichereinrichtung der Cluster zu deren Elementen-Prozessoren,
eine Pivotelement-Auswahleinrichtung zum Auswählen eines Pivotelements in einer zu jedem Elementen-Prozessor zugeordneten Reihe entsprechend einem partiellen Dreh- Algorithmus, d. h., das Pivotelement einer Reihe ist das Element mit dem maximalen Wert,
eine Vorab-Eliminierungs-Einrichtung mit einer Einrichtung zum Berechnen von
in dem zuständigen Elementen-Prozessor der (kPc + 1)-ten Reihe, nachdem die Pivotelement-Auswahleinrichtung das transponierte Pivotelement
a
bestimmt, eine Einrichtung zum Senden des Ergebnisses zu der gemeinsam genutzten Speichereinrichtung jedes anderen Clusters, zu welchem das zuständige Verarbeitungselement einer i-ten Reihe für kPc + 1 &le; i &le; n gehört, und eine Einrichtung zum Berechnen von
für I = 2, ..., Pc,
für kPc + I &le; i &le; n in dem zuständigen Elementen-Prozessor der i-ten Reihe, eine Einrichtung zum Berechnen von
in dem zuständigen Verarbeitungselement der (kPc + I)-ten Reihe, und eine Einrichtung zum Berechnen von
in dem zuständigen Verarbeitungselement der (kPc + I)-ten Reihe, nachdem die Pivotelement-Auswahleinrichtung das transponierte Pivotelement
a
bestimmt, eine Einrichtung zum Senden der Ergebnisse
zu der gemeinsam genutzten Speichereinrichtung jedes anderen Clusters, zu welchem das zuständige Verarbeitungselement einer i-ten Reihe für kPc + I + 1 &le; i &le; n gehört, eine Multi-Pivotelement-Eliminierungseinrichtung mit einer Einrichtung zum Berechnen von
in jedem zuständigen Elementen-Prozessor der i-ten Reihe für (k + 1)Pc + 1 &le; i &le; n, eine Verarbeitungseinrichtung zur nachträglichen Eliminierung zum Berechnen von
für I = -w + q + 1 für w = 1, ..., q und q = 1, ..., Pc - 1 für kPc + 1 &le; i &le; kPc + q indem zuständigen Elementen-Prozessor der i-ten Reihe,
eine Einrichtung zum Prüfen, ob der durch die Multi-Pivotelement-Eliminierungs- Einrichtung oder die Verarbeitungseinrichtung zur nachträglichen Eliminierung ausgeführte Vorgang [n/Pc] mal ausgeführt wurde, wobei die Einrichtung zur nachträglichen Eliminierung weiterhin eine Einrichtung umfasst zum Berechnen von
in dem zuständigen Elementen-Prozessor der i-ten Reihe, und
eine Rest-Eliminierungs-Einrichtung, um die Berechnung der Vorab-Eliminierungs- Einrichtung für die ([n/Pc]Pc + 1)-te Reihe bis zu der n-ten Reihe zu ermöglichen - und im Fall (b) ebenfalls eine Berechnung der Multi-Pivotelement-Eliminierungs-Einrichtung und der Einrichtung zur nachträglichen Eliminierung zu ermöglichen - wenn die Prüf- Einrichtung erkennt, dass der Ablauf der Multi-Pivotelement-Eliminierungs-Einrichtung [n/Pc] mal ausgeführt wurde und n nicht ein Vielfaches von Pc ist.
9. Parallel-Computer nach Anspruch 8, bei welchem die Prüf-Einrichtung weiterhin eine Einrichtung umfasst zum Prüfen, ob die Multi-Pivotelement-Eliminierungs-Einrichtung ihre Abläufe [n/Pc] mal ausgeführt hat, wobei der Computer weiterhin umfasst:
eine elementare Rückwärts-Substitutionseinrichtung zum Berechnen von
xi = b
in dem zuständigen Verarbeitungselement in der i-ten Reihe,
eine Rückwärts-Sendeeinrichtung zum Senden von xi zu der gemeinsam genutzten Speichereinrichtung jedes Clusters, zu welchem das zuständige Verarbeitungselement einer h-ten Reihe für 1 &le; h &le; i - 1 gehört,
eine Rückwärts-Berechnungseinrichtung zum Berechnen von
für 1 &le; h &le; i - 1 in dem zuständigen Verarbeitungselement in der h-ten Reihe, und einer Einrichtung zum Prüfen, ob der Ablauf der elementaren Rückwärts- Substitutionseinrichtung wiederholt wurde von i = n bis i = 1.
10. Parallel-Computer nach Anspruch 8, bei welchem die Prüf-Einrichtung weiterhin eine Einrichtung umfasst zum Prüfen, ob die Multi-Pivotelement-Eliminierungs-Einrichtung ihre Abläufe [n/Pc] mal ausgeführt hat, und wobei die Pivotelement-Auswahleinrichtung weiterhin umfasst:
eine Sucheinrichtung zum Suchen nach einem Nicht-Null-Element in der Reihenfolge der ansteigenden Spaltennummern von dem Diagonalelement in der gleichen Reihe, wenn ein Diagonalelement der Koeffizientenmatrix A(r)0 ist,
eine Spaltennummer-Mitteilungseinrichtung, um dem Verarbeitungselement die Spaltennummer eines durch die Sucheinrichtung gefundenen Nicht-Null-Elements mitzuteilen,
eine Elementen-Austauscheinrichtung zum Austauschen der zwei Elemente, welche für das Verarbeitungselement zuständig sind und die gleichen Spaltennummern haben wie das obige Diagonal-Null-Element und das gefundene Nicht-Null-Element, und
eine Komponenten-Austauscheinrichtung, um den zwei Verarbeitungselementen zu ermöglichen, die zwei Komponenten des unbekannten Vektors auszutauschen, für welche sie zuständig sind und die gleichen Komponenten-Indizes aufweisen, wie die Spaltennummern des Diagonal-Null-Elements und des gefundenen Nicht-Null-Elements.
11. Parallel-Computer nach Anspruch 8, bei welchem die Prüf-Einrichtung weiterhin eine Einrichtung zum Prüfen umfasst, ob die Multi-Pivotelement-Eliminierungs-Einrichtung ihren Ablauf [n/Pc] mal ausgeführt hat, und wobei die Pivotelement-Auswahleinrichtung weiterhin umfasst:
eine Sucheinrichtung zum Suchen nach einem Element mit dem größten Absolutwert in der Reihenfolge der ansteigenden Spaltennummern von einem Diagonal-Element in der gleichen Reihe,
eine Spaltennummer-Mitteilungseinrichtung, um dem Verarbeitungselement die Spaltennummer eines durch die Sucheinrichtung gefundenen Elements mitzuteilen, eine Elementen-Austauscheinrichtung zum Austauschen der zwei Elemente, welche für das Verarbeitungselement zuständig sind und die gleiche Spaltennummer aufweisen,
wie das Diagonal-Element und das gefundene Element, und
eine Komponenten-Austauscheinrichtung, um dem Verarbeitungselement zu erlauben, die zwei Komponenten des unbekannten Vektors auszutauschen, für welche sie zuständig sind, und die gleichen Komponenten-Indizes aufweisen wie die
Spaltennummern des Diagonal-Elements und der gefundenen Komponente.
12. Parallel-Computer nach Anspruch 8, bei welchem die Pivotelement- Auswahleinrichtung weiterhin umfasst:
eine Sucheinrichtung zum Suchen nach einem Nicht-Null-Element in der Reihenfolge der ansteigenden Spaltennummern von dem Diagonal-Element in der gleichen Reihe, wenn ein Diagonal-Element der Koeffizienten-Matrix A(r)0 ist,
eine Spaltennummern-Mitteilungseinrichtung, um dem Verarbeitungselement die Spaltennummer eines durch die Sucheinrichtung gefundenen Nicht-Null-Elements mitzuteilen,
eine Elementen-Austauscheinrichtung zum Austauschen der zwei Elemente, welche das Verarbeitungselement beanspruchen und die gleiche Spaltennummer aufweisen wie das obige Diagonal-Null-Element und das gefundene Nicht-Null-Element, und
eine Komponenten-Austauscheinrichtung, um den zwei Verarbeitungselementen zu erlauben, die zwei Komponenten des unbekannten Vektor das auszutauschen, für welche sie zuständig sind und die gleichen Komponenten-Indizes aufweisen, wie die Spaltennummern des Diagonal-Null-Elements und des gefundenen Nicht-Null-Elements.
13. Parallel-Computer nach Anspruch 8,
bei welchem die Pivotelement-Auswahleinrichtung weiterhin umfasst:
eine Sucheinrichtung zum Suchen nach einem Element mit dem größten Absolutwert in der Reihenfolge der ansteigenden Spaltennummern von einem Diagonal-Element in der gleichen Reihe,
eine Spaltennummern-Mitteilungseinrichtung, um dem anderen Verarbeitungselement die Spaltennummer eines durch die Sucheinrichtung gefundenen Elements mitzuteilen, eine Elementen-Austauscheinrichtung zum Austauschen der zwei Elemente, welche für das Verarbeitungselement zuständig sind und die gleiche Spaltennummer aufweisen
wie das Diagonal-Element und das gefundene Element, und
eine Komponenten-Austauscheinrichtung, um den zwei Verarbeitungselementen zu erlauben, die zwei Komponenten des unbekannten Vektors auszutauschen, für welche sie zuständig sind und die gleichen Komponenten-Indizes aufweisen wie die Spaltennummer des Diagonal-Elements und der gefundenen Komponente.
DE69232431T 1991-07-12 1992-07-09 Vorrichtung zur Lösung von linearen Gleichungssystem Expired - Fee Related DE69232431T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP17216891A JPH0520348A (ja) 1991-07-12 1991-07-12 並列演算装置
JP17361691A JPH0520349A (ja) 1991-07-15 1991-07-15 線形計算装置

Publications (2)

Publication Number Publication Date
DE69232431D1 DE69232431D1 (de) 2002-04-04
DE69232431T2 true DE69232431T2 (de) 2002-09-19

Family

ID=26494618

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69232431T Expired - Fee Related DE69232431T2 (de) 1991-07-12 1992-07-09 Vorrichtung zur Lösung von linearen Gleichungssystem

Country Status (3)

Country Link
US (1) US5490278A (de)
EP (1) EP0523544B1 (de)
DE (1) DE69232431T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8953722B2 (en) 2007-11-27 2015-02-10 Infineon Technologies Ag Controlled transmission of data in a data transmission system

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3639323B2 (ja) * 1994-03-31 2005-04-20 富士通株式会社 メモリ分散型並列計算機による連立1次方程式計算処理方法および計算機
JP2959525B2 (ja) * 1997-06-02 1999-10-06 日本電気株式会社 データ処理装置および方法、情報記憶媒体
TW388921B (en) * 1997-11-28 2000-05-01 Nippon Electric Co Semiconductor process device simulation method and storage medium storing simulation program
US6601080B1 (en) * 2000-02-23 2003-07-29 Sun Microsystems, Inc. Hybrid representation scheme for factor L in sparse direct matrix factorization
JP3827941B2 (ja) * 2000-11-16 2006-09-27 株式会社日立製作所 連立一次方程式求解方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP3639206B2 (ja) * 2000-11-24 2005-04-20 富士通株式会社 共有メモリ型スカラ並列計算機における並列行列処理方法、及び記録媒体
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6859817B2 (en) * 2001-11-16 2005-02-22 Sun Microsystems, Inc. Solving systems of nonlinear equations using interval arithmetic and term consistency
US20030105789A1 (en) * 2001-11-30 2003-06-05 Walster G. William Solving systems of nonlinear equations using interval arithmetic and term consistency
US6961743B2 (en) * 2002-01-08 2005-11-01 Sun Microsystems, Inc. Method and apparatus for solving an equality constrained global optimization problem
US20030182518A1 (en) * 2002-03-22 2003-09-25 Fujitsu Limited Parallel processing method for inverse matrix for shared memory type scalar parallel computer
GB0208329D0 (en) * 2002-04-11 2002-05-22 Univ York Data processing particularly in communication systems
US7065545B2 (en) * 2002-05-07 2006-06-20 Quintero-De-La-Garza Raul Gera Computer methods of vector operation for reducing computation time
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US20050071828A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for compiling source code for multi-processor environments
US7146529B2 (en) 2003-09-25 2006-12-05 International Business Machines Corporation System and method for processor thread acting as a system service processor
US7318218B2 (en) * 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7475257B2 (en) * 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7516456B2 (en) * 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US20050071578A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for manipulating data with a plurality of processors
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7236998B2 (en) * 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US8204925B2 (en) * 2008-05-22 2012-06-19 National Instruments Corporation Controlling or analyzing a process by solving a system of linear equations in real-time
US8417755B1 (en) 2008-05-28 2013-04-09 Michael F. Zimmer Systems and methods for reducing memory traffic and power consumption in a processing environment by solving a system of linear equations
CN105045768A (zh) * 2015-09-01 2015-11-11 浪潮(北京)电子信息产业有限公司 一种实现gmres算法的方法和系统
US10713332B2 (en) * 2017-06-23 2020-07-14 University Of Dayton Hardware accelerated linear system solver
US10915075B2 (en) * 2017-10-02 2021-02-09 University Of Dayton Reconfigurable hardware-accelerated model predictive controller
KR102096365B1 (ko) 2019-11-19 2020-04-03 (주)브이텍 진공 멀티-센싱 유닛

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US4787057A (en) * 1986-06-04 1988-11-22 General Electric Company Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements
US5274832A (en) * 1990-10-04 1993-12-28 National Semiconductor Corporation Systolic array for multidimensional matrix computations
US5301342A (en) * 1990-12-20 1994-04-05 Intel Corporation Parallel processing computer for solving dense systems of linear equations by factoring rows, columns, and diagonal, inverting the diagonal, forward eliminating, and back substituting

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8953722B2 (en) 2007-11-27 2015-02-10 Infineon Technologies Ag Controlled transmission of data in a data transmission system

Also Published As

Publication number Publication date
DE69232431D1 (de) 2002-04-04
EP0523544B1 (de) 2002-02-27
US5490278A (en) 1996-02-06
EP0523544A3 (en) 1994-08-10
EP0523544A2 (de) 1993-01-20

Similar Documents

Publication Publication Date Title
DE69232431T2 (de) Vorrichtung zur Lösung von linearen Gleichungssystem
DE69231497T2 (de) Massivparalleles rechnersystem mit eingangs-ausgangsanordnung
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE3248215C2 (de)
DE3883192T2 (de) Neuronale Netzwerkschaltung und -struktur.
DE69811877T2 (de) ARITHMETISCHER PROZESSOR, der endliche Felder Arithmetik und ganzzahlige modular Arithmetik kombiniert.
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE69506675T2 (de) Verfahren zur Ausführung von modularen Reduktion nach der Montgomery-Methode
DE3424962C2 (de)
DE3486211T2 (de) Kodebestimmung mit einem auf Halbaddierer basierten Operandenvergleicher.
DE102018105457A1 (de) Transponieren von Matrizen neuronaler Netze in Hardware
DE68928727T2 (de) Cachespeicheranlage zum Versorgen eines Festworts eines Befehlscodes mit variabler Länge und Befehlsabrufanlage
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE3750017T2 (de) Prozessor für orthogonale Transformation.
DE3049437A1 (de) Matrixanordnung einer vielzahl von verarbeitungselementen fuer parallelprozessoren
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE69314824T2 (de) Neuronaler Prozessor mit verteilten synaptischen Zellen
DE2934971A1 (de) Datenverarbeitungssystem
DE69327223T2 (de) Vorrichtung zur Bewegungsschätzung in Echtzeit und Verfahren dafür
DE29521338U1 (de) Rechner mit einem neutralen Netz
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE3588212T2 (de) Verfahren und Gerät zum Suchen von Daten
DE68925625T2 (de) Verfahren zur Rückführung von Fehlern und neuronale Netzstruktur
DE1549584B2 (de) Datenverarbeitungsanlage
DE1474040B2 (de) Einrichtung zur Bildung von Speicheradressen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee