-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft eine Computerarchitektur mit Parallelverarbeitung.
-
HINTERGRUND DER ERFINDUNG
-
Die
Computer-Verarbeitungsgeschwindigkeit und die Effektivität kann sowohl
bei skalaren als auch Vektormaschinen durch die Verwendung von Multiprozessortechniken
erhöht
werden. Durch Erhöhen
der Anzahl von Prozessoren und deren paralleles Betreiben kann in
kürzerer
Zeit mehr Arbeit erledigt werden.
-
Bei
den ersten Versuchen zur Erhöhung
der Systemgeschwindigkeit und der Effektivität wurde noch eine begrenzte
Anzahl von parallel laufenden Prozessoren verwendet. Ein Beispiel
für eine
parallel arbeitende Vektormaschine mit zwei Prozessoren ist etwa
im US-Patent Nr. 4 636 942 beschrieben, das am 13. Januar 1987 an
Chen et al. ausgegeben wurde. Ein weiterer Aspekt der Zwei-Prozessor-Maschine
des '942-Patents von
Chen ist im US-Patent Nr. 4 661 900 beschrieben, das am 28. April
1987 an Chen et al. ausgegeben wurde. Eine parallel arbeitende Vektormaschine
mit vier Prozessoren ist im US-Patent Nr. 4 745 545, das am 17. Mai
1988 an Schiffleger ausgegeben wurde, und im US-Patent Nr. 4 754
398 beschrieben, das am 28. Juni 1988 an Pribnow ausgegeben wurde.
Alle diese Patente gehören
der Cray Research Inc., der Anmelderin der vorliegenden Erfindung.
-
Wenn
die Anzahl der Prozessoren in einem Rechensystem zunimmt, ist es
nicht mehr möglich,
daß alle
Prozessoren direkt verbunden sind und eng zusammenarbeiten. Als
Folge davon verschiebt sich das Programmierparadigma von Parallelverarbeitung
zu Simultanverarbeitung. In einem Simultancomputer arbeitet eine
große
Anzahl von Prozessoren unabhängig
an Teilen eines gleichzeitig ablaufenden Programms. Die Prozessoren
müssen
miteinander zwar immer noch in Verbindung treten, um Daten zu koordinieren
und auszutauschen, sie können
jedoch unabhängig
an diesen Daten arbeiten. In Simultancomputern wird die Kommunikationswirksamkeit
zu einem kritischen Parameter. Die Kommunikationsverzögerung muß klein
sein, gleichzeitig muß aber
die Packungsdichte optimiert werden, um das Ausmaß an Verbindungen
zwischen Prozessoren zu begrenzen; außerdem ist es in manchen Fällen vorteilhaft,
eine deterministische Kommunikationsverzögerung sicherzustellen.
-
In
Reaktion auf das Erfordernis des Ausgleichens der Verbindungsdichte
gegen die Kommunikationsverzögerung
wurde eine Vielzahl von Netzwerktopologien entwickelt. Bei den meisten
dieser Netzwerktopologien werden die Verbindungen zwischen den Prozessoren
auf eine relativ kleine Anzahl von Nachbarprozessoren beschränkt. Eine
große
Klasse dieser Topologien kann entweder als k-n-Würfel oder als Netzwerke wie Ringe,
Gitter, Tori, binäre
n-Würfel
und Omega-Netzwerke bezeichnet werden, die zu k-n-Würfel isomorph sind.
Die Prozessoren in dieser Klasse von Topologien kommunizieren mittels eines
Nachrichtenaustauschprotokolls, bei dem Informationen für einen
entfernten Prozessor in Pakete gepackt und über die dazwischenliegenden
Prozessoren zum Zielprozessor geleitet werden.
-
Die
Kommunikationsverzögerung
in einem Netzwerk wie einem k-n-Würfel hängt vor allem von der Wahl
des Leitwegalgorithmus ab. Von den Leitwegalgorithmen gibt es zwei
Kategorien; die Speichern-und-Befördern-Leitweglenkung und die
Wurmloch-Leitweglenkung. Bei der Speichern-und-Befördern-Leitweglenkung wird
die von einem Prozessor zu einem anderen Prozessor gesendete Nachricht
in jedem dazwischenliegenden Prozessor aufgenommen und gespeichert,
bevor sie zum nächsten
Prozessor gesendet wird. Das hat zur Folge, daß jeder Prozessor eine ziemlich
große
Pufferkapazität
haben muß,
um die Anzahl von Nachrichten speichern zu können, die über den Prozessor laufen. Da
eine Nachricht in ihrer Gesamtheit aufgenommen worden sein muß, bevor
sie weitergeleitet wird, fuhrt die Speichern-und-Befördern-Vorgehensweise
bei der Leitweglenkung zu Kommunikationsverzögerungen, die als Funktion
der Anzahl von Knoten im System dramatisch ansteigen. Andererseits
ist eine solche Vorgehensweise für
die Anwendung von blockadefreien Algorithmen geeignet, bei denen
eine Blockade durch Verhindern oder Reduzieren des Auftretens von
Blockaden bei der Nachrichtenübermittlung
verhindert wird.
-
Bei
der Wurmloch-Leitweglenkung wird eine Nachricht in eine Anzahl von
kleinen Nachrichtenpaketen aufgeteilt, die Flits genannt werden.
Ein Prozessor nimmt das Header-Flit
auf und stellt seinen Zielort fest. Das Header-Flit wird dann zum
nächsten
Prozessor geschickt, der vom Leitwegalgorithmus angegeben wird.
Die Zwischenflits werden schnell nach ihrer Ankunft an den gleichen
Prozessor weitergeleitet. Dadurch kann eine Nachricht schnell durch
das System laufen. Da jedoch die Zwischenflits keine Leitweginformationen
enthalten, wird der Kanal zum nächsten
Prozessor von der Nachricht belegt, bis die vollständige Nachricht übertragen
ist. Die Folge ist, daß andere
Nachrichten, die den gleichen Kanal auch benötigen, blockiert werden. Wenn
viele Nachrichten blockiert sind, kann das ganze System lahmgelegt
werden.
-
Zum
Lösen des
Problems des Blockierens bei der Wurmloch-Leitweglenkung wurden
einige Vorschläge
vorgebracht. Bei der virtuell abschneidenden Leitweglenkung werden
blockierte Nachrichten vom Netzwerk genommen und in Pufferspeichern
in einem der Zwischenprozessoren gespeichert. In virtuell abschneidenden Netzwerken
kann daher das Blockieren durch einen der vielen Blockiervermeidungsalgorithmen
für die
Speichern-und-Befördern-Leitweglenkung
vermieden werden. Die virtuell abschneidende Leitweglenkung vermeidet
Blockaden durch zusätzlich
erforderliche Hardware, die zum Puffern der blockierten Nachrichten
benötigt wird.
-
In "Adaptive, low latency,
deadlock-free packet routing for networks of prozessors", veröffentlicht
von J. Yantchev und C. R. Jesshope in IEEE Proceedings, Bd. 136,
Teil E, Nr. 3, Mai 1989 werden zwei alternative Vorschläge zum Vermeiden
des Blockierens in Kommunikationsnetzwerken mit Wurmloch-Leitweglenkung
beschrieben. Yant chev et al. geben ein Verfahren zum Vermeiden des
Blockierens in der Wurmloch-Leitweglenkung
an, bei dem das Header-Flit, wenn es blockiert wird, zum Quellenknoten
zurückkehrt.
Der Quellenknoten wartet dann eine nicht-deterministische Verzögerungszeit
ab, bevor er die Nachricht erneut absendet. Yantchev at al. weisen
darauf hin, daß eine
solche Vorgehensweise hinsichtlich der Kommunikationskosten sehr aufwendig
werden kann, und daß die
Kosten mit zunehmendem Netzwerkdurchmesser überproportional anwachsen.
-
Yantchev
et al. schlagen auch einen verbesserten Wurmloch-Leitwegalgorithmus
vor, bei dem Zyklen in einem Netzwerkkanal-Abhängigkeitsgraphen durch Beschränken der
Leitwege im Netzwerk auf Nachrichtenübertragungen in einer Reihe
von virtuellen Netzwerken, die über
das vorhandene Kommunikationsnetzwerk gelegt werden, beseitigt werden.
Bei diesem Verfahren nach Yantchev wird das physikalische Verbindungsmuster
entsprechend den für
den Leitweg des Nachrichtenpakets erforderlichen Richtungen in Klassen aufgeteilt.
Bei einem zweidimensionalen Array von Prozessoren entsprechen diese
Klassen (+X, +Y), (–X,
+Y), (+X, –Y)
und (–X, –Y). Jede
Klasse legt ein bestimmtes virtuellen Netzwerk fest; die Kombination
von zwei der virtuellen Netzwerke (wie (+X, +Y) und (–X, –Y)) ergibt
zusammen mit einem geeigneten blockadefreien Multiplexschema ein
vollständig
verbundenes Netzwerk, das blockadefrei ist. Yantchev at al. geben
an, daß das zweidimensionale
Schema zu einem n-dimensionalen Netzwerk erweitert werden kann,
in dem ein virtuelles Netzwerk für
zunehmende Koordinaten verwendet wird, während ein zweites Netzwerk
für abnehmende
Koordinaten verwendet wird. Das Verfahren mit den virtuellen Netzwerken
kann auch auf die adaptive Leitweglenkung erweitert werden.
-
Das
Verfahren von Yantchev et al. kann gut zum Vermeiden von Blockaden
in Gitternetzwerken verwendet werden. Die Vorgehensweise nach Yantchev
ist jedoch nicht geeignet für
Netzwerke mit gewundenen Kanälen,
etwa Tori. Gewundene Kanäle
erhöhen
die Anzahl von Zyklen in einem Netzwerk. Um diese Zyklen zu beseitigen,
schlagen Yantchev et al. vor, daß ein toroidales Netzwerk in
ein vollständig
abgewickeltes Torus-Äquivalent
zerlegt wird, das aus zwei oder mehr Subarrays besteht. Die Nachrichtenübermittlung
ist dann auf Übertragungen
in einem Subarray beschränkt.
-
Eine
solche Vorgehensweise bricht zwar die Zyklen auf, tut dies aber
mit einem verhältnismäßig hohen Aufwand.
Unter Yantchev muß jedem
Knoten eine große
Anzahl von virtuellen Kanälen
zugeordnet werden (acht für
ein abgewickeltes zweidimensionales Toroid), um alle möglichen
Zyklen aufzubrechen. Mit ansteigender Zahl von Dimensionen steigt
auch die Zahl von virtuellen Kanälen
an, die zur blockadefreien Leitweglenkung erforderlich sind.
-
Dimensionsfolge-
oder E-Cube-Leitweglenkung ist eine andere Vorgehensweise für eine blockadefreie
Wurmloch-Leitweglenkung. Bei der Dimensionsfolge-Leitweglenkung
wird eine Folge von Dimensionen gewählt, und der ganze Datenverkehr
läuft in
dieser Reihenfolge ab. Das heißt,
daß zuerst
die ganze Leitweglenkung in einer Dimension abgewickelt wird, bevor
eine Leitweglenkung in einer anderen Dimension möglich ist. Dieses starre Leitwegschema
ergibt dadurch eine blockadefreie Übertragung, daß die Arten
von möglichen Wendungen
bei der Nachrichtenübertragung
begrenzt werden (d.h. Zyklen im azyklischen Gitter beseitigt werden).
Die Dimensionsfolge-Leitweglenkung ist beschrieben in "Deadlock-free Message
Routing in Multiprocessor Interconnection Networks", veröffentlicht
von William J. Dally und Charles L. Seitz in IEEE Transactions on Computers,
Bd. C-36, Nr. 5, Mai 1987.
-
Die
Dimensionsfolge-Leitweglenkung stellt ein deterministisches Leitwegprotokoll
dar, da es jedoch dabei nur einen einzigen Weg zwischen einem Quellen-
und einem Zielknoten gibt, ist dieses Verfahren in Gitternetzwerken
nicht fehlertolerant. In toroidalen Netzwerken ist die Situation
nicht viel besser. Ein Toroid besitzt 2n mögliche Wege,
alle Wege ändern
jedoch an den gleichen n–1
Knoten die Richtung. Deswegen kann ein Fehler in einem Knoten die
Kommunikation zwischen einem oder mehreren Knotenpaaren abschneiden.
-
Die
europäische
Patentanmeldung
EP
0 570 729 A2 der International Business Machines Corporation, die
am 24. November 1993 veröffentlicht
und am 27. April 1993 mit einem Prioritätsdatum vom 22. Mai 1992 eingereicht
wurde, beschreibt ein massiv paralleles Computersystem mit Verarbeitungselementknoten
und einem Hostsystem. Die Knoten sind entweder über einen Hyperwürfel, einen
modifizierten Hyperwürfel,
einen Ring oder einen Ring in einer Ringnetzwerktopologie miteinander
verbunden. Ein Knoten umfaßt
acht Prozessoren, die mittels einer Topologie auf Hyperwürfelbasis
verbunden sind, auf einem Chip mit lokalen Speichern. Die Speicherorganisation
ist derart, daß durch
Programmierung ein Prozessor-Speicherelement vollständig lokal
ist oder in lokale und gemeinsame globale Bereiche aufgeteilt wird.
-
Jedes
der beschriebenen Kommunikationsnetzwerke ist bei der Anwendung
auf Netzwerktopologien mit Hunderten oder Tausenden von Knoten nur
eingeschränkt
brauchbar. Es besteht daher das Bedürfnis nach einem Kommunikationsnetzwerk,
das die erwähnten
Probleme auf eine effiziente Art löst, ohne zu große Anforderungen
an die Hardware zu stellen, um eine geringe Kommunikationsverzögerung zu
erhalten.
-
Nach
einem Aspekt umfaßt
die vorliegende Erfindung ein Verfahren zum Verhindern des gegenseitigen
Blockierens in einem Multiprozessor-Computersystem mit einer Anzahl
von Verarbeitungselementknoten, die mittels eines Verbindungsnetzwerks
in einer n-dimensionalen Topologie miteinander verbunden sind, wobei
das Netzwerk physikalische Kommunikationswege aufweist, die jeden
der Verarbeitungselementknoten mit benachbarten Verarbeitungselementknoten
verbinden, mit folgenden Schritten: Festlegen von zwei virtuellen Kanälen für jede der
n Dimensionen, wobei jeder der virtuellen Kanäle dem jeweiligen physikalischen
Kommunikationsweg zugeordnete virtuelle Kanalpuffer aufweist, die
Nachrichten speichern können,
die über
die physikalischen Kommunikationswege zwischen den Verarbeitungselementknoten übermittelt
werden; Festlegen einer Grenzlinie in jedem der virtuellen Kanäle, wobei
die Grenzlinie für
eine Kommunikationsverbindung zwischen zwei virtuellen Kanalpuffern
steht, die einen zyklischen Weg im zugehöri gen virtuellen Kanal schließen, wobei
beim Überqueren
der Grenzlinie durch Nachrichten eine zyklische Pufferabhängigkeit
auftreten kann, die ein Blockieren verursacht; Zuordnen der Nachrichten
zu den virtuellen Kanalpuffern in einem der beiden virtuellen Kanäle, wenn
die Nachrichten zwischen den Verarbeitungselementknoten in einer
der n Dimensionen übertragen
werden, ohne eine Grenzlinie zu überqueren;
und Zuordnen der Nachrichten so, daß Nachrichten in dem zugehörigen virtuellen
Kanal keine Grenzlinie überqueren
können,
sondern statt dessen den anderen virtuellen Kanal zum Überqueren
der Grenzlinie nutzen müssen,
um dadurch ein gegenseitiges Blockieren zu verhindern.
-
Gemäß einem
anderen Aspekt umfaßt
die vorliegende Erfindung ein Multiprozessor-Computersystem mit
einer Anzahl von Verarbeitungselementknoten; einem Verbindungsnetzwerk
zum Verbinden der Verarbeitungselementknoten in einer n-dimensionalen
Topologie, wobei das Netzwerk physikalische Kommunikationswege,
die jeden der Verarbeitungselementknoten mit benachbarten Verarbeitungselementknoten
verbinden, und für
jede der n Dimensionen zwei virtuelle Kanäle enthält, wobei jeder der virtuellen
Kanäle
einen dem jeweiligen physikalischen Kommunikationsweg zugeordnete
virtuelle Kanalpuffer aufweist, die Nachrichten speichern können, die über die
physikalischen Kommunikationswege zwischen den Verarbeitungselementknoten übermittelt
werden; und mit einer Nachschlagetabelle zum Speichern von Informationen,
die eine festgelegte Grenzlinie in jedem der virtuellen Kanäle angeben,
wobei die Grenzlinie für
eine Kommunikationsverbindung zwischen zwei virtuellen Kanalpuffern
steht, die einen zyklischen Weg in ihrem zugehörigen virtuellen Kanal schließen, wobei
beim Überqueren
der Grenzlinie durch Nachrichten eine zyklische Pufferabhängigkeit
auftreten kann, die ein Blockieren verursacht, wobei die Nachschlagetabelle
außerdem
Informationen speichert, die eine Zuordnung von Nachrichten zu den
virtuellen Kanalpuffern in einem der beiden virtuellen Kanäle angeben, wenn
die Nachrichten in einer der n Dimensionen ohne Überqueren einer Grenzlinie
zwischen den Verarbeitungselementknoten übertragen werden, und eine
solche Zuordnung von Nachrichten angeben, daß Nachrichten in ihrem virtuellen
Kanal keine Grenzlinie überqueren
können,
sondern statt dessen zur Überquerung
der Grenzlinie den anderen virtuellen Kanal nutzen müssen, um
dadurch ein gegenseitiges Blockieren zu verhindern.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine Darstellung der Komponenten eines MPP-Systems.
-
2 ist
eine Darstellung der Verarbeitungselementkomponenten eines MPP-Systems.
-
3 ist
eine Darstellung eines Verarbeitungselementknotens für ein MPP-System.
-
4 ist
eine Darstellung der miteinander verbundenen Netzwerkkomponenten
eines MPP-Systems.
-
5 ist
eine Darstellung der Kommunikationsverbindungen für ein MPP-System.
-
6 ist
eine Darstellung der Kommunikationsverbindungssignale für ein MPP-System.
-
7 ist
eine Darstellung eines eindimensionalen Torus-Netzwerks.
-
8 ist
eine Darstellung eines zweidimensionalen Torus-Netzwerks.
-
9 ist
eine Darstellung eines dreidimensionalen Torus-Netzwerks.
-
10 ist
eine Darstellung der verschachtelten Verarbeitungsknoten in einem
MPP-System.
-
11 ist
eine Darstellung der +X, +Y und +Z-Dimensionsinformationswege in
einem MPP-System.
-
12 ist
eine Darstellung der –X, –Y und –Z-Dimensionsinformationswege
in einem MPP-System.
-
13 ist
eine Darstellung der Informationswege in einem MPP-System zum Vermeiden
einer schlechten Kommunikationsverbindung in der Y-Dimension.
-
14 ist
eine Darstellung einer Grenzlinien-Kommunikationsverbindung in einem
MPP-System.
-
15 ist
eine Darstellung der allgemeinen Paketformate für Informationen in einem MPP-System.
-
16 ist
eine Darstellung eines Verarbeitungselement-Netzwerkrouters für ein MPP-System.
-
17 ist
eine Darstellung eines X-Dimension-Schalters für ein MPP-System.
-
18 ist
eine Darstellung eines Eingangsknoten-Netzwerkrouters für ein MPP-System.
-
19 ist
eine Darstellung eines I/O-Gateways für ein MPP-System.
-
20 ist
eine Darstellung der Datenwege durch die einzelnen Dimensions-Umschalt-Logikschaltungen.
-
21 ist
eine Darstellung der Logikschaltung für einen Zufallszahlengenerator.
-
22 ist
eine Darstellung der Puffer in einem MPP-System.
-
23 ist
eine Darstellung der Grenzlinien-Blockade-Vermeidung.
-
24 ist
eine Darstellung von einfachen und optimierten virtuellen Kanalzuordnungen.
-
25 ist
eine Darstellung für
ein Beispiel einer Standard- und einer Ursprungszuordnung.
-
26 ist
eine Darstellung für
ein Beispiel einer linearen Längs-
und einer Aufteilungszuordnung.
-
GENAUE BESCHREIBUNG DER
BEVORZUGTEN AUSFÜHRUNGSFORM
-
In
der folgenden genauen Beschreibung der bevorzugten Ausführungsform
erfolgt ein Bezug auf die beiliegenden Zeichnungen, die einen Teil
davon bilden und in denen beispielhaft eine bestimmte Ausführungsform
beschrieben ist, wie die Erfindung ausgeführt werden kann. Diese Ausführungsform
ist ausreichend genau beschrieben, damit der Fachmann die Erfindung
ausführen
kann, wobei auch andere Ausführungsformen verwendet
werden können
und strukturelle oder logische Abänderungen erfolgen können, ohne
vom Umfang der vorliegenden Erfindung abzuweichen. Die folgende
genaue Beschreibung ist daher nicht einschränkend zu verstehen. Der Umfang
der vorliegenden Erfindung wird durch die anhängenden Patentansprüche bestimmt.
-
EINFÜHRUNG
-
Es
werden im folgenden die Architektur und die Funktionen eines massiv
parallelen Verarbeitungssystems (MPP-System) der ersten Phase beschrieben.
Das MPP-System enthält
in der Regel Hunderte bis Tausende von Mikroprozessoren, deren jeder
mit einem lokalen Speicher versehen ist. Das System ist dafür vorgesehen,
zwei Arten der MPP-Programmierung
zu unterstützen:
Datenparallel und Nachrichtendurchlaß.
-
Datenparallelprogramme,
wie High Performance Fortran (HPF), sind dafür vorgesehen, einem Programmier
die Arbeit zu erleichtern und dabei einen guten Anteil an der MPP-Leistung
zu ermöglichen.
Nachrichtendurchlaßprogramme,
etwa Parallel Virtual Machine Messaging (PVM), ergeben einen höheren Anteil
an der Spitzen-MPP-Leistung.
-
Cray
Research Inc., die Anmelderin der vorliegenden Anmeldung, unterstützt beide
Arten der Programmierung, so daß Anwender
ein Programm aus dem MPP-System eines anderen Anbieters nehmen können und
es ohne große
Mühe auf
das MPP-System der Cray Research Inc., übertragen können. Für mehr Informationen über die
MPP-Programmmodelle der Cray Research Inc. siehe die CRAY T3D Software
Overview Technical Note mit der Veröffentlichungsnummer SN-2505.
-
Das
MPP-System ist mit einem Host-Computersystem verbunden. Auf dem
Hostsystem laufen die Software-Compiler für das MPP-System. Alle für das MPP-System
geschriebenen Programme werden auf dem Hostsystem kompiliert, laufen
jedoch im MPP-System.
Das Hostsystem kann zum Beispiel jedes Computersystem der Cray Research
Inc. sein, das ein Eingabe/Ausgabe-Subsystem E (IOS-E) aufweist.
Beispiele für die
Hostsysteme umfassen die Computersysteme der Serie CRAY Y-MP E,
der Serie CRAY Y-MP M90 und der Serie CRAY Y-MP C90. Das Hostsystem
kann sich im selben Schrank befinden wie das MPP-System. Eine solche
Konfiguration wird Einschrankkonfiguration genannt. Das Hostsystem
kann sich auch in einem anderen Schrank befinden, der mit dem Schrank
für das
MPP-System verkabelt ist. Diese Konfiguration wird Mehrschrankkonfiguration
genannt.
-
Das
MPP-System umfaßt
vorzugsweise vier Arten von Komponenten: Verarbeitungselementknoten, das
Verbindungsnetzwerk, I/O-Gateways und einen Taktgeber. Die 1 zeigt
ein vereinfachtes Modell für
die Komponenten des MPP-Systems. Die folgenden Abschnitte beschreiben
bevorzugte Komponenten eines MPP-Systems.
-
VERARBEITUNGSELEMENTKNOTEN
-
Ein
MPP-Computersystem enthält
in der Regel Hunderte oder Tausende von Mikroprozessoren, von denen
jeder mit einem lokalen Speicher versehen ist. Jede Komponen te aus
einem Mikroprozessor und einem lokalen Speicher wird ein Verarbeitungselement
genannt. Im MPP-System enthält
jedes Verarbeitungselement einen Mikroprozessor 10, einen
lokalen Speicher 12 und Unterstützungsschaltungen 14 (siehe 2).
-
Der
Mikroprozessor ist vorzugsweise ein 64 Bit Alpha Reduced Instruction
Set Computer (RISC), wie er von der Digital Equipment Corporation
entwickelt wurde. Der Mikroprozessor führt an 64-Bit-Ganzzahlen- und
64-Bit-Gleitkommaregistern arithmetische und logische Operationen
aus. Der Mikroprozessor enthält
vorzugsweise auch einen internen Anweisungs-Cachespeicher und einen
Daten-Cachespeicher, die jeweils 256 Zeilen Daten oder Anweisungen
speichern. Jede Zeile im Anweisungs- und Daten-Cachespeicher ist
vier 64-Bit-Worte breit.
-
Der
lokale Speicher umfaßt
vorzugsweise einen dynamischen Direktzugriffsspeicher (DRAM) für die Systemdaten.
Ein Datenweg mit geringer Verzögerung
und großer
Bandbreite verbindet im Verarbeitungselement den Mikroprozessor
mit dem lokalen Speicher.
-
Der
MPP-Systemspeicher ist physikalisch verteilt, da jedes Verarbeitungselement
einen lokalen Speicher enthält;
der Systemspeicher wird jedoch auch logisch gemeinsam genutzt. Der
Systemspeicher wird logisch gemeinsam genutzt, da der Mikroprozessor
eines Verarbeitungselements auch auf den Speicher eines anderen
Verarbeitungselements zugreifen kann, ohne daß daran der Mikroprozessor
dieses Verarbeitungselements beteiligt ist.
-
Die
Unterstützungsschaltung
erweitert die Steuer- und Adressierfunktionen des Mikroprozessors.
Dies umfaßt
das Ausführen
von Datenübertragungen
zu oder vom lokalen Speicher.
-
Das
MPP-System kann, abhängig
von der Systemkonfiguration, 128, 256, 512, 1024 oder 2048 Verarbeitungselemente
enthalten (ohne die Verarbeitungselemente in den I/O-Gateways).
Die Verarbeitungselemente sitzen in den Verarbeitungselementknoten.
-
Jeder
Verarbeitungselementknoten enthält
typisch zwei Verarbeitungselemente 16 und 18,
ein Netzwerkinterface 20 und eine Blockübertragungsmaschine 22 (siehe 3).
Die folgenden Absätze
beschreiben kurz jede dieser Komponenten. Die Verarbeitungselemente
(VE) 16 und 18 in einem Verarbeitungselementknoten
sind vorzugsweise identisch, arbeiten jedoch unabhängig. Auf
die Blockübertragungsmaschine 20 und das
Netzwerkinterface 22 können
beide VE zugreifen.
-
Das
Netzwerkinterface 20 formatiert die Informationen, bevor
sie über
das Verbindungsnetzwerk zu einem anderen Verarbeitungselementknoten
oder einem I/O-Gateway gesendet werden. Das Netzwerkinterface 20 nimmt
auch die von einem anderen Verarbeitungselementknoten oder einem
I/O-Gateway ankommenden Informationen auf und steuert die Informationen
zum VE 0 oder VE 1 im Verarbeitungselementknoten.
-
Die
Blockübertragungsmaschine
(BLT) 22 ist eine asynchrone Speicher-Direktzugriffssteuerung,
die die Systemdaten umverteilt. Die BLT 22 verteilt die
Systemdaten auf den lokalen Speicher im VE 0 oder VE 1 und den Speicher
in entfernten VE's.
Die BLT 22 kann bis zu 65.536 64-Bit-Datenwörter (oder
65.536 4-Wort-Datenzeilen) verteilen, ohne das VE zu unterbrechen.
-
VERBINDUNGSNETZWERK
-
Das
Verbindungsnetzwerk umfaßt
die Kommunikationswege zwischen den Verarbeitungselementknoten und
den I/O-Gateways im MPP-System. Das Verbindungsnetzwerk bildet eine
dreidimensionale Matrix von Wegen, die die Knoten in der X-, Y-
und Z-Dimension
verbinden (vgl. 1).
-
Das
Verbindungsnetzwerk besteht aus den Kommunikationsverbindungen 26a–26f und
den Netzwerkroutern 24. Die 4 zeigt,
wie die Komponenten des Verbindungsnetzwerks mit einem Verarbeitungselementknoten
verbunden sind.
-
Im
folgenden werden die Komponenten des Verbindungsnetzwerks und die
Eigenschaften des Verbindungsnetzwerks beschrieben.
-
Kommunikationsverbindungen
-
Über die
Kommunikationsverbindungen werden die Daten und Steuerinformationen
zwischen den Netzwerkroutern im Verbindungsnetzwerk übertragen.
Jede Kommunikationsverbindung verbindet zwei Knoten in einer Dimension
(siehe 5); zum Beispiel verbindet die Kommunikationsverbindung 28 die
Knoten 30 und 32 in X-Dimension.
-
Eine
Kommunikationsverbindung besteht in der Regel aus zwei unidirektionalen
Kanälen.
Jeder Kanal der Verbindung umfaßt
vorzugsweise Datensignale, Signale über die Art der physikalischen
Einheit (Phit), Auswahlsignale für
den virtuellen Kanal und Bestätigungssignale
für den
virtuellen Kanal. Die 6 zeigt die Signale für die beiden
unidirektionalen Kanäle
einer Kommunikationsverbindung.
-
Datensignale
-
Jeder
Kanal umfaßt
in der Regel 16 Datensignale. Die Datensignale tragen vorzugsweise
zwei Arten von Informationen: Anforderungen und Antworten. Die Anforderungen
enthalten Informationen, die einen Knoten auffordern, eine Aktivität auszuführen. Zum
Beispiel kann ein Quellknoten eine Anforderung an einen Zielknoten
schicken, Daten aus dem Speicher im Zielknoten auszulesen. Diese
Anforderung wird über
einen Kanal in der Kommunikationsverbindung gesendet.
-
Antworten
enthalten Informationen über
das Ergebnis einer Aktivität.
Zum Beispiel schickt ein Zielknoten nach Erhalt einer Anforderung
zum Auslesen von Daten die Antwort an den Quellknoten zurück. Die
Antwort enthält
die ausgelesenen Daten.
-
Anforderungen
und Antworten werden vorzugsweise logisch getrennt. Vorzugsweise
erfolgt dies durch das Vorsehen von separaten Puffern für Anforderungen
und Antworten. Diese Puffer werden dazu verwendet, virtuelle Kanäle zu erzeugen.
-
Phit-Typ-Bits
-
Ein
Phit ist die Menge an Information, die in einer Taktperiode auf
einen Datenkanal gesetzt werden kann. Bei dem hier beschriebenen
MPP-System hat ein Phit eine Größe von 16
Bit.
-
Jeder
Kanal enthält
vorzugsweise zwei Phit-Typ-Bits, die von dem Knoten gesteuert werden,
der die Informationen über
den Kanal sendet. Diese Bits geben an, welche Art von Phit auf den
Datensignalen liegt. Die Tabelle 1 listet die Definitionen des niedrigstwertigen
Bits (LSB) und des höchstwertigen
Bits (MSB) der Phit-Typ-Bits auf. (Mehr Informationen über Pakete
gibt es am Ende dieses Unterabschnitts).
-
Tabelle
1 Phit-Typ-Bit-Definitionen
-
Virtuelle Kanalsignale
-
Die
virtuellen Kanalsignale werden dazu verwendet, um zu steuern, welchen
virtuellen Kanal die Daten verwenden. Ein virtueller Kanal wird
erzeugt, wenn über
die physikalisch gleiche Kommunikationsverbindung Anforderungs-
und Antwortinformationen übertragen
werden, die jedoch in separaten Puffern gespeichert werden. Die
virtuellen Kanalsignale umfassen die Auswahlbit für den virtuellen
Kanal und die Bestätigungsbit
für den
virtuellen Kanal.
-
Es
gibt zwei Auswahlbit für
den virtuellen Kanal. Diese Bits zeigen an, in welchen virtuellen
Kanalpuffer im Empfangsknoten die Informationen gespeichert werden.
Die Tabelle 2 zeigt die Definitionen der Auswahlbit für den virtuellen
Kanal.
-
Tabelle
2 Definitionen
der Auswahlbit für
den virtuellen Kanal
-
Das
höchstwertige
Bit der Auswahlbit für
den virtuellen Kanal zeigt an, ob die Informationen der Datensignale
eine Anforderung oder eine Antwort sind. Wenn es 0 ist, zeigt das
Bit an, daß die
Informationen eine Anforderung sind. Wenn es 1 ist, zeigt das Bit
an, daß die
Informationen eine Antwort sind.
-
Das
niedrigstwertige Bit der Auswahlbit für den virtuellen Kanal zeigt
an, in welchem der beiden Anforderungspuffer oder der beiden Antwortpuffer
die Informationen der Datensignale gespeichert werden. Wenn es 0
ist, zeigt das Bit an, daß die
Informationen im Puffer 0 gespeichert werden. Wenn es 1 ist, zeigt
das Bit an, daß die
Informationen im Puffer 1 gespeichert werden.
-
Es
gibt vier Bestätigungsbit
für den
virtuellen Kanal. Jeder virtuelle Kanalpuffer steuert eines der
Bestätigungsbit
für den
virtuellen Kanal. Zum Beispiel steuert der virtuelle Kanalpuffer
2 das Bit 22 des Bestätigungsbits für den virtuellen
Kanal. Der die Informationen aufnehmende Knoten setzt das entsprechende
Bestätigungsbit
für den
virtuellen Kanal auf 1, während
er den virtuellen Kanalpuffer leert, und sendet die Informationen
zu einem anderen Knoten oder ein VE. Der Knoten setzt das Bestätigungsbit
für den
virtuellen Kanal auf 0 zurück,
wenn der virtuelle Kanal leer ist und die Daten zu einem anderen
Knoten oder ein VE gesendet wurden.
-
Topologie für Torus-Verbindungen
-
Das
Verbindungsnetzwerk ist in der Art eines bidirektionalen Torus verbunden.
Ein Torus enthält
Kommunikationsverbindungen, die den am niedrigsten numerierten Knoten
einer Dimension direkt mit dem am höchsten numerierten Knoten in
der gleichen Dimension verbinden. Diese Art der Verbindung bildet
einen Ring, in dem Informationen von einem Knoten durch alle Knoten
in der gleichen Dimension zurück
zum ursprünglichen
Knoten übertragen
werden können.
-
Die 7 zeigt
ein eindimensionales Torusnetzwerk in der X-Dimension. Informationen
können
kreisförmig
vom Knoten 00 durch alle anderen Knoten wieder zum Knoten 00 übertragen
werden. Jeder Knoten weist eine Kommunikationsverbindung sowohl
in der Plus- als auch der Minus-Richtung der X-Dimension auf.
-
Torusnetzwerke
bieten für
die Netzwerkkommunikation mehrere Vorteile. Ein Vorteil ist die
Geschwindigkeit der Informationsübertragung.
Zum Beispiel kann in der 7 der Knoten 07 direkt
mit den Knoten 00 in Verbindung treten, ohne daß die Informationen
durch alle Knoten in der X-Dimension gesendet werden. Ein anderer
Vorteil des Torusnetzwerks ist die Fähigkeit zur Umgehung von schlechten
Kommunikationsverbindungen. Wenn zum Beispiel in der 7 der
Knoten 00 aufgrund einer schlechten Kommunikationsverbindung keine
Informationen direkt zum Knoten 01 übertragen kann, kann der Knoten 00 immer
noch dadurch mit dem Knoten 01 in Verbindung treten, daß die Informationen
auf den langen Weg um das Netzwerk herum durch die anderen Knoten
in der X-Dimension
geschickt werden.
-
Die 8 zeigt
ein zweidimensionales Torusnetzwerk in den Dimensionen Y und X.
Jeder Knoten weist Kommunikationsverbindungen sowohl in den Plus-
als auch in den Minusrichtungen der Dimensionen Y und X auf. Die 9 zeigt
ein dreidimensionales Torusnetzwerk in den Dimensionen Z, Y und
X. Jeder Knoten weist Kommunikationsver bindungen sowohl in den Plus-
als auch in den Minusrichtungen der Dimensionen Z, Y und X auf.
-
Einige
der Abbildungen in dieser Beschreibung zeigen dreidimensionale Netzwerkverbindungen.
Zur besseren Klarheit sind die Kommunikationsverbindungen, die den
Torus in jeder Dimension vervollständigen, nicht gezeigt. Es ist
jedoch wichtig sich daran zu erinnern, daß, auch wenn sie in der Zeichnung
nicht dargestellt sind, diese Kommunikationsverbindungen vorhanden
sind.
-
Verschachtelung
-
Die
Knoten im Verbindungsnetzwerk sind vorzugsweise verschachtelt. Verschachteln
ist die physikalische Anordnung der Knoten derart, daß der maximale
Verdrahtungsabstand zischen den Knoten minimal ist.
-
Die 10 zeigt
zwei eindimensionale Torusnetzwerke. Die acht Knoten im oberen Netzwerk 34 sind nicht
verschachtelt. Die acht Knoten im unteren Netzwerk 36 sind
verschachtelt. Im verschachtelten Netzwerk (das auch gefaltetes
Torusnetzwerk genannt wird) ist die physikalische Länge der
längsten
Kommunikationsverbindung kürzer
als die physikalische Länge
der längsten
Kommunikationsverbindung im nicht verschachtelten Netzwerk. Es sind
die X- und Z-Dimensionen des Netzwerkes verschachtelt. Dadurch wird
die Länge
der physikalischen Kommunikationsverbindungen (Leitungen) im MPP-System
kürzer.
-
Einige
der Darstellungen dieser Beschreibung zeigen Zeichnungen von dreidimensionalen
Verbindungsnetzwerken. Der Klarheit wegen sind die Kommunikationsverbindungen
logisch dargestellt und zeigen die Verschachtelung nicht. Es ist
jedoch wichtig sich daran zu erinnern, daß, auch wenn es in der Zeichnung nicht
dargestellt ist, die Knoten im Netzwerk bei der bevorzugten Ausfühungsform
physikalisch verschachtelt sind.
-
Dimensionsfolge-Leitweglenkung
-
Wenn
ein Knoten Informationen zu einem anderen Knoten sendet, können die
Informationen durch mehrere Kommunikationsverbindungen im Netzwerk
laufen. Jede Übertragung
von Informationen über
eine Kommunikationsverbindung wird als Sprung bezeichnet. Nachdem
die Informationen einen Knoten verlassen haben, laufen sie in der
Regel zuerst in der X-Dimension durch das Netzwerk, dann in der
Y-Dimension und schließlich
in der Z-Dimension. Wenn die Bewegung durch die Kommunikationsverbindungen
in der Z-Dimension abgeschlossen ist, kommen die Informationen am
Zielknoten an. Diese Art der Informationsbewegung wird Dimensionsfolge-Leitweglenkung
genannt.
-
Wenn
zum Beispiel in der 11 der Knoten A Anforderungsinformationen
zum Knoten B schickt, bewegen sich die Informationen zuerst einen
Sprung in die +X-Richtung. Da sich die Informationen in der X-Richtung
nicht weiter bewegen brauchen, wird die Richtung auf die Y-Dimension
umgeschaltet. Nach Beendigung des Sprunges in der +Y-Richtung schalten
die Informationen die Richtung auf die Z-Dimension um und führen einen
Sprung in der +Z-Richtung aus. Nach Beendigung des Sprunges in der
+Z-Richtung kommen die Anforderungsinformationen am Knoten B an.
-
Die
Informationen bewegen sich nicht immer in der positiven Richtung
einer Dimension. Wenn zum Beispiel der Knoten B in der 12 Antwortinformationen
zum Knoten A schickt, führen
die Informationen zuerst einen Sprung in der –X-Richtung aus und ändern dann
die Richtung in die Y-Dimension. Die Informationen führen einen
Sprung in der –Y-Richtung
aus, bevor sie die Richtung in die Z-Dimension ändern. Nach Beendigung eines
Sprunges in der –Z-Richtung
kommen die Antwortinformationen am Knoten A an.
-
Da
sich die Informationen sowohl in der positiven als auch der negativen
Richtung einer Dimension bewegen können, können schlechte Kommunikationsverbindungen
umgangen werden. Wenn zum Beispiel der Knoten A in der 13 Informationen
zum Knoten B schickt, führen
die Informationen einen Sprung in der +X-Richtung aus und schalten
dann die Richtung in die Y-Dimension um. Aufgrund einer schlechten
Kommunikationsverbindung sollen nun die Informationen keinen Sprung
in der +Y-Richtung ausführen
können.
Statt dessen werden die Informationen so geleitet, daß sie zwei
Sprünge
in der –Y-Richtung ausführen und
den langen Weg in der Y-Richtung um der Torus herum zurücklegen.
Nach dem Umschalten der Richtung in die Z-Richtung führen die
Informationen einen Sprung in der +Z-Richtung aus und kommen am
Knoten B an.
-
Ein
Beispiel für
ein System für
die Informations-Leitweglenkung ist in der Patentanmeldung mit der
Seriennummer 07/983 979 beschrieben, die am 30. November 1992 eingereicht
wurde und die den Titel "DIRECTION
ORDER ROUTING IN MULTIPROCESSING SYSTEMS" trägt.
-
Virtuelle
Kanäle
-
Ein
virtueller Kanal wird erzeugt, wenn Anforderung- und Antwortinformationen über die
gleiche physikalische Kommunikationsverbindung laufen, jedoch in
verschiedenen Puffern gespeichert werden. Das MPP-System enthält vier
virtuelle Kanalpuffer (siehe Tabelle 3). Tabelle
3 Virtuelle
Kanalpuffer
Puffername | Definition |
Virtueller
Kanal 0 | Anforderungspuffer
0 |
Virtueller
Kanal 1 | Anforderungspuffer
1 |
Virtueller
Kanal 2 | Antwortpuffer
0 |
Virtueller
Kanal 3 | Antwortpuffer
1 |
-
Die
virtuellen Kanalpuffer verhindern zwei Arten von Blockadezuständen für Kommunikationen,
die im Verbindungsnetzwerk auftreten können. Im folgenden werden diese
Zustände
beschrieben.
-
Ohne
die virtuellen Kanalpuffer kann ein Kommunikations-Blockadezustand
auftreten, wenn sich zwei Knoten gleichzeitig Anforderungs- oder
Antwortinformationen übertragen.
Damit dieser Zustand nicht auftritt, enthält das MPP-System zwei Arten
von Puffern: Anforderungspuffer und Antwortpuffer. Diese Puffer
sorgen dafür,
daß es
für Anforderungs-
und Antwortinformationen verschiedene Zielpuffer gibt.
-
Ohne
die virtuellen Kanalpuffer (VC-Puffer) kann ein Kommunikations-Blockadezustand
auch dann auftreten, wenn alle Knoten in einer Dimension gleichzeitig
Anforderungs- oder Antwortinformationen zum nächsten Knoten in der Dimension
aussenden. Zum Beispiel kann ein Kommunikations-Blockadezustand
auftreten, wenn alle Knoten in der X-Dimension gleichzeitig Anforderungsinformationen
zum nächsten
Knoten in der X-Richtung
aussenden. Damit dieser Zustand nicht auftritt, enthält das MPP-System
vorzugsweise zwei Anforderungspuffer und zwei Antwortpuffer (siehe
Tabelle 3). Welche Puffer verwendet werden, wenn sich Informationen
durch das Netzwerk bewegen, wird von der Grenzlinien-Kommunikationsverbindung
bestimmt. Die Grenzlinien-Kommunikationsverbindung ist in jeder
Dimension eine Kommunikationsverbindung, die von der Software als
Grenzlinien-Kommunikationsverbindung festgelegt wird.
-
Wenn
sich Informationen durch eine Dimension bewegen und dabei irgendwann über die
Grenzlinien-Kommunikationsverbindung in dieser Dimension laufen,
wird für
die Informationen immer der Anforderungspuffer 1 oder der Antwortpuffer
1 verwendet. Wenn bei der Bewegung durch eine Dimension die Informationen
nicht über
die Grenzlinien-Kommunikationsverbindung in dieser Dimension laufen,
wird für
die Informationen immer der Anforderungspuffer 0 oder der Antwortpuffer
0 verwendet.
-
Zum
Beispiel zeigt die 14 vier Knoten in der X-Dimension.
Jeder Knoten überträgt Anforderungsinformationen
zu dem Knoten, der in der +X-Richtung 2 Sprünge entfernt ist. Die Grenzlinien-Kommunikationsverbindung
ist die Kommunikationsverbindung, die die Knoten 1 und 2 verbindet.
Die vom Knoten 0 zum Knoten 2 übertragenen Anforderungsinformationen
und die vom Knoten 1 zum Knoten 3 übertragenen
Anforderungsinformationen laufen irgendwann über die Grenzlinien-Kommunikationsverbindung.
Wegen dieser Eigenschaft nutzen diese Anforderungsinformationen
den virtuellen Kanalpuffer 1 (den Anforderungspuffer 1).
-
Die
vom Knoten 2 zum Knoten 0 übertragenen Anforderungsinformationen
und die vom Knoten 3 zum Knoten 1 übertragenen
Anforderungsinformationen laufen zu keiner Zeit über die Grenzlinien-Kommunikationsverbindung.
Wegen dieser Eigenschaft nutzen diese Anforderungsinformationen
den virtuellen Kanalpuffer 0 (den Anforderungspuffer 0). Nach der
Auswahl einer Kommunikationsverbindung als Grenzlinien-Kommunikationsverbindung
setzt die Software das X-VC-Bit jedes Eintrags in der Routing-Tag-Nachschlagetabelle
beim Erzeugen der Tabelle auf den entsprechenden Wert. Das X-VC-Bit wird als das
niedrigstwertige Bit des Auswahlbits für den virtuellen Kanal in der
Kommunikationsverbindung verwendet (siehe Tabelle 2).
-
Pakete
-
Alle
Informationen werden mittels der Datensignale in der Form von Paketen über eine
Kommunikationsverbindung (siehe 6) übertragen.
Ein Paket besteht aus zwei Teilen, einem Kopfteil 38 und
einem Körper 40 (siehe 15).
Der Kopfteil und der Körper
haben variable Längen
werden jeweils in einzelnen 16-Bit-Phits über die Kommunikationsverbindung übertragen.
-
Vorzugsweise
enthält
jedes Paket einen Kopfteil. Der Kopfteil enthält die Leitweginformationen,
die das Paket durch das Netzwerk steuern, die Zielinformationen,
die anzeigen, welche VE das Paket erhält, und Steuerinformationen,
die die das Paket erhaltende VE anweisen, eine Operation auszuführen. Der
Kopfteil kann auch Quelleninformationen enthalten, die angeben,
welche VE das Paket erzeugt hat, und er kann Informationen über Speicheradressen
enthalten.
-
Ein
Paket kann einen Körper
enthalten oder auch nicht. Der Körper
eines Pakets enthält
ein oder vier 64-Bit-Wörter
aus Systemdaten. Zum Beispiel enthält der Körper eines Ausleseantwortpakets
ein oder vier Wörter
aus ausgelesenen Daten.
-
Netzwerkrouter
-
Der
Netzwerkrouter überträgt Pakete über die
Kommunikationsverbindungen im Verbindungsnetzwerk. Es gibt in der
Regel zwei Arten von Netzwerkroutern: Verarbeitungselement-Netzwerkrouter
und I/O-Gateway-Netzwerkrouter. Die Verarbeitungselement-Netzwerkrouter
enthalten vorzugsweise drei Komponenten: einen X-Dimension-Schalter 44,
einen Y-Dimension-Schalter 46 und einen Z-Dimension-Schalter 48. Die 16 zeigt
den Fluß von
Paketinformationen durch einen Verarbeitungselement-Netzwerkrouter 42.
-
Der
X-Dimension-Schalter steuert den Fluß der Pakete durch die X-Dimension-Kommunikationsverbindungen.
Unter Verwendung der Leitweginformationen im Paket und der mit den
Kanalsteuersignalen erhaltenen Informationen steuert der X-Dimension-Schalter die Pakete
von einer X-Dimension-Kommunikationsverbindung zur anderen oder
von einer X-Dimension-Kommunikationsverbindung zum Y-Dimension-Schalter.
Die 17 zeigt den Fluß der Paketinformationen durch
den X-Dimension-Schalter.
-
Jedes
Paket enthält
Leitweginformationen. Die Paket-Leitweginformationen enthalten das
Komplement von zwei zu der Anzahl von Sprüngen, die das Paket in jeder
Richtung machen wird, und geben die Richtung an, die sich das Paket
in jeder Dimension bewegt. Unmittelbar nach dem Erhalt des ersten
Phits eines Paket-Kopfteils liest der X-Dimension-Schalter den im X-Dimension-Abschnitt
der Paket-Leitweginformationen gespeicherten Wert aus. Wenn der
Wert nicht Null ist, inkrementiert der X-Dimension-Schalter den Wert
um Eins und schickt das Paket auf eine X-Dimension-Kommunikationsverbindung.
Wenn der Wert Null ist, schickt der X-Dimension-Schalter das Paket
zum Y-Dimension-Schalter.
-
Der
X-Dimension-Schalter enthält
virtuelle Kanalpuffer, um Anforderungen und Antworten zu trennen. Die
Kanalsteuersignale in den Kommunikationsverbindungen steuern, in
welchem virtuellen Kanalpuffer die Paketinformationen gespeichert
werden. Jeder Puffer kann bis zu acht 16-Bit-Pakete speichern. Die
Y- und Z-Dimension-Schalter arbeiten genau so wie der X-Dimension-Schalter.
Die Y- und Z-Dimension-Schalter übertragen
Pakete über
die Y- bzw. Z-Dimension-Kommunikationsverbindungen.
-
Die
I/O-Gateway-Netzwerkrouter arbeiten ähnlich wie die Verarbeitungselementknoten-Netzwerkrouter;
die I/O-Gateway-Netzwerkrouter enthalten jedoch keinen Y-Dimension-Schalter.
Die 18 zeigt die Komponenten des Eingangsknoten-Netzwerkrouters 50,
die einen X-Dimension-Schalter 52 und einen Z-Dimension-Schalter 54 umfassen.
Die beiden Netzwerkrouter für
ein I/O-Gateway sind miteinander verbunden. Die +X- und +Z-Kommunikationsverbindungen
vom Eingangsknoten-Netzwerkrouter sind mit dem Ausgangsknoten-Netzwerkrouter
verbunden. Die –X-
und –Z-Kommunikationsverbindungen
vom Ausgangsknoten-Netzwerkrouter sind mit dem Eingangsknoten-Netzwerkrouter
verbunden.
-
I/O-GATEWAYS
-
Die
I/O-Gateways übertragen
Systemdaten und Steuerinformationen zwischen dem Hostsystem und dem
MPP-System. Die I/O-Gateways stellen die Verbindung zum Verbindungsnetzwerk über Netzwerkrouter her,
die nur in der X- und der Z-Dimension Kommunikationsverbindungen
aufweisen. Ein I/O-Gateway kann Informationen zu jedem Verarbeitungselement
im Verbindungsnetzwerk übertragen.
-
Ein
I/O-Gateway enthält
vorzugsweise einen Eingangsknoten, einen Ausgangsknoten und eine
langsame (LOSP) Schaltung. Die 19 zeigt
die Komponenten eines I/O-Gateways.
Der Eingangsknoten 56 umfaßt typischerweise ein Verarbeitungselement 60,
ein Netzwerkinterface 62, eine Blockübertragungsmaschine 64 und
eine schnelle (HISP) Eingangsschaltung 66. Die BLT und
das Netzwerkinterface im Eingangsknoten sind identisch mit dem BLT
und dem Netzwerkinterface in einem Verarbeitungselementknoten.
-
Das
VE im Eingangsknoten steht mit der HISP-Eingangsschaltung in Verbindung.
Deshalb enthält
das VE im Eingangsknoten nicht die Schaltung für alle Operationen, die ein
VE in einem Verarbeitungselementknoten ausführt. Statt dessen ist die Schaltung
durch eine Schaltung ersetzt, die mit der HISP-Eingangsschaltung
in Verbindung steht. Außerdem
enthält
das VE im Eingangsknoten nur die Hälfte des lokalen Speichers, die
ein VE in einem Verarbeitungselementknoten enthält.
-
Die
VE in einem I/O-Gateway führt
die folgenden Funktionen und Operationen nicht aus. Mehr Informationen über diese
Funktionen und Operationen sind im Abschnitt 2, "Adressierung", und Abschnitt 3, "Operationen" enthalten: Ankommende und ausgehende
atomische Austauschoperationen; Daten-Prefetch-Operationen; Vor-Lese-Operationen;
Daten-Cache-Leitung-Ungültigkeitserklärung; und
virtuelle VE-Nummern- und zugehörige
virtuelle VE-Bereichsprüfung.
-
Die
HISP-Eingangsschaltung nimmt über
den HISP-Kanal die vom Hostsystem ankommenden Systemdaten auf. Nach
dem Aufnehmen der Daten übertragen
die HISP-Eingangsschaltung,
die VE und BLT im Eingangsknoten die Daten zu den VE im CRAY-T3D-System. Mit der
Ausnahme der HISP-Ausgangsschaltung ist der Ausgangsknoten identisch
mit dem Eingangsknoten. Die HISP-Ausgangsschaltung überträgt die ausgehenden
Systemdaten über
den HISP-Kanal zum Hostsystem. Nachdem die VE, BLT und HISP-Ausgangsschaltung
im Ausgangsknoten die Daten von den VEs im CRAY-T3D-System aufgenommen
haben, überträgt die HISP-Ausgangsschaltung
die Daten zum Hostsystem. Die LOSP-Schaltung überträgt Anforderungs- und Antwortinformationen über den
LOSP-Kanal, der das Hostsystem mit dem CRAY-T3D-System verbindet.
Die LOSP-Anforderungs-
und Antwortinformationen werden dazu verwendet, die Übertragung
von Systemdaten über
den HISP-Kanal zu steuern.
-
Es
gibt zwei Arten von I/O-Gateways: Ein Master-I/O-Gateway und ein
Slave-I/O-Gateway.
Die beiden Arten von I/O-Gateways entsprechen den beiden Arten von
Komponenten, die an einen HISP-Kanal angeschlossen sind. Das Master-I/O-Gateway
ist die Master-Komponente eines HISP-Kanals und schickt während einer
HISP-Übertragung
die Adresseninformationen zum Hostsystem. Das Slave-I/O-Gateway
ist die Slave-Komponente eines HISP-Kanals und nimmt während einer
HISP-Übertragung
die Adresseninformationen vom Hostsystem auf.
-
TAKTGEBER
-
Das
MPP-System enthält
einen zentralen Taktgeber, der zum Beispiel alle 6,67 ns ein Taktsignal
abgibt. Das Taktsignal wird allen Verarbeitungselementknoten und
I/O-Gateways im
System zugeführt.
Der Taktgeber befindet sich auf einer Leiterplatte im MPP-Systemschrank.
-
NETZWERKENTSCHEIDUNGEN
-
Jede
Dimensionsumschaltlogik weist vorzugsweise drei Eingangskanäle und drei
Ausgangskanäle auf.
Jeder Eingangskanal ist physikalisch zwei Byte breit und unterstützt logisch
vier virtuelle Kanäle.
Zwei virtuelle Kanäle
(0 und 1) sind für
Anforderungspakete und zwei der virtuellen Kanäle (2 und 3) für Antwortpakete. Jede
Dimensionsumschaltlogik handhabt eine Dimension eines Knotens. Die 20 zeigt
die Datenwege in einer Dimensionsumschaltlogik.
-
Jede
Dimensionsumschaltlogik umfaßt
einen Fünf-Bit-Zähler, um
bei Eingangskanalkonflikten und bei Konflikten zwischen virtuellen
Kanälen
Entscheidungen zu treffen. Die niedrigeren zwei Bit bestimmen, welcher
virtuelle Kanal Priorität
hat, und die oberen beiden Bit bestimmen, welcher Eingangskanal
Priorität
hat. Wenn keine Konflikte auftreten, laufen die durch die Dimensionsumschaltlogik
laufenden Daten mittels des RAM-Bypassmodus
in einer Taktperiode durch. Wenn ein Konflikt vorliegt, werden die
Paketdaten aus der RAM-Zelle ausgelesen.
-
Alle
vier virtuellen Kanäle
liegen vorzugsweise in einer 32 × 16-RAM-Zelle. Jede Dimensionsumschaltlogik
weist vorzugsweise drei RAM-Zellen auf, eine für jeden Eingangskanal. Die
virtuellen Kanaladressen für die
RAM-Zelle müssen
in der vorhergehenden Taktperiode bestimmt werden. Wegen der Beschränkungen
für die
Anzahl von Gattern und Optimierungen des Bypassmodus erfolgt bei
der Auswahl der RAM-Adresse keine Konfliktprüfung. Nur virtuelle Kanäle mit gültigen Referenzen
werden ausgewählt.
Da bei der Auswahl der RAM-Adresse keine Konfliktprüfung erfolgt,
muß der
Prioritätszähler weiterzählen, damit
alle Anforderungen mit gültigen
Referenzen durchlaufen werden. Wenn der Prioritätszähler angehalten würde und
stehenbliebe, bis es mit dem ausgewählten virtuellen Kanal weitergeht,
blieben auch die anderen drei virtuellen Kanäle stehen.
-
Der
Zähler
läuft daher
normalerweise frei weiter, was den Netzwerkdurchsatz erhöht. Ein
Zufallszahlengenerator sperrt periodisch für jede Dimensionsumschaltlogik
den Prioritätszähler. Das
zufällige
Sperren der Prioritätszähler wurde
hinzugefügt,
um zu verhindern, daß wegen
eines zyklischen Musters zwischen den anderen Eingangskanälen oder
virtuellen Kanälen
Pakete steckenbleiben (angehalten werden). Die Tabellen 4 und 5
zeigen die Kanalpriorität
auf der Basis des Zählwerts
für jede
Dimensionsumschaltlogik.
-
Tabelle
4 Virtuelle
Kanalpriorität – Zählerbits
1 und 0
-
Tabelle
5 Eingangskanalpriorität – Zählerbits
4 und 3
-
Der
Zufallszahlengenerator arbeitet vorzugsweise auf der Basis des primitiven
Polynoms x12 + x6 +
x4 + x + 1 und ist dazu mit einem 12-Bit-Schieberegister
mit linearer Rückführung versehen.
Zusätzlich
zu dem 12-Bit-Pseudo-Zufallszahlengenerator kann ein frei laufender
5-Bit-Zähler
verwendet werden. Wenn die Bits des freilaufenden Zählers zu
den Bits 0, 2, 4, 8 und 10 des Zufallszahlengenerators passen, wird
eine neue Zufallszahl erzeugt und für jede Dimensionsumschaltlogik
für eine
Taktperiode ein Sperrimpuls für
den Prioritätszähler erzeugt.
Der Zufallszahlengenerator wiederholt sich beim Inkrementie ren jedes
4095te-mal. Die 21 zeigt die logische Ausführung des
bevorzugten Zufallszahlengenerators.
-
Es
wurde das Ausgangssignal des mit dem freilaufenden 5-Bit-Zähler kombinierten
Zufallszahlengenerators simuliert. Das Ausgangsmuster wiederholte
sich alle 67.552 Taktperioden.
-
Um
sicherzustellen, daß es
keine Abhängigkeiten
zwischen den Netzwerkschaltlogiken gibt, muß jede Dimensionsumschaltlogik
in der Regel einen einmaligen Zufallszahlengenerator-Sperrimpuls
erhalten. Dies wird dadurch erreicht, daß die Starttaktperioden für den Zufallszahlengenerator
jedes Knotens gestaffelt werden und daß in jedem Knoten drei separate
Abgriffe für
jede Umschaltlogik (d.h. die X-, Y- und Z-Logik) vorgesehen werden.
-
VIRTUELLE KANALZUORDNUNG
-
Im
folgenden wird die virtuelle Kanalzuordnung in einem MPP-System
und deren Einfluß auf
die Leistung des Kommunikationsnetzwerks beschrieben. Der Hauptzweck
der virtuellen Kanäle
ist die Verhinderung des Blockierens, sie können jedoch auch die zur Verfügung stehende
Bandbreite erhöhen,
da sie für
mehr Gelegenheiten sorgen, Nachrichten an blockierten Nachrichten
vorbeizubringen. Die vorliegende Beschreibung erläutert das
Gesamtproblem der virtuellen Kanalzuordnung in einem MPP-System
und zeigt, daß durch
eine verbesserte Kanalzuordnung die Ausführungszeit bei einer Anwendung,
die einen zufälligen
Netzwerkverkehr erzeugt, um 24% verringert werden kann. Es werden
Kriterien eingeführt,
mit denen eine gegebene Zuordnung bewertet werden kann, und Zuordnungsalgorithmen
angegeben, mit denen diese Kriterien erfüllt werden sollen. Die vorliegende
Beschreibung zeigt auch, daß unter
den bekannten Algorithmen für
sowohl zufällige
als auch aufgeteilt-zufällige
Netzwerkbelastungen ein aufgeteilter Zuordnungsalgorithmus am besten
ist. Da diese Optimierungen vollständig in durch Software gefüllte Routingtabellen
ausgeführt
werden können,
können
sie direkt in die Software für
ein MPP-System eingebaut
werden.
-
Einführung
-
Die
folgende Beschreibung konzentriert sich auf das Problem der virtuellen
Kanalzuordnung für
ein MPP-System. Die Schlüsselkomponente
eines MPP-Systems ist das Kommunikationsnetzwerk. Auch wenn es eine
hohe Bandbreite aufweist, wird doch die Geschwindigkeit bei vielen
Anwendungen und vielen Systemoperationen durch die Leistungsfähigkeit
des Kommunikationsnetzwerks bestimmt. Jede nachhaltige Erhöhung der
Netzwerkleistung erhöht
mit Sicherheit die Leistungsfähigkeit
des Gesamtsystems. Die vorliegende Beschreibung erläutert eine
Software für
virtuelle Kanalzuordnungstechniken, mit denen die Fähigkeit
der Hardware von MPP-Systemen voll ausgeschöpft werden kann.
-
Die
Verbindung in einem dreidimensionalen MPP-System ist ein 3D-Torus;
im wesentlichen bilden die physikalischen Kanalverbindungen einen
Würfel
mit verbundenen Enden. An den Zielorten jedes physikalischen Kanals
im Netzwerk befinden sich Puffer, um die Daten aufzunehmen, die über den
physikalischen Kanal ankommen. Der Pufferplatz ist statisch auf
verschiedene virtuelle Kanäle
aufgeteilt; nur Nachrichten, die einen virtuellen Kanal benutzen,
können
den diesem virtuellen Kanal zugeordneten Pufferplatz nutzen. Der Hauptzweck
dieser virtuellen Kanäle
ist die Verhinderung einer Netzwerkblockade. Ohne virtuelle Kanäle werden
alle Nachrichten, die auf eine blockierte Nachricht folgen, auch
blockiert und warten darauf, daß Pufferplatz
frei wird. Mit virtuellen Kanälen
und dem entsprechenden Pufferplatz können einige Nachrichten andere, blockierte
Nachrichten passieren. Es ist dies das Schlüsselmerkmal, das es virtuellen
Kanälen
erlaubt, Blockaden zu vermeiden. Es führt auch zu einer höheren Ausnutzung
der physikalischen Netzwerkkanäle.
Pufferplatz, der ansonsten unnötig
von einer blockierten Nachricht blockiert wird, kann statt dessen
anderen Nachrichten auf anderen virtuellen Kanälen zur Verfügung gestellt
werden.
-
Die
vorliegende Beschreibung erläutert
das Problem der virtuellen Kanalzuordnung in einem MPP-System. Die
vorliegende Beschreibung zeigt ein Beispiel für eine optimierte virtuelle
Kanalzuordnung, die die Ausführungszeit
für eine
Belastung mit zufälliger
Kommunikation um 24% verringert. Die vorliegende Beschreibung erläutert Kriterien
zum Bewerten der virtuellen Kanalzuordnung, entwickelt einige Algorithmen,
mit denen diese Kriterien erfüllt
werden sollen, und zeigt die Auswirkungen der alternativen Zuordnungsalgorithmen
auf die Leistung. In der vorliegenden Beschreibung wird festgestellt,
daß ein
aufgeteilter Zuordnungsalgorithmus besser ist als andere bekannte
Algorithmen für
sowohl zufällige
als auch aufgeteilt-zufällige
Belastungen. Da die Routingtabellen eines MPP-Systems mit entsprechender Software
gefüllt
werden können,
können
die hier beschriebenen Optimierungen direkt auf die Software für ein MPP-System
angewendet werden.
-
Netzwerkverbindungen zwischen
Prozessoren und Pufferung
-
Die 22 zeigt
das Layout der Puffer in einem MPP-Systemnetzwerk für entweder
Anforderungen oder Antworten. In der 22 sind
zwei virtuelle Kanäle
pro physikalischem Kanal dargestellt. In einem bevorzugten System
gibt es tatsächlich
vier virtuelle Kanäle
pro physikalischem Kanal, jeweils zwei für Anforderungen und Antworten.
Da die Pufferkonfiguration und die Leitweglenkung für sowohl
Anforderungen als auch Antworten identisch und getrennt sind, werden
beide hier separat betrachtet. Drei identische Umschaltchips, einer für jede der
drei Dimensionen, lenken die Nachrichten von der Quelle zum gewünschten
Zielort. Diese Chips führen
eine Leitweglenkung in der Folge der Dimensionen für die Dimensionen
X, Y und Z des Torus aus; zuerst läuft eine Nachricht durch die
X-Chips in der Plus- oder Minus-X-Richtung, dann durch die Y-Chips
in der Plus- oder Minus-Y-Richtung, und dann längs der Z-Dimension, um den
gewünschten
Zielort zu erreichen. Durch Software gefüllte Routingtabellen bestimmen
den Abstand, den virtuellen Kanal und die Richtung, die sich eine
Nachricht längs
jeder Dimension bewegt, um jeden beliebigen Zielort zu erreichen.
Wenn eine Nachricht das Netzwerk durchläuft, belegt sie Pufferplatz.
Wenn eine Nachricht ankommt und der Pufferplatz bereits belegt ist,
ist die Nachricht blockiert, bis der Pufferplatz wieder zur Verfügung steht.
-
Das
Netzwerkinterface in einem MPP-System teilen sich zwei Prozessoren.
Die beiden Eingangspuffer ganz links in der 22 sind
jeweils einem Prozessor zugeordnet. Beim Eintritt einer Nachricht
in das Netzwerk an den Eingangspuffern tritt sie in einen der beiden
virtuellen Kanal-Eingangspuffer der Dimension X ein. Wenn sie eine
Dimension entlangläuft,
bleibt sie immer im gleichen virtuellen Kanal, wenn sie jedoch von
einer Dimension zu einer anderen wechselt, wechselt sie auch den
virtuellen Kanal auf der Basis des von der Routingtabelle für die neue
Dimension vorgegebenen virtuellen Kanals. Die 22 zeigt,
daß eine
Nachricht in einer Dimension an der Schaltchipkreuzung in den virtuellen
Kanal eintritt (X-, Y- und Z-VC-Auswahl) Wenn eine Nachricht das
Netzwerk am Z-Dimension-Chip verläßt, tritt sie in einen der
beiden Ausgangspuffer ein. Im Gegensatz zu den Eingangspuffern teilen
sich die beiden Prozessoren die Ausgangspuffer. Die Nachricht wird im
Ausgangspuffer für
den virtuellen Kanal gespeichert, den sie benutzt hat, als sie sich
in der Z-Dimension bewegt hat.
-
Vermeiden
des Blockierens eines virtuellen Kanals
-
Eine
Blockade kann auftreten, wenn zwischen den Netzwerkpuffern zirkulare
Abhängigkeiten
auftreten. Diese Situation kann zum Beispiel eine Blockade bewirken:
Eine Nachricht im Puffer Null wartet auf Platz im Puffer Eins, die
Nachricht in Puffer Eins wartet auf Platz im Puffer Zwei, ..., und
die Nachricht im Puffer i wartet auf Platz im Puffer Null. Diese
Zirkelsituation kann in einem MPP-System besonders leicht auftreten,
da alle Dimensionen in einem Torus (oder Kreis) verbunden sind.
-
Durch
ein MPP-Verbindungsschema kann eine zyklische Blockade auf mehrere
Arten vermieden werden. Als erstes können durch eine Leitweglenkung
in der Folge der Dimensionen die Dimensionen unabhängig behandelt
werden. Die Reihenfolge der Dimensionen stellt sicher, daß es keine
die Dimensionen übergreifenden
Zyklen gibt, da das Anordnen der Puffer in den verschiedenen Dimensionen
beinhaltet, daß es
keine Zyklen gibt. Wenn die Pufferung innerhalb einer Dimension
blockadefrei ist, ist die gesamte Verbindung blockadefrei. Zweitens
kann eine Blockade aufgrund der Torusverbindung sowohl in der Plus-
als auch der Minusrichtung in jeder Dimension durch geeignete Verwendung
der beiden virtuellen Kanäle
in jeder Dimension verhindert werden. Nur die Puffer für die vertikal
verlaufenden physikalischen Kanäle
können
in der 22 an einem Zyklus teilhaben.
Pufferabhängigkeiten,
die die horizontalen Puffer einschließen, können wegen der Folge der Dimensionen
nicht zyklisch sein. Die in Plusrichtung verlaufenden Puffer können nicht
an einem Zyklus mit den in Minusrichtung verlaufenden Puffern teilhaben,
da eine Nachricht in einer Dimension nur in einer Richtung laufen
kann. Drittens kann keine Blockade aufgrund einer Wechselwirkung
von Anforderungen und Antworten auftreten, da Anforderungen und
Antworten unabhängig
sind. Der Fortschritt der Anforderungen hängt vom Fortschritt der Antworten
ab (d.h. es gibt Pufferabhängigkeiten
zwischen den Anforde rungs- und den Antwortnachrichten), deshalb
müssen
sich Anforderungen und Antworten unabhängig durch das Netzwerk bewegen.
-
Eine
Technik zum Vermeiden von Pufferzuordnungszyklen (und damit einer
Blockade) in einer Dimension ist die Verwendung einer Grenzlinie.
In MPPO ist die Grenzlinie für
jede Richtung eines virtuellen Kanals der Punkt, an der der Pufferabhängigkeitszyklus
unterbrochen wird. Da eine durch eine einzige Dimension in MPPO
laufende Nachricht niemals den virtuellen Kanal wechselt, muß jede Nachricht
so auf den virtuellen Kanal gesetzt werden, daß sie keine Grenzlinie überquert.
Eine Nachricht, die die Grenzlinie für den virtuellen Kanal Null überquert,
muß den
virtuellen Kanal Eins verwenden, und jede Nachricht, die die Grenzlinie
für den virtuellen
Kanal Eins überquert,
muß den
virtuellen Kanal Null benutzen. Beide virtuellen Kanäle müssen für jede Richtung
(plus oder minus) ihre eigene Grenzlinie haben, und eine Nachricht
kann nicht beide Grenzlinien überqueren.
Keine Nachricht überquert
die Grenzlinie für
einen virtuellen Kanal, während
sie über
diesen virtuellen Kanal läuft,
so daß es
keine Pufferabhängigkeiten
geben kann, die die Grenzlinie überqueren,
so daß es
folglich keine zirkularen Abhängigkeiten
längs des
Torus einer Dimension geben kann.
-
Die 23 zeigt
die möglichen
Grenzlinien für
sich im Gegenuhrzeigersinn bewegende Nachrichten in einem Torus
mit vier Knoten. Die physikalischen Kanalverbindungen zwischen den
Knoten des Torus sind nicht gezeigt; wenn sie es wären, wäre jeder
der Knoten mit seinen beiden Nachbarn verbunden. Jeder Pfeil stellt
eine mögliche
Nachricht dar, die sich längs
des virtuellen Kanals Null einer Dimension (ausgezogen) oder des
virtuellen Kanals Eins einer Dimension (gestrichelt) bewegt. Die
Richtung des Pfeiles gibt den Weg an, den die Nachricht nehmen würde. Zum
Beispiel verläuft
der Pfeil vom Knoten Null zum Knoten zwei in der Nähe des Knoten
Eins, um anzuzeigen, daß die
Nachricht, die diesen Weg nimmt, physikalisch sich vom Knoten Null über den
Knoten Eins zu ihrem Zielort bewegen würde. Pufferabhängigkeiten
können
längs des
Weges jedes möglichen
Pfeils (Nachricht) auftreten. Pufferabhängigkeitswege verbinden sich,
wenn zwei Pfeile des gleichen Typs einander überlappen. Zum Beispiel gibt
es Pufferabhängigkeiten
vom Knoten Null bis Knoten Drei, da sich die beiden ausgezogenen
Pfeile überlappen.
Die virtuelle Kanalzuordnung der 23 vermeidet
ein Blockieren, da sich weder im virtuellen Kanal Null noch im virtuellen
Kanal Eins zirkulare Pufferabhängigkeiten ergeben
können.
Die Grenzlinie unterbricht alle Zyklen.
-
In
der 23 liegen die Grenzlinien jeweils zwischen zwei
Knoten; die Grenzlinie kann sich aber auch in der Mitte eines Knotens
befinden. Was erforderlich ist, ist nur, daß Pufferabhängigkeiten die Grenzlinie nicht überschreiten.
Die Grenzlinien lassen der virtuellen Kanalzuordnung eine beträchtliche
Flexibilität.
Wenn ein Pfeil keine Grenzlinie kreuzt, kann jeder virtuelle Kanal
benutzt werden (er ist nicht eingeschränkt).
-
Auswirkungen
der virtuellen Kanalzuordnung auf die Leistung
-
Zum
Bewerten der Auswirkungen von alternativen Strategien für die virtuelle
Kanalzuordnung kann ein MPP-Simulator benutzt werden. Der Simulator
bildet die kritischen Leistungsmerkmale des MPP-Systems genau nach,
insbesondere die Netzwerkpufferung der 22. Eine
Ausführung
eines einfachen virtuellen Kanalalgorithmus auf der Basis der Grenzlinienregel
ist in der 24 links gezeigt. Im Gegensatz
zur 23 ist die 24 vollständig, da
sie alle Pfeile in jede Richtung zeigt. Sie zeigt auch alle vier
Grenzlinien, eine für
jede Richtung jedes der beiden virtuellen Kanäle. Jeder Knoten besitzt vier
abgehende Pfeile (einen zu jedem möglichen Zielort für eine Nachricht,
den anderen drei Knoten und auf sich selbst) und vier ankommende
Pfeile. Jeder Pfeil ist der Weg minimalen Abstands zur Dimension
(im Falle einer Verknüpfung
wird die Richtung beliebig gewählt).
Bei der einfachen Zuordnung wird der virtuelle Kanal Null benutzt,
wenn der Pfeil keine Grenzlinie überquert.
Die Grenzlinie für
den virtuellen Kanal Null befindet sich zwischen den Knoten Null
und Drei, während
die Grenzlinie für
den virtuellen Kanal Eins zwischen den Knoten Eins und Zwei liegt.
Die Leistungsfähigkeit
dieser Zuordnung wird mit der optimierten Zuordnung rechts verglichen.
Es ist anzumerken, daß alle optimierten
Pfeile den gleichen Weg zurücklegen
und in die gleiche Richtung weisen wie bei der einfachen Zuordnung,
daß sich
nur ihre Farbe ändert.
Der Unterschied zwischen der einfachen und der optimierten Zuordnung
ist die Position der Grenzlinien und die Farbe der nicht eingeschränkten Pfeile.
-
Die
Ergebnisse in der Tabelle 6 zeigen, daß sich durch die optimierte
Leitweglenkung die Ausführungszeit
der Aktualisierungsschleife mit 128 Prozessoren (4 × 4 × 4), was
in diesem Fall einen zufälligen
Netzwerkverkehr erfordert, um 24% verringert. Die Aktualisierungsschleife
führt über den
Bereich der i's
die Operation Y[X[i]] + Z[1] aus, wobei die X- und Z-Arrays lokal
sind und das Y-Array über
alle Prozessoren verteilt ist. Die Ausführung tauscht die Nullwerte
im Y-Arrayeintrag (Synchronisation der Art Voll/Leer) aus, führt die
Gleitkommainkrementierung aus und füllt dann die Y-Arrayeinträge mit den
aktualisierten Werten. Das X-Array wird mit Zufallsdaten initialisiert,
so daß die
Aktualisierung einen zufälligen
Kommunikationsverkehr zwischen den Prozessoren erzeugt. Im vorliegenden
Fall gab es wenig Konkurrenz zwischen den Prozessoren für den gleichen Y-Arrayeintrag. Da
eine hohe Leistungsverbesserung durch die optimierte virtuelle Kanalzuordnung
möglich ist
(wenigstens 24%), wurde das Zuordnungsproblem für die virtuellen Kanäle näher betrachtet,
um auch in anderen Situationen Leistungsverbesserungen zu erreichen.
-
Tabelle
6 Experiment
für die
virtuelle Kanalleistung
-
In
der Tabelle 6 werden die Leistungsfähigkeit der einfachen und der
optimalen virtuellen Kanalzuordnung der 24 miteinander
verglichen. Es sind die relativen Ausführungszeiten einer Ausführung der
Aktualisierungsschleife dargestellt. Die Netzwerkbelastung wird
bestimmt durch viele kleine Nachrichten zu zufälligen Zielorten. Die Simulation
ist die eines 4 × 4 × 4-Systems,
wobei alle 128 Prozessoren die Aktualisierungsschleife ausführen. Die
Spalte "Min" gibt die Ausführungszeit
für den
ersten Prozessor und die Spalte "Max" die Ausführungszeit
für den
letzten Prozessor an. Das wesentliche Problem der einfachen Option
zeigt sich bereits bei einer oberflächlichen Betrachtung der 24 und
der Tabelle 6. Aus der 24 ergibt sich, daß in der
einfachen Version der virtuelle Kanal Null viel stärker benutzt
wird als der virtuelle Kanal Eins. Die beiden Knoten Eins und Zwei
besitzen keine ausgehenden Pfeile, und es gibt keine gestrichelten
Pfeile, die über
den physikalischen Kanal dazwischen laufen. Dieses Ungleichgewicht
führt zu
der relativ schlechten Leistungsfähigkeit der einfachen Lösung.
-
Es
wurde festgestellt, daß mit
der einfachen Zuordnung die langsamsten Prozessoren in der 128-Prozessor-Simulation
in allen drei Dimensionen diejenigen waren, die entweder Knoten
Eins oder Zwei bildeten (wie in der 24). Die Übernutzung
des virtuellen Kanals Null durch die Prozessoren Eins und Zwei führte zu
vielen Pufferkonflikten. Folglich liefen diese beiden Knoten bei
der einfachen Zuordnung langsamer als die anderen. Wenn die Arbeit
statisch zwischen den Prozessoren aufgeteilt ist, bestimmt die längste Zeitspanne zum
Ausführen
der Arbeit die Systemleistung. Auch wenn jedem Prozessor die gleiche
Arbeitsmenge zugeteilt wird, braucht der langsamste Prozessor bei
der einfachen Zuordnung etwa 70% mehr Zeit. Die Leistungsverbesserung
kommt bei der optimierten Zuordnung im wesentlichen daher, daß alle Prozessoren
im wesentlichen zum gleichen Zeitpunkt fertig werden ("Min" und "Max" sind ähnlich).
Der Unterschied zwischen der mittleren Ausführungszeit bei der einfachen
und der optimierten Version beträgt
nur 8%, viel kleiner als die 24% Unterschied, wenn alle Prozessoren
abgeschlossen haben müssen.
Anhand dieses Beispiels ist ersichtlich, daß es wichtig ist, daß die virtuelle
Kanalzuordnung zur allen Prozessoren "fair" ist,
so daß alle
von ihnen die gleiche Arbeit in etwa der gleichen Zeit beenden können. Anderenfalls
wird die Systemleistung von der Geschwindigkeit des langsamsten
Prozessors bestimmt.
-
Algorithmen für die virtuelle
Kanalzuordnung
-
Bei
allen virtuellen Kanalzuordnungen müssen Blockaden vermieden werden.
Der Schlüsselfaktor,
der die Güte
einer bestimmten virtuellen Kanalzuordnung bestimmt (wie die Zuordnungen
der 24) ist: Für
jede gegebene physikalische Verbindung in der 22 müssen die
beiden virtuellen Kanäle
Null und Eins gleich genutzt werden. Bei einem zufälligen Netzwerkverkehr
kann davon ausgegangen werden, daß jeder Pfeil der 24 etwa
die gleiche Anzahl von Nachrichten trägt, und die Ausnutzung eines
Puffers ist proportional zu der Anzahl von Pfeilen, die hindurchlaufen.
Durch Ausgleichen der Anzahl von Pfeilen jedes Typs, die aus einem
Knoten herauskommen, wird die Ausnutzung der horizontalen Eingangpuffer
der Schaltchips der 22 vergleichmäßigt. Durch
Ausgleichen der Anzahl von Pfeilen jedes Typs, die in jeder Richtung
zwischen den Knoten verlaufen, wird die Ausnutzung der vertikalen
Puffer vergleichmäßigt. Die
Ausnutzung der Ausgangspuffer kann dadurch vergleichmäßigt werden,
daß nur
für die
Dimension Z die Anzahl von Pfeilen, die in jeden Knoten eintreten,
vergleichmäßigt wird.
Wenn in einem System somit die Anzahl der Pfeile jedes Typs, die
in Knoten eintreten, diese verlassen und in jeder Richtung zwischen
den Knoten verlaufen, vergleichmäßigt wird, erreicht
das System eine Ausnutzung der virtuellen Kanalpuffer für eine zufällige Belastung.
-
Mit
diesen Ausgleichskriterien kann die optimale Zuordnung der 24 besser
quantifiziert werden. Bei der einfachen Zuordnung verlassen die
Knoten Eins und Zwei nur ausgezogene Pfeile, und für mehrere der
physikalischen Kanäle
gibt es keine gestrichelten Pfeile, die darüber verlaufen. Das heißt, daß mit der
einfachen Zuordnung viele der Puffer des virtuellen Kanals Eins
nicht genutzt werden. Statt dessen werden die Puffer des virtuellen
Kanals Null doppelt so oft benutzt. Die optimierte Zuordnung rechts
erfüllt
dagegen die Ausgleichskriterien perfekt. Es gibt genau zwei Pfeile
jedes Typs, die in jeden Knoten eintreten oder diesen verlassen,
und es gibt genau einen Pfeil jedes Typs für jeden physikalischen Kanal.
(Jeder optimierte Pfeil besitzt seinen eigenen, ihm zugeteilten
Pufferplatz in den Plus- und Minus-Richtungen).
-
Unglücklicherweise
geraten manchmal die Blockade-Kriterien und die Kriterien für den Ausgleich
der Puffernutzung in Konflikt. Bei der optimierten Zuordnung der 24 lagen
zwar die Blockadevermeidung und der Ausgleich der virtuellen Kanalwege
im Gleichgewicht, bei einem größeren Torus
wird jedoch in der Regel ein perfekter Ausgleich mit nur zwei virtuellen
Kanälen
unmöglich,
da die Grenzlinien eine stärkere
Einschränkung
bewirken. Die vorliegende Beschreibung erläutert auch einige virtuelle
Kanalzuordnungsalgorithmen, die die Ausgleichkriterien variabel
erfüllen.
(Sie alle erfüllen
die Blockadekriterien).
-
Eine
der betrachteten virtuellen Kanalzuordnungstechniken ist eine kleine
Variante der einfachen Zuordnung der 24. Diese
Zuordnung wird Standardzuordnung genannt; sie ist in der 25 gezeigt.
Alle Pfeile in die negative Richtung sind die gleichen wie bei der
einfachen Ausführung
(alle negativ laufenden Pfeile, die nicht die Grenzlinie überqueren,
benutzen den virtuellen Kanal Null). Alle Pfeile, die in die Plus-Richtung zeigen,
be nutzen den gegenüberliegenden
virtuellen Kanal Null, wenn sie keine Grenzlinie überqueren.
Alle Pfeile, die in die Plus-Richtung zeigen, benutzen den der einfachen
Lösung
gegenüberliegenden
virtuellen Kanal. (Alle Pfeile der Länge Null laufen in die Plus-Richtung).
Im Endeffekt verändert
die Standardlösung
die Position der Grenzlinien. Statt sowohl für die positive als auch die
negative Richtung die gleiche Grenzlinie zu verwenden, werden die
beiden Richtungen unabhängig
behandelt. Das Ergebnis dieser Standardzuordnung ist ein besserer
virtueller Kanalmix als bei der einfachen Zuordnung; zum Beispiel
gibt es keine Knoten mehr, deren abgehende Pfeile alle die gleiche
Farbe haben.
-
Eine
andere Alternative für
die virtuelle Kanalzuordnung wird "Ursprungszuordnung" genannt. Eine Ausführung davon ist ebenfalls in
der 25 gezeigt. Die Knoten eines Torus sind auf zwei
benachbarte Hälften
aufgeteilt, eine oben und die andere unten, wie es in der 25 gezeigt
ist. Alle Bögen,
die aus einer Hälfte kommen,
sind ausgezogen, und alle Bögen,
die aus der anderen Hälfte
kommen, sind gestrichelt, mit der Ausnahme, daß die Bögen, die in die positive Richtung
zeigen, invertiert sind (die Farbe der Bögen der Länge Null gleicht die Anzahl
von gepunkteten und gestrichelten Bögen aus einem Knoten aus).
Bei der Ursprungszuordnung liegen die Grenzlinien für den virtuellen
Kanal Null und den virtuellen Kanal Eins an den Rändern der
Aufteilung, da kein Pfeil aus einer Hälfte in die andere und zurück in die
erste Hälfte
verläuft.
Die Verbesserung der Ursprungszuordnung gegenüber der einfachen Zuordnung
liegt größtenteils
in der Auswahl der nicht eingeschränkten Pfeile, um die Nutzung
der beiden virtuellen Kanäle
besser auszugleichen. Die Anordnung der Grenzlinie ist im wesentlichen
die gleiche wie bei der einfachen Zuordnung.
-
Da
angenommen wird, daß die
Software das MPP-System oft aufteilt, wobei verschiedene Aufteilungen
für verschiedene
Zwecke vorgesehen sind, kann ein anderes Schema geprüft werden,
das Aufteilungszuordnung genannt wird. Eine 6-Knoten-Zuordnung dieser
Art ist in der 26 unten gezeigt. Wie bei der
Ursprungszuordnung teilt das System auch hier eine Dimension in
Hälften
auf, wobei jede Hälfte
die Rechenknoten enthält,
die in einer Unterteilung der Dimension (plus auch die I/O- und
redundante Knoten) enthalten sind. Wenn die Software eine Dimension
unterteilt, sind Nachrichten innerhalb einer Unterteilung häufiger als
Nachrichten über
die Unterteilung hinweg, so daß das
System zuerst die Pfeile in einer Unterteilung optimiert und den
Pfeilen, die eine Unterteilung überqueren,
weniger Beachtung schenkt. Da das System die Grenzlinien in der
Nähe der
Aufteilungsgrenzen anordnet, besteht innerhalb der Unterteilung
eine vollständige
Freiheit zum Zuordnen der virtuellen Kanäle. Innerhalb einer Unterteilung
erfolgt eine lineare Zuordnung in Längsrichtung. Dies ist im oberen
Teil der 26 gezeigt. Im wesentlichen
wechselt das System mit der linearen Längszuordnung innerhalb der
Unterteilung zwischen den virtuellen Kanälen in Abhängigkeit von der Pfeillänge. Auf
Blockaden muß nur
bei den Bögen
geachtet werden, die Aufteilungsgrenzen überqueren. Alle Bögen, die
die Aufteilungsgrenzen auf der rechten Seite überqueren (in der Plus- oder
der Minus-Richtung)
sind ausgezogen, wenn sie durch einen oder mehr Knoten in der anderen
Hälfte laufen,
anderenfalls sind sie gestrichelt. Gleichermaßen sind die links überquerenden
Bögen gestrichelt,
wenn sie einen oder mehr Knoten in der anderen Hälfte durchlaufen, und anderenfalls
ausgezogen. Die Aufteilungszuordnung verbessert die Ausnutzung der virtuellen
Kanalpuffer gegenüber
der einfachen Lösung
durch Verschieben der Grenzlinien und durch eine bessere Zuordnung
der nicht eingeschränkten
Pfeile (insbesondere innerhalb einer Unterteilung).
-
Leistungsvergleich zwischen
verschiedenen Zuordnungsalternativen
-
Die
vorliegende Beschreibung vergleicht die Alternativen für die Standard-,
die Ursprungs- und die Aufteilungszuordnung der virtuellen Kanäle bei der
gleichen zufälligen
Belastung durch eine Aktualisierungsschleife wie vorher. Es erfolgt
auch ein Vergleich mit einem System ohne Torusverbindung und linearer
virtueller Kanalzuordnung in Längsrichtung
und der ursprünglichen
einfachen Lösung.
Um Simulationszeit zu sparen, erzeugt das System in den X- und Y-Dimensionen
eines MPP-Systemsimulators nur einen Knoten und variiert die Anzahl
von Knoten längs
der Z-Dimension. Die Z-Dimension wird gewählt, da sie diejenige Dimension
ist, bei der die virtuelle Kanalzuordnung am kritischsten ist, da
die Zuordnung nicht nur die Ausnutzung der Schaltchippuffer bestimmt,
sondern auch die Ausnutzung der Ausgangspuffer (wie in der 22 gezeigt). Die
Simulationen erfolgten für
Z-Dimensionen für
sowohl 8 als auch 16 Knoten (16 und 32 Prozessoren). Die Tabelle
7 zeigt die Ergebnisse. Um die Ergebnisse in eine Relation zu setzen,
wurde ein ähnliches
Experiment mit 8 Prozessoren in einem 1 × 1 × 4-System ausgeführt, um
die einfache mit der optimierten Version der 24 zu
vergleichen. In diesem Fall verringerte die optimierte Version die
Ausführungszeit
um 6,6%. 6,6% ist weniger als ein Drittel der 24% Verringerung der
Ausführungszeit
mit einem 4 × 4 × 4-System.
Es ist daher zu erwarten, daß die
Leistungsunterschiede in einem größeren System, das von allen
drei Dimensionen Gebrauch macht, beträchtlich größer sind als wie in der Tabelle
7 (vielleicht um einen Faktor drei größer).
-
Die
Ergebnisse zeigen, daß,
obwohl der Aufteilungsalgorithmus besonders für eine aufgeteilte Belastung
entwickelt wurde und nicht für
die zufällige
Belastung hier, er im 16-Prozessor-Fall
besser ist als alle anderen Alternativen und im 32-Prozessor-Fall
gleich oder besser ist. Im 16-Prozessor-Fall ist er um 8–10% besser
als die einfache, Standard-, und Ursprungsalternative. Im 32-Prozessor-Fall
sind die Aufteilungs- und Ursprungsalternative etwa gleich und die
einfache und Standardalternative relativ schlechter. Die einfache
und Standardalternative sind nur um 10% besser als im Nicht-Torus-Fall.
Das zeigt, daß ein
System ohne Torusverbindungen, aber mit einer guten virtuellen Kanalzuordnung
fast besser ist als ein Torus mit einer schlechten virtuellen Kanalzuordnung.
Bei 32 Prozessoren erledigt jeder Prozessor die gleiche Arbeitsmenge.
Die Ausführungszeiten
verdoppeln sich etwa, da die Anzahl von Sprüngen für jede Nachricht in etwa doppelt
so groß ist
wie bei 16 Prozessoren.
-
Tabelle
7 Experiment
für die
Leistung der virtuellen Kanalzuordnung (Zufällig)
-
In
der Tabelle 7 werden wie in der Tabelle 6 die Alternativen für die virtuelle
Kanalzuordnung in der Aktualisierungsschleife verglichen, die im
obigen Abschnitt beschrieben sind. Gezeigt sind die Ausführungszeiten
(min und max) relativ zu der minimalen Zeit für den Aufteilungsalgorithmus
mit 16 Prozessoren.
-
Da
die Aufteilung ein weiteres wichtiges Attribut für die Belastung eines MPP-Systems sein kann,
werden hier auch die Ergebnisse für eine lokale Belastung verglichen.
Die Aktualisierungsschleife wurde so modifiziert, daß die zufällige Aktualisierung
nur die Knoten innerhalb einer Unterteilung betrifft. Die Ergebnisse sind
in der Tabelle 8 gezeigt. Es ergibt sich, daß der Aufteilungs- und der
Kein-Torus-Algorithmus gleich sind. Das ist nicht überraschend,
da sie beide eine lineare virtuelle Kanalzuordnung in Längsrichtung
verwenden. Die Ergebnisse zeigen auch, daß bei einer aufgeteilten Belastung
und mit 32 Prozessoren beide um über
10% besser sind als die anderen Schema für die virtuelle Kanalzuordnung.
Mit dem möglichen
Faktor für
das Dreifache können
diese 10% Unterschied zu 30% (oder mehr) Unterschied im Systemdurchsatz
führen.
-
Tabelle
8 Experiment
für die
Leistung der virtuellen Kanalzuordnung (Lokal)
-
In
der Tabelle 8 werden die Alternativen für die virtuelle Kanalzuordnung
für eine
lokale Aktualisierungsschleife verglichen. Gezeigt sind die Ausführungszeiten
(min und max) relativ zu der minimalen Zeit für den Aufteilungsalgorithmus
mit 16 Prozessoren.
-
Es
ist selbstverständlich
unerwünscht,
wenn ein System mit Torusverbindungen schlechter ist als ein System
ohne Torusverbindungen, wie die Ergebnisse in der Tabelle 8 zeigen.
Dieses Ergebnis zeigt den Nachteil der Blockadevermeidung der einfachen,
Standard- und Ursprungsstrategien der virtuellen Kanalzuordnung.
Wenn die Maschine aufgeteilt ist, wird die Torusverbindung nicht
nach einem der Leitwegschemas benutzt. Die einfache, Standard- und
Ursprungsstrategie ordnet jedoch die virtuellen Kanäle nach
wie vor so zu, als ob eine Blockade ein Thema wäre. Wenn nicht die Systemnachrichten
berücksichtigt
werden müßten, die Aufteilungsgrenzen überqueren
können,
könnte
das System die Routingtabellen jedesmal dann aktualisieren, wenn
die Maschine aufgeteilt wird, um aus der linearen virtuellen Kanalzuordnung
in Längsrichtung
Nutzen zu ziehen und den Nachteil der Blockadevermeidung des Torus
zu beseitigen. In jedem Fall ist jedoch der Aufteilungsalgorithmus
in der Regel die bessere Lösung.
Er stellt einen festen Zuordnungsalgorithmus für die virtuellen Kanäle dar,
der sowohl in Aufteilungs- als auch in Nicht-Aufteilungsfällen gut
arbeitet, so daß es
nicht erforderlich ist, die Routingtabellen dynamisch zu erneuern,
da es keinen Blockadevermeidungsnachteil gibt, wenn die Maschine
aufgeteilt wird.
-
Schluß
-
Die
vorliegende Beschreibung zeigt, daß, auch wenn es der Hauptzweck
der virtuellen Kanäle
ist, eine Blockade zu vermeiden, die Zuordnung der virtuellen Kanäle einen
großen
Einfluß auf
die zur Verfügung
stehende Bandbreite des Netzwerks in einem MPP-System haben kann. Da die Kommunikations-Leistungsfähigkeit
unzweifelhaft ein großer
Faktor für
die Systemleistung eines MPP-Systems ist, ist es wichtig, die Nachrichten
sorgfältig
den virtuellen Kanälen
zuzuordnen, um die Netzwerkleistung zu verbessern.
-
In
der vorliegenden Beschreibung sind die Probleme mit der Zuordnung
der virtuellen Kanäle
bei einem MPP-System beschrieben. Dann wurde gezeigt, daß eine optimierte
virtuelle Kanalzuordnung für
eine Aktualisierungsschleifenbelastung mit zufälligem Netzwerkverkehr eine
Verringerung der Ausführungszeit
von 24% ergibt. Es wurden dann Kriterien entwickelt, die die Leistungsunterschiede
für verschiedene
virtuelle Kanalzuordnungen erläutern.
Das Ziel der virtuellen Kanalzuordnung sollte sein, die Benutzung
der beiden virtuellen Kanalpuffer, die die Daten von jeder physikalischen
Verbindung aufnehmen, zu vergleichmäßigen. Dies erfolgt durch das
Ausgleichen der Zahl an Pfeilen für jede physikalische Verbindung.
-
Es
wurden mehrere Algorithmen betrachtet, die diese Ausgleichskriterien
erfüllen
sollen. Eine bestimmte Alternative, die Aufteilungszuordnung, war
sowohl für
zufällige
als auch aufgeteilte Belastungen besser als die anderen Algorithmen.
Die virtuelle Kanalzuordnungssoftware der vorliegenden Beschreibung
verringert bei der Simulation nur einer einzigen Dimension die Ausführungszeit
um 10%. Bei der Simulation aller drei Dimensionen kann die Leistungsverbesserung
leicht das Dreifache betragen.
-
Es
wird noch auf die folgenden Dokumente hingewiesen: W. J. Dally und
C. L. Seitz, "Deadlock-free Message
Routing in Multiprocessor Interconnection Networks", IEEE Transactions
on Computers, Bd. 36, Nr. 5, Mai 1987, Seiten 546–553; W.
J. Dally, "Virtual-Channel
Flow Control", IEEE
Transactions on Parallel and Distributed Systems, Bd. 3, Nr. 2,
März 1992,
Seiten 194–205;
R. Passint, MPP-0 Network Interconnect Description, November 1991;
G. Thorson, MPP-1 Router Architecture and Implementation, Juli 1992.