DE2503087C3 - Netzwerk-Rechnersystem - Google Patents
Netzwerk-RechnersystemInfo
- Publication number
- DE2503087C3 DE2503087C3 DE19752503087 DE2503087A DE2503087C3 DE 2503087 C3 DE2503087 C3 DE 2503087C3 DE 19752503087 DE19752503087 DE 19752503087 DE 2503087 A DE2503087 A DE 2503087A DE 2503087 C3 DE2503087 C3 DE 2503087C3
- Authority
- DE
- Germany
- Prior art keywords
- processors
- matrix
- computer system
- lines
- instruction
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/13—Differential equations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Multi Processors (AREA)
Description
Die Erfindung betrifft ein Rechnersystem mit einem Steuerrechner und einer Vielzahl von untereinander
gleich aufgebauten, matrixförrjiig angeordneten Prozessoren,
von denen jeder über Da<.enaustauschleitungen
mit den unmittelbar benachbarten Prozessoren in der Matrix und über Instruktionsleitungen und Meldeleitungen
mit dem Steuerrechner verbunden ist, wobei der Steuerrechner wenigstens mit einem Teil der Prozessoren
über Datenaustauschleitungen verbunden ist.
Derartige Rechnersysteme sind bekannt, beispielsweise
aus IEEE Transactions on Computers. Vol. C 21 (1972), Seiten 948-960. Darin besitzt jeder Prozessor
mindestens Einrichtungen für einige logische und arithmetische Verknüpfungen sowie eine gewisse
Speicherkapazität. Das Programm kommt aus einem Steuerrechner, der ein üblicher großer Vielzweckrechner
sein kann, und jede Instruktion wird parallel allen Prozessoren zugeleitet. Auf diese Weise führen alle
Prozessoren gleichzeitig dieselbe Operation aus, wobei die Operanden jedoch von Prozessor zu Prozessor
verschieden sein können. Diese Art von Netzwerk Rechnern zählt deshalb /u den »single instruction
stream-multiple data stream« (SIMD) Rechnern. leder Prozessor ist mit seinen Nachbarn verbunden, so daß ein
lokaler Datenaustausch zwischen den Prozessoren möglich ist und jeder Prozessor bei einem Rechenschritt
Daten aus den benachbarten Prozessoren verwenden kann.
Es ist ein Netzwerk-Rechner gebaut worden, der unter dem Namen ILLIACIV bekannt und beispielsweise in IEEETransactions on Computers, VoL G'l 7,(1968),
Seiten 746-757 beschrieben worden ist. Bei diesem Rechner ist es mit Hilfe einer Sperrlogik möglich,
einzelne Prozessoren, abhängig von in ihnen gespeicherten Daten, vom gemeinsamen Instruktionsfluß
abzuschneiden. Außerdem ist eine lokale indirekte Adressierung vorgesehen. Diese Einrichtungen erlauben
ein Abweichen von SIMD-Prinzip, wodurch die Flexibilität des Netzwerk-Rechners erhöht wird.
Die erwähnten zusätzlichen Möglichkeiten führen allerdings zu einem sehr komplizierten Aufbau der
Prozessoren und einer sehr komplizierten Steuerung. U.a. aus Kostengründen ist daher die Zahl der
Prozessoren und damit die mögliche Parallelität bei dem bekannten Rechner auf 64 Prozessoren eingeschränkt
Es gibt jedoch Datenverarbeitungsprobleme, bei denen eine größere Anzahl von Prozessoren wünschenswert
ist Ein solches Problem ist die numerische Lösung partieller Differentialgieichungen mittels Differenzenmethoden,
wie in dem Buch von Richard S. Varga,»Matrix Iterative Analysis« Prentice-Hall, Incx,
New Jersey (1962), Kapitel 3 bis 6, angegeben ist. Für diese Differenzenmethoden kann die sogenannte
SOR-fviethode (SOR = successive overrelaiion iterative
method) verwendet werden. Eine für dieses Gebiet typische Aufgabe besteht in der Lösung eines linearen
Gleichungssystems von bestimmter, sehr spezieller Struktur. Dies geschieht in der Regel iterativ. Die
einzelnen Iterationsschritte können prinzipiell ΛΖ-fach
parallel durchgeführt werden, wobei N die Anzahl der Unbekannten bedeutet und zwischen W und \0* liegt
Dazu sind dann N Prozessoren notwendig. Für die Lösung dieses Problems sind die bekannten Netzwerk-Rechner
nicht optimal geeignet, da, abgesehen von der zu geringen Zahl vorhandener Prosessoren, das
SIMD-Prinzip bei bestimmten Iterationsverfahren nur eine /V/2-fache Parallelität ermöglicht, so daß die
theoretisch maximal mögliche Geschwindigkeit etwa halbiert wird. Ferner ist die aufwendige Steuerung der
bekannten Netzwerk-Rechner überflüssig.
Aufgabe der Erfindung ist es, einen Netzwerk-Rechner
zur numerischen Lösung partieller Differentialgleichung mittels Differenzenmethoden anzugeben, der die
weitestgehende Ausnutzung der prinzipiell möglichen Parallelität gestattet und dessen Prozessoren und deren
Steuerung dennoch relativ einfach sind. Diese Aufgabe löst die Erfindung durch die im Kennzeichen des
Hauptanspruchs angegebenen Maßnahmen. Ausgestaltungen uer Erfindung sind in den Unteransprüchen
angegeben.
Ausführungsbeispiele der Erfindung werden nachfolgend anhand der Zeichnung erläutert. Es zeigt
F ι g. I ein Blockdiagi amm der wesentlichen Teile des
Netzwerk-Rechnersystems,
Fig. 2 ein Blockdiagramm des inneren Aufbaus der
Steuereinheit.
F i g. 3 den grundsätzlichen Aufbau eines Prozessors.
Das Rechnersystem in Fig. I besteht aus einer malrixformigen Anordnung 1 von einzelnen Prozessoren
2, auch Zellen genannt, die alle untereinander gleich aufgebaut sind. Diese Prozessoren 2 sind schachbrettmusterartig
einer von zwei Gruppen zugeordnet, die hier mit »schwarz« und »weiß« b/w. abgekürzt mit sund
W bezeichnet sind. Urn diese Einteilung deutlicher zu
machen, ist die abgekürzte Bezeichnung der Gruppen
entsprechend in die einzelnen Prozessoren eingetragen. Daraus wird erkennbar, daß jede schwarze Zelle nur
von weißen Nachbarn und jede Weiße Zelle nur von schwarzen Nachbarn umgeben ist. Die mit Pfeilen in
beiden Richtungen versehenen Linien zwischen den Zellen geben an, daß jede Zelle eine Datenverbindung
zu ihren »andersfarbigen« Nachbarzellen besitzt.
Die einzelnen Zellen oder Prozessoren 2 der Matrixanordnung 1 werden von der Steuereinheit 3
gesteuert. Dazu führt von dieser Steuereinheit eine Instruktionsleitung 4 zu allen schwarzen Zellen und eine
Instruktionsleitung 5 zu allen weißen Zellen. Über diese Instruktionsleitungen erhalten die schwarzen Zellen und
ίο ebenso die weißen Zellen jeweils parallel dieselben
»schwarzen« bzw. »weißen« Instruktionen. Im allgemeinen sind schwarze und weiße Instruktionen verschieden,
sie können aber auch gleich sein. Auch kann zu bestimmten Zeitpunkten nur eine von beiden Instruktionsleitungen
eine Instruktion führen. Die Instruktionsleitungen dienen ferner zur Übermittlung allgemeiner
»schwarzer« bzw. »weißer« Operanden bzw. Parametern. Es ist klar, daß jede Instruktionsleitung nur zur
vereinfachten Darstellung als eine Leitung gezeichnet ist und in Wirklichkeit zweckmäßig aus einer Mehrzahl
von panllelen Leitungen besteht, über die ein Instruktionswort bitparallel überm. ^n wird.
Jeder Prozessor 2 erzeugt mindt-birris ein Meldesignal,
das im vorliegenden Fall der Lösung von Differenzengleichungen als Konvergenzsignal dient.
Diese Meldesignale werden der Steuereinheit 3 über die Melde'eitungen 8 und 9 zugeführt, wobei jede der
beiden Meldeleitungen mit den Meldeausgängen aller Prozessoren der gleichen Gruppe verbunden ist. Die
Ausgänge der schwarzen Zellen sind also alle mit der Meldeleitung 8 und die Ausgänge d?r weißen Zellen
sind alle mit der Meldeleitung 9 verbunden.
Die Prozessoren 2 arbeiten alle synchron, indem der Arbeitstakt über eine gemeinsame Taktleitung (nicht
j5 dargestellt) von einer zentralen Stelle wie der
Steuereinheit gesteuert wird. Hierbei ist also die Unterteilung in zwei Gruppen nicht wirksam.
Die Prozessoren in der obersten Zeile der matrixförmigen
Anordnung 1 sind mit einem Pufferspeicher 6 verbunden, der als Zwischenspeicher für e'en Dr tenaustausch
zwischen dem Steuerrechner 7. der ein üblicher Universalcomputer ist, und den Prozessoren dient. Er ist
a'. Schieberegister aufgebaut, dessen Kapazität bzw.
Stellenzahl so groß ist, daß die Information für alle
4-, Prozessoren der obersten Matrixzeile gleichzeitig
aufgenommen werden kann. Der Datenaustausch zwischen diesem Pufferspeicher und den Prozessoren
der obersten Matrixzeile erfolgt dann voll parallel, während die Datenübertragung zwischen dem Pufferen
speicher 6 und dem Steuerrechncr 7 bit- oder wortseriell erfolgen kann.
Der Steuerrechner 7 liefert nicht nur die Daten bzw. nimmt die berechneten Daten auf, sondern erzeugt auch
Steuersignale bzw enthält zunächst das Programm. Die Verbindung mit dem Stcuerrechner und den Prozessoren
2 einschließlich dem Pufferspeicher 6 wird durch die Steuereinheit 3 hergestellt, deren interner Aufbau etwas
ausführlicher in F i g. 2 dargestellt ist.
Die Steuereinheit 3 enthält einen Programmspeicher
bo 21, der im allgemeinen alle Instruktionen enthält, die fü<·
die vollständig! Lösung eines Gleichungssystems notwendig sind. An den Programmspeicher sind drei
instruktions^Decödierer 22, 23 und 24 angeschlossen,
die die vom Programmspeicher ausgegebenen Instruk-
tiöhen ehtschlüsseln, wobei die Auswahl des Decodierers
durch die Instruktion selbst erfolgen kann. Der Decodierer 22 entschlüsselt die Instruktionen, die über
die Instruktionsleitung 4 den schwarzen Zellen bzw.
Prozessoren zugeleitet werden sollen, und der Decodierer 23 decodiert die Instruktionen Für die Instruktionsieitung
5 für die weißen Zellen. Diese Decodierer sind über eine Schaltmatrix 25 mit den Instruktionsleitungen
4 und 5 verbunden, die im wesentlichen von den Decodierern gesteuert wird und nicht nur die Ihstruktionswege,
sonderen auch Datenwege schaltet. Auch die Verbindung zum Steuerrechner 7, über die sowohl
Daten als auch Befehle übertragen werden, läuft über diese Schaltmatrix 25. Zu Beginn einer Berechnung wird
vom Steuerrechner 7 das Programm über die Schaltmatrix 25 in den Programmspeicher 21 übertragen. Danach
werden vom Steuerrechner die Anfangsdaten ggf. über dieselben Leitungen, über die Schaltmatrix in den
Pufferspeicher und von dort in die Prozessoren übertragen. Während der Berechnung entschlüsseln die
Decodierer 22 und 23 im allgemeinen gleichzeitig Instruktionen, die über di? ScheltrnBtrix 25 ?u den
Instruktionsleitungen 4 und 5 übertragen werden. Am Ende der Berechnung werden die Ergebnisse aus den
Prozessoren über den Puffer und die Schaltmatrix in den Steuerrechner 7 übertragen. Auch die Datenübertragung
zwischen Pufferspeicher und den Prozessoren der obersten Matrixzeile erfolgt über diese Schaltmatrix.
Die Decodierer 22 und 23 decodieren im allgemeinen gleichzeitig jeweils eine Instruktion, die für beide
Decodierer manchmal auch die gleiche sein kann, oder es arbeitet nur der dritte Decodierer 24, der hier mit
zentraler Decodierer bezeichnet sei. Dieser steuert die Verarbeitungseinheit 26, in der die auf den Meldeleitungen
8 und 9 von den Prozessoren übertragenen Konvergenzsignale gespeichert und verknüpft werden,
sowie die Daten-Ein- und Ausgabe für den Pufferspeicher.
Für die Prozessoren 2 können handelsübliche, unter dem Namen Mikroprozessor bekannte Bausteine
verwendet werden, wobei jedoch nur relativ einfache Funktionen benötigt werden, so daß auch entsprechend
preiswerte Bausteine verwendet werden können. Der grundsätzliche Aufbau der hier benötigten Prozessoren
ist in Fig. 3 stark schematisiert dargestellt. Danach ist
ein Akkumulator 31 vorhanden, dessen Ausgang einmal aus dem Prozessor herausgeführt wird, um benachbarten
Prozessoren den Datenzugriff zu gestatten, und der andererseits mit einem Speicher 32 für eine kleine
Anzahl Worte verbunden ist Ferner ist eine arithmetische und logische Einheit 33 vorhanden, so daß der
Prozessor Additionen. Subtraktionen, Multiplikationen und ggf. logische Verknüpfungen durchführen kann.
Zum Akkumulator führen ferner die Ausgänge von den Akkumulatoren von den benachbarten Prozessoren,
was hier durch nur zwei Eingänge schematisch angedeutet wird. Diese Leitungen können auch direkt in
den Speicher 32 führen. Die Steuerung der einzelnen Teile erfolgt durch das Instruktionsregister 34, das die
Übernahme der Daten in den Akkumulator 31 oder den Speicher 32 sowie die in der Einheit 33 durchzuführende
Verknüpfung bestimmt Dieses Instruktionsregister 34 erhält seine Information von der Instruktionsleitung 4
oder 5, je nach dem, zu welcher Gruppe der Betreffende
Prozessor gehört Ferner ist noch ein vom Akkumulator 31 gespeister Speicher 35 für das Konvergenzkriterium
vorhanden, der je nach zugehöriger Gruppe des Prozessors an die Meideleitung 8 oder 9 angeschlossen
ist.
Die Arbeitsweise des beschriebenen Netzwerk^Rech* nersystems wird nun anhand eines praktischen Beispiels beschrieben; das die Lösung von Difiefehzengleichungen betrifft, die aus einer eiiptischen Randwertaufgabe gewonnen werden* Zunächst werden das Programm zur Lösung dieses Problems Und sämtliche benötigten Daten im Stellerrechner 7 bereitgestellt. Die Steuereinheit 3 schreibt nun zunächst dieses Programm über die Schaltmatrix 25 in den Programmspeicher 21 ein. Die folgenden Funktionen werden dann von diesem eingeschriebenen Programm veranlaßt.
Die Arbeitsweise des beschriebenen Netzwerk^Rech* nersystems wird nun anhand eines praktischen Beispiels beschrieben; das die Lösung von Difiefehzengleichungen betrifft, die aus einer eiiptischen Randwertaufgabe gewonnen werden* Zunächst werden das Programm zur Lösung dieses Problems Und sämtliche benötigten Daten im Stellerrechner 7 bereitgestellt. Die Steuereinheit 3 schreibt nun zunächst dieses Programm über die Schaltmatrix 25 in den Programmspeicher 21 ein. Die folgenden Funktionen werden dann von diesem eingeschriebenen Programm veranlaßt.
Im beschriebenen Beispiel werden zunächst jedem Prozessor bzw. jeder Zelle c,>
fünf Koeffizienten L,j, /?,y,
T,j, B,j, Ci1 und ein Anfangszusland Z,j übertragen; dabei
hptpirhnpt γι,Αιρ 7p\\p in Her i-tpn 7e\\p und /-ten Snaltp
-y ... _ - .. -„■ j r
der matrixförmigen Anordnung. Zum Übertragen dieser Daten wird zunächst der Pufferspeicher 6 von dem
Steuerrechner 7 über die Schaltmatrix 25 seriell gefüllt. Dann wird eine Instruktion auf beiden Instruktionsleitungen
4 und 5 gleichzeitig übertragen, die bewirkt, daß alle Zellen den Inhalt des Akkumulators ihres oberen
Nachbarn übernehmen. Durch wiederholtes Füllen des Pufferspeichers 6 und anschließendes Übertragen des
Inhaltes der Akkumulatoren 31 des jeweils oberen benachbarten Prozessors 2 füllen sich die Akkumulatoren
aller Prozessoren nacheinander von oben nach Unten. Danach übergibt jeder Prozessor 2 den Inhalt
seines Akkumulators 31 an seinpn Speicher 32. Auf diese
Weise lassen sich die vorher erwähnten Koeffizienten, und zwar zunächst alle Ly, danach alle R,j usw. in der
zugehörigen Zelle cy abspeichern, wobei diese Koeffizienten
nur in entsprechender Reihenfolge in den Pufferspeicher gebracht werden müssen. Für das
angegebene Rechenproblem sind noch weitere Daten notwendig, und zwar die sogenannten »Relaxationsparameter«
fi,, in,. C)2,
d. h. für jeden Iterationsschritt ein anderes Parameterpaar. Diese Parameter werden ebenfalls vom Steuerrechner
7 geliefert, und sie könnten entsprechend nach jedem Iterationsschritt abgerufen werden. Zweckmäßiger
ist es jedoch, diese Parameter nach der Eingabe aller Koeffizienten ebenfalls in der entsprechenden Reihenfolge
in den Pufferspeicher 6 einzuschreiben jedoch noch nicht an die Prozessoren der obersten Matrixzeile
weiterzugeben. Während der Eingabe steuert der dritte, der zentrale Decodierer 24, das Füllen und Leeren des
Puffers, dagegen entschlüsseln die beiden ersten Decodierer 22 und 23 die Instruktionen, die das
Übernehmen der Daten aus dem Akkumulator des jeweils oberen Nachbarn steuern. In diesem Fall
entschlüsseln beide Decodierer dieselbe Instruktion.
Nun beginnt der Iterationsteil des Programms. Jeder
Iterationsschritt besteht aus zwei Halbschritten. Im ersten Halbschritt des /r-ten Iterationsschrittes berechnen
alle schwarzen Zeiten nach der Vorschrift
;-tj +
u + 7};Zfi+I + BijZij-T. - Z1-, + G,7]
ihrem Zustand und den Zuständen der weißen Nachbarzellen einen neuen Zustand, während alle
weißen Zellen das Konvergenzkrilerium
- TuZ~u
- f < 0
über|tyfifen und das Ergebnis als Meldesignal über die
Meldeleiturig 9 an die Verarbeitungseinheit 26 der
Steuereinheit 3 übertragen. Im anschließenden zweiten
Halbschritt berechnen alle weißen Zellen aus ihrem Zustand und den Zuständen der benachbarten weißen
Zellen nach der obenangegebenen Vorschrift einen neuen Zustand, wobei nun aber der entsprechend
andere Parameter Ϊ dieses /r-ten Iteralionsschriltes
verwendet wird. Gleichzeitig überprüfen alle schwarzen Zellen das angegebene Konvergenzkriterium, und
melden das Ergebnis über die Meldeleitung 8 an die
H)
Ii Zeile bestehen, die parallel an den Pufferspeicher
angeschlossen ist« so daß zwar ein sehr großer
Pufferspeicher notwendig ist, jedoch die DaIeH1Em' und
Ausgäbe am schnellsten erfolgt, Ein äridöfes Extrem ist
eine Matrix aus nur einer Spalte, wobei nur der oberste
Prozessor an den Pufferspeicher angeschlossen ist und alle in diese Spalte einzugebenden bzw. aus dieser
Spalte auszulesenden Daten über diesen obersten Prozessor nacheinander transportiert werden müssen.
Eine andere Form ist die Erweiterung auf eine dreidimensionale Matrix. Dabei sind die einzelnen
Wis
lairiü
Parameter zweckmäßig in der richtigen Reihenfolge im Pufferspeicher 6. so daß der benötigte Parameter
gerade am Serienausgang des Pufferspeichers steht, von wo aus er über die Schaltmatrix 25 und die
entsprechende Instruktionsleitung 4 oder 5 an alle Zellen dieser Gruppe gelangt. Die Toleranzschwelle f
beim Konvergenzkriteriuni, die für alle Iterationsschril- 2>
te konstant ist, befindet sich im Programmspeicher 21 und wird ebenfalls über die Instruktionsleitungen 4 oder
5 an die Zellen übertragen.
Bei der Prüfung des Konvergenzkriteriums wird zwec mäßig das Vorzeichen der linken Seite der
angegebenen Gleichung verwendet, indem das dieses Vorzeichen angebende Bit über die entsprechende
Meldeleitung 8 oder 9 zur Steuereinheit 3 übertragen wird. Insbesondere auch wegen der großen Anzahl von
Prozessoren, die jeweils an eine Meldeleitung ange- j->
schlossen sind, kann es zweckmäßig sein, die Meldeleitung durch die Prozessoren nacheinander hindurchzuführen
und durch Verknüpfungsglieder das jeweils gerade berechnete Vorzeichenbit mit der ankommenden
Konvergenzleitung zu einem neuen Konvergenzbit zu verknüpfen, das dann zun nächsten Prozessor
weitergeleitet und vom letzten schließlich der Steuereinheit zugeführt wird.
Die einzelnen Iterationsschritte mit den abwechselnden ersten und zweiten Halbschritten folgen so lange, 4-5
bis die vom zentralen Decodierer 24 gesteuerte Verarbeitungseinheit 26 mit der Konvergenzlogik
anzeigt, daß in zwei aufeinanderfolgenden Halbschritten Konvergenz aufgetreten ist. In diesem Falle stellen
die zuletzt berechneten Zustandswerte aller Prozesso- to ren, die noch in deren Akkumulatoren gespeichert sein
können, die gesuchte Lösung dar, und die Iteration ist beendet Die Übertragung der Zustandswerte in den
Steuerrechner geht in umgekehrter Richtung wie bei der Eingabe schrittweise aus allen Prozessoren nach «
oben über den Pufferspeicher 6 und die Schaltmatrix 25 in der Steuereinheit 3 vor sich.
Die Form der in F i g. 1 dargestellten matrixförmigen Anordnung 1 ist nicht näher festgelegt Eine etwa
quadratische Anordnung wird in vielen Fällen zweckmäßig sein, da sie den besten Kompromiß zwischen
elektronischem Aufwand und Zeitaufwand für die Dateneingabe darstellen wird. In manchen Anwendungsfällen
können aber auch andere Formen zweckmäßig sein. Im Extremfall kann die Matrix aus nur einer
sterartig den beiden Gruppen zugeordnet, und diese Zuordnung wechselt von Ebene zu Ebene für jeden
Matrixpunkt der Ebene. Auf diese Weise bleibt das erfindungsgemäße Prinzip erhalten, ebenso wie bei der
eindimensionalen Matrix, daß nämlich jedem Prozessor nur Prozessoren der anderen Gruppe benachbart sind.
Ebenso sind weiterhin alle Prozessoren einer Gruppe, gleich in welcher Ebene sie liegen, mit der dieser
Gruppe zugeordneten Instruklionsleitung und Meldeleitung
verbunden. Bei einer dreidimensionalen Matrix kann der Pufferspeiche so ausgelegt und an die Matrix
angeschlossen sein, daß allen Prozessoren in einer Oberfläche der Matrix parallel Daten zugeführt oder
entnommen werden, so daß der Pufferspeicher damit zweidimensional angeordnet ist.wobei jedoch trotzdem
noch ein rein serieller Eingang bzw. Ausgang vorhanden sein kann. Eine andere Möglichkeit ist, nur eine Kante
der Matrix an einen eindimensionalen Pufferspeicher, wie er in dem vorstehenden Ausführungsbeispiel
beschrieben wurde, anzuschließen, danach in beschriebener Weise durch fortgesetztes Weilerschicben in
einer Richtung den Prozessoren in einer Ebene Daten zuzuführen bzw. zu entnehmen, und dann durch einen
Übertragungsschritt in dazu senkrechter Richtung der nächsten Ebene Daten zuzuführen, um danach wieder
die Prozessoren in der obersten Ebene der Matrixserie zu füllen bzw. zu leeren usw. Dadurch dauert die
Dateneingabe zwar länger, jedoch ist ein kleinerer Pufferspeicher dafür nötig.
Schließlich ist es möglich, nicht für jede Unbekannte des Differenzengleichungssystems einen Prozessor
vorzusehen, sondern jeweils eine feste Anzahl von Unbekannten durch jeweils einen Prozessor berechnen
zu lassen. Dabei besteht dann jeder Schritt des Iterationsverfahrens aus einer größeren Anzahl von
einzelnen Rechenschritten, und vor allem muß dann jeder Prozessor eine größere Anzahl von Koeffizienten
speichern können, nämlich für jede Unbekannte im allgemeinen verschiedene. Die Durchführung der
gesamten Iteration dauert dann um ein entsprechendes Vielfaches länger, jedoch wird nur ein Bruchteil der
Prozessoren wie bei dem Ausführungsbeispiel benötigt. Das Prinzip, daß alle Prozessoren durch die Zuordnung
zu zwei Gruppen abwechselnd eine Iterationsberechnung und eine Konvergenzberechnung durchführen, so
daß sie optimal ausgenutzt werden, bleibt erhalten.
Hierzu 3 Blatt Zeichnungen
Claims (11)
1. Rechnersystem mit einem Steuerrechner und einer Vielzahl von untereinander gleich aufgebauten,
matrixförmig angeordneten Prozessoren, von denen jeder über Datenaustauschleitungen mit den unmittelbar
benachbarten Prozessoren in der Matrix und über Instruktionsleitungen und Meldeleitungen mit
dem Steuerrechner verbunden ist, wobei der Steuerrechner wenigstens mit einem Teil der
Prozessoren über Datenaustauschleitungen verbunden ist, dadurch gekennzeichnet, daß zur
Lösung von Differenzengleichungen mit einer Anzahl von Unbekannten für die numerische Lösung
von partiellen Differentialgleichungen nach der SOR-Methode für jede Unbekannte ein Prozessor
(2) vorgesehen ist, daß die schachbrettmusterartig in zwei Gruppen (w, s) eingeteilten Prozessoren je
Gruppe über gemeinsame Instruktionsleitungen (4, 5) und Meldeleitungen (8, 9) mit dem Steuerrechner
(7) verbunden sind, so daß jeweils einem Prozessor eier einen Gruppe (w bzw. sj nur Prozessoren der
anderen Gruppe (sbzw. wj unmittelbar benachbart
sind, und daß bei der Durchführung der Lösung der Differenzengleichungen die beiden Gruppen von
Prozessoren jeweils abwechselnd entsprechend gleiche Instruktionen bzw.! istruktionsfolgen erhalten.
2. Rechnersystem nach Anspruch 1, dadurch gekennzeichnet, daß zwischen dem Steuerrechner
(7) und den Prozessoren (2) eine Steuereinheit (3) mit einem Pr.grammspeicher (21) geschaltet ist, daß in
der Steuereinheit (3^ an de" Programmspeicher (21)
zwei Instruktions-Derodierer (22, 23) angeschlossen S5
sind, und jeder Decodierer (?■?, 23) die Instruktionsleitungen (4, 5) für eine Gruppe (w. s) von
Prozessoren (2) speist.
3. Rechnersystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß ein Pufferspeicher (6)
vorgesehen ist, der eine Kapazität für die Information einer Rand-Matrixzeile von Prozessoren (2)
besitzt und an den diese Rand-Matrixzeile von Prozessoren parallel angeschlossen ist, und daß -der
Pufferspeicher (6) außerdem mit dem Steuerrechner 4I
(7) verbunden ist.
4. Rechnersyslem nach Anspruch 3, dadurch gekennzeichnet, daß der Pufferspeicher (6) ein
Schieberegister ist, der die Information für eine Rand-Matrixzeile von Prozessoren (2) in Serie vom
Steuerrechner (7) erhält bzw. an diesen abgibt und parallel an die Prozessoren (2) abgibt bzw. von
diesen erhält.
5. Rechnersystem nach Anspruch 3 oder 4. dadurch gekennzeichnet, daß zur Übertragung von Y,
Daten zwischen den weiteren Prozessoren (2) der Matrix und dem Pufferspeicher (6) diese Daten
durch eine entsprechende Folge von Obernahmeinstruktionen an alle Prozessoren (2) von diesen
weiteren Prozessoren schrittweise in die Prozessofen der Rand-Matrixzeile und dann in den
Pufferspeicher (6) oder in umgekehrter Richtung übertragen werden.
6. Rechnersystem nach Anspruch 2 oder einem der
folgenden, dadurch gekennzeichnet, daß die Steuereinheit (3) eine von den Decodierern (22, 23)
gesteuerte Schaltmatrix (25) enthält, die die Datenoder InstrüktionsWege zwischen Steilerrechfier (7),
Programmspeicher (21), Pufferspeicher (6) und Prozessoren (2) sowie den jeweils einer Gruppe von
Prozessoren gemeinsamen Instruktionsleitungen (4, 5) und dem entsprechenden Decodierer (22, 23)
steuert
7. Rechnersystem nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß jeder
Prozessor (2) mindestens 1 Meldesignal abgibt, das auf jeweils einer Gruppe (w, s) von Prozessoren (2)
gemeinsamen Meldcleitung (8, 9) der Steuereinheit (3) zugeführt wird.
8. Rechnersystem nach Anspruch 7, dadurch gekennzeichnet, daß in der Steuereinheit (3) an den
Programmspeicher (21) ein dritter Instruktionsdecodierer (24) angeschlossen ist, der eine Verarbeitungseinheit (26) für die Meldesignale steuert.
9. Rechnersystem nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß die Matrix
(1) nur eine Zeile oder Spalte enthält
10. Rechnersystem nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß die
Matrix (1) dreidimensional ist und die Zuordnung der Prozessoren (2) zu den beiden Gruppen für gleiche
Punkte in benachbarten Matrixebenen abwechselnd ist.
11. Rechnersystem nach Anspruch 1 oder einem
der folgenden, dadurch gekennzeichnet, daß jeder Prozessor (2) eine Speicherkapazität für die bei der
Ausführung eines Rechenschrittes für mehrere Unbekannte erforderlichen Koeffizienten besitzt
und nur für jeweils eine entsprechende konstante Anzahl von Unbekannten ein Prozessor (2) vorgesehen
ist.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19752503087 DE2503087C3 (de) | 1975-01-25 | 1975-01-25 | Netzwerk-Rechnersystem |
US05/649,556 US4065808A (en) | 1975-01-25 | 1976-01-15 | Network computer system |
GB2483/76A GB1537504A (en) | 1975-01-25 | 1976-01-22 | Network computer system |
FR7601841A FR2298831A1 (fr) | 1975-01-25 | 1976-01-23 | Systeme a reseau de calculateurs |
JP51006388A JPS5819098B2 (ja) | 1975-01-25 | 1976-01-24 | 電子計算機方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19752503087 DE2503087C3 (de) | 1975-01-25 | 1975-01-25 | Netzwerk-Rechnersystem |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2503087A1 DE2503087A1 (de) | 1976-07-29 |
DE2503087B2 DE2503087B2 (de) | 1979-05-23 |
DE2503087C3 true DE2503087C3 (de) | 1980-02-07 |
Family
ID=5937326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19752503087 Expired DE2503087C3 (de) | 1975-01-25 | 1975-01-25 | Netzwerk-Rechnersystem |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE2503087C3 (de) |
-
1975
- 1975-01-25 DE DE19752503087 patent/DE2503087C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2503087B2 (de) | 1979-05-23 |
DE2503087A1 (de) | 1976-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2819571C2 (de) | ||
DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
DE1178623C2 (de) | Programmgesteuerte datenverarbeitende Maschine | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
CH620542A5 (de) | ||
DE2360505A1 (de) | Datenverarbeitungsanlage mit einer anordnung zur uebertragung von daten zwischen zwei funktionseinheiten | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE1524239A1 (de) | Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten | |
DE1524209B2 (de) | Programmgesteuerte datenverarbeitungsanlage | |
DE1474062B2 (de) | Datenverarbeitungsanlage mit einer anzahl von pufferspeichern | |
DE1914560C3 (de) | Schaltungsanordnung zur Verschiebung eines Datenwortes innerhalb eines Rechenelementen-Feldes | |
DE3727017C2 (de) | ||
DE3782540T2 (de) | Zeichenmusterumsetzschaltung. | |
DE2353635A1 (de) | Datenverarbeitungssystem und verfahren zur datenverarbeitung | |
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE3545937A1 (de) | Mikroprozessor | |
DE2136210A1 (de) | Zentraleinheit fur eine EDV-Anlage | |
DE2745204A1 (de) | Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage | |
DE2461651B2 (de) | Zählvorrichtung zum Zählen von Mustern | |
DE2503087C3 (de) | Netzwerk-Rechnersystem | |
DE1916377C3 (de) | ||
DE2233164B2 (de) | Schaltungsanordnung zur uebertragung von aufeinanderfolgenden bitstellen zwischen zwei registern | |
DE2017879C3 (de) | Speicheranordnung mit freiem Zugriff | |
DE2426253B2 (de) | Vorrichtung zum ziehen der quadratwurzel aus einer binaeren zahl | |
DE3039306A1 (de) | System zum empfang von seriellen daten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |