DE69434421T2 - Mehrdimenzionales verbindungs- und leitwegnetzwerk für einen mpp rechner - Google Patents

Mehrdimenzionales verbindungs- und leitwegnetzwerk für einen mpp rechner Download PDF

Info

Publication number
DE69434421T2
DE69434421T2 DE69434421T DE69434421T DE69434421T2 DE 69434421 T2 DE69434421 T2 DE 69434421T2 DE 69434421 T DE69434421 T DE 69434421T DE 69434421 T DE69434421 T DE 69434421T DE 69434421 T2 DE69434421 T2 DE 69434421T2
Authority
DE
Germany
Prior art keywords
virtual channel
virtual
processing element
messages
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69434421T
Other languages
English (en)
Other versions
DE69434421D1 (de
Inventor
S. Mark BIRRITTELLA
E. Richard KESSLER
M. Steven OBERLIN
S. Randal PASSINT
Creg Thorson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Graphics Properties Holdings Inc
Original Assignee
Silicon Graphics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Graphics Inc filed Critical Silicon Graphics Inc
Application granted granted Critical
Publication of DE69434421D1 publication Critical patent/DE69434421D1/de
Publication of DE69434421T2 publication Critical patent/DE69434421T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/10Routing in connection-oriented networks, e.g. X.25 or ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/251Cut-through or wormhole routing

Description

  • 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 26a26f 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
    Figure 00100001
  • 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
    Figure 00100002
  • 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
    Figure 00180001
  • Tabelle 5 Eingangskanalpriorität – Zählerbits 4 und 3
    Figure 00180002
  • 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
    Figure 00240001
  • 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)
    Figure 00280001
  • 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)
    Figure 00290001
  • 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.

Claims (9)

  1. Verfahren zum Verhindern des gegenseitigen Blockierens in einem Multiprozessor-Computersystem mit mehreren 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 zweier virtueller Kanäle für jede der n Dimensionen, wobei jeder einzelne 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 einzelnen der virtuellen Kanäle, 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 gegenseitiges 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.
  2. Verfahren nach Anspruch 1, mit einem Schritt zum Anordnen der festgelegten Grenzlinien unter Verringerung von Ungleichgewichten in der Nutzung der beiden virtuellen Kanäle für jeden Verarbeitungselementknoten und zur Vermeidung gegenseitigen Blockierens.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zwischen den Verarbeitungselementknoten über die physikalischen Kommunikationswege übermittelten Nachrichten Anforderungs- und Antwortinformationen enthalten und der Schritt zum Festlegen zweier virtueller Kanäle das Zuordnen zweier Arten virtueller Kanalpuffer, die Anforderungsinformationen speichern können, und das Zuordnen zweier Arten virtueller Kanalpuffer, die Antwortinformationen speichern können, beinhaltet.
  4. Verfahren nach einem der vorhergehenden Ansprüche, mit Schritten zum Unterteilen der Verarbeitungselementknoten in mindestens zwei Bereiche für jede der n Dimensionen und zum Anordnen der festgelegten Grenzlinien an den Grenzen der mindestens zwei Bereiche.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Zuordnungsschritte so ausgeführt werden, daß Nachrichten zwischen den beiden virtuellen Kanälen innerhalb der mindestens zwei Bereiche zugeordnet werden, bevor Nachrichten zwischen den beiden virtuellen Kanälen, die Bereichsgrenzen überqueren, zugeordnet werden.
  6. Verfahren nach Anspruch 5, wobei die Zuordnung von Nachrichten zwischen den beiden virtuellen Kanälen innerhalb der mindestens zwei Bereiche ein Wechseln der Zuordnung zwischen den beiden virtuellen Kanälen in Abhängigkeit von den Längen der zugehörigen physikalischen Kommunikationswege beinhaltet.
  7. Verfahren nach Anspruch 5, wobei die Zuordnung von Nachrichten zwischen den beiden virtuellen Kanälen, die Bereichsgrenzen überqueren, beinhaltet, daß alle virtuellen Kanalpuffer, die physikalischen Kommunikationswegen zugeordnet sind, die nach dem Überqueren von Bereichsgrenzen ein oder mehrere Verarbeitungselementknoten passieren, auf einer ersten Seite dem ersten virtuellen Kanal und alle anderen virtuellen Kanalpuffer, die physikalischen Kommunikationswegen zugeordnet sind, die Bereichsgrenzen überqueren, auf der ersten Seite dem zweiten virtuellen Kanal zugeordnet werden, und alle virtuellen Kanalpuffer, die physikalischen Kommunikationswegen zugeordnet sind, die nach dem Überqueren von Bereichsgrenzen einen oder mehrere Verarbeitungselementknoten passieren, auf einer zweiten Seite dem zweiten virtuellen Kanal und alle anderen virtuellen Kanalpuffer, die physikalischen Kommunikationswegen zugeordnet sind, die Bereichsgrenzen überqueren, auf der zweiten Seite dem ersten virtuellen Kanal zugeordnet werden.
  8. Multiprozessor-Computersystem, mit einer Anzahl von Verarbeitungselementknoten; einem Verbindungsnetzwerk zur gegenseitigen Verbindung 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 einzelne der virtuellen Kanäle einem 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 einzelnen 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 gegenseitiges 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 übertra gen werden sollen, und eine solche Zuordnung von Nachrichten angeben, daß Nachrichten in ihrem zugehörigen 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.
  9. Verfahren nach Anspruch 1, wobei die Zuordnungsschritte zur Verringerung von Ungleichgewichten in der Nutzung der beiden virtuellen Kanäle für jeden Verarbeitungselementknoten ausgeführt werden.
DE69434421T 1993-12-10 1994-12-09 Mehrdimenzionales verbindungs- und leitwegnetzwerk für einen mpp rechner Expired - Fee Related DE69434421T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US165266 1993-12-10
US08/165,266 US5583990A (en) 1993-12-10 1993-12-10 System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
PCT/US1994/014493 WO1995016240A1 (en) 1993-12-10 1994-12-09 Multidimensional interconnection and routing network for an mpp computer

Publications (2)

Publication Number Publication Date
DE69434421D1 DE69434421D1 (de) 2005-08-11
DE69434421T2 true DE69434421T2 (de) 2006-04-27

Family

ID=22598175

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69434421T Expired - Fee Related DE69434421T2 (de) 1993-12-10 1994-12-09 Mehrdimenzionales verbindungs- und leitwegnetzwerk für einen mpp rechner

Country Status (5)

Country Link
US (3) US5583990A (de)
EP (2) EP0733237B1 (de)
JP (2) JPH09509465A (de)
DE (1) DE69434421T2 (de)
WO (1) WO1995016240A1 (de)

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577204A (en) * 1993-12-15 1996-11-19 Convex Computer Corporation Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device
JP3224963B2 (ja) * 1994-08-31 2001-11-05 株式会社東芝 ネットワーク接続装置及びパケット転送方法
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JP3626784B2 (ja) * 1995-03-17 2005-03-09 富士通株式会社 分散メモリ型並列計算機におけるデータ更新方法およびプログラム変換装置
US5996020A (en) * 1995-07-21 1999-11-30 National Security Agency Multiple level minimum logic network
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US5898826A (en) * 1995-11-22 1999-04-27 Intel Corporation Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
US5963731A (en) * 1995-12-25 1999-10-05 Hitachi, Ltd. Method of assisting execution of plural simulation programs for coupled simulation
US8117298B1 (en) 1996-02-26 2012-02-14 Graphon Corporation Multi-homed web server
US5878227A (en) * 1996-07-01 1999-03-02 Sun Microsystems, Inc. System for performing deadlock free message transfer in cyclic multi-hop digital computer network using a number of buffers based on predetermined diameter
US5828858A (en) * 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US5933428A (en) * 1996-12-10 1999-08-03 International Business Machines Corporation Two-tailed adapter for scalable, non-blocking networks
US6289021B1 (en) 1997-01-24 2001-09-11 Interactic Holdings, Llc Scaleable low-latency switch for usage in an interconnect structure
US5903770A (en) * 1997-03-21 1999-05-11 International Business Machines Corporation Incidence graph based communications and operations method and apparatus for parallel processing architecture
US6163392A (en) * 1997-05-23 2000-12-19 Ciena Corporation Distributed intelligence wavelength division multiplexed network
US7039312B1 (en) 1997-05-23 2006-05-02 Ciena Corp Distributed intelligence wavelength division multiplexed network
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6370145B1 (en) * 1997-08-22 2002-04-09 Avici Systems Internet switch router
KR100269174B1 (ko) * 1997-09-19 2000-11-01 윤종용 인다이렉트 로테이터 그래프 네트워크
US6094686A (en) * 1997-10-24 2000-07-25 Compaq Computer Corporation Multi-processor system for transferring data without incurring deadlock using hierarchical virtual channels
US6085303A (en) * 1997-11-17 2000-07-04 Cray Research, Inc. Seralized race-free virtual barrier network
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6205532B1 (en) 1998-05-22 2001-03-20 Avici Systems, Inc. Apparatus and methods for connecting modules using remote switching
US6717942B1 (en) * 1998-06-25 2004-04-06 Avici Systems, Inc. Space-efficient source routing
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6938094B1 (en) 1999-09-17 2005-08-30 Advanced Micro Devices, Inc. Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US6598145B1 (en) * 1999-02-12 2003-07-22 Avici Systems Irregular network
JP2003512746A (ja) * 1999-05-21 2003-04-02 エイヴィシー・システムズ フリット・キャッシングを備えたファブリック・ルータ
US6802066B1 (en) * 1999-07-22 2004-10-05 Unisys Corporation Method and system to share circular buffer without using locking mechanism
US7310688B1 (en) 1999-08-30 2007-12-18 Ciena Corporation Relative addressing for network elements
US6888843B2 (en) * 1999-09-17 2005-05-03 Advanced Micro Devices, Inc. Response virtual channel for handling all responses
US6950438B1 (en) 1999-09-17 2005-09-27 Advanced Micro Devices, Inc. System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6628615B1 (en) * 2000-01-18 2003-09-30 International Business Machines Corporation Two level virtual channels
US6961782B1 (en) * 2000-03-14 2005-11-01 International Business Machines Corporation Methods for routing packets on a linear array of processors
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US6826148B1 (en) 2000-07-25 2004-11-30 Sun Microsystems, Inc. System and method for implementing a routing scheme in a computer network using intention packets when fault conditions are detected
US6741561B1 (en) 2000-07-25 2004-05-25 Sun Microsystems, Inc. Routing mechanism using intention packets in a hierarchy or networks
US6925056B1 (en) 2000-07-25 2005-08-02 Sun Microsystems, Inc. System and method for implementing a routing scheme using intention packets in a computer network
US7002975B2 (en) * 2000-08-11 2006-02-21 Texas Instruments Incorporated Multiprocessor network node failure detection and recovery
US7039058B2 (en) * 2000-09-21 2006-05-02 Avici Systems, Inc. Switched interconnection network with increased bandwidth and port count
US6947433B2 (en) * 2000-09-21 2005-09-20 Avici Systems, Inc. System and method for implementing source based and egress based virtual networks in an interconnection network
US7046633B2 (en) * 2000-09-21 2006-05-16 Avici Systems, Inc. Router implemented with a gamma graph interconnection network
US6996504B2 (en) * 2000-11-14 2006-02-07 Mississippi State University Fully scalable computer architecture
US7401161B2 (en) * 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
US6718428B2 (en) * 2000-12-18 2004-04-06 Sun Microsystems, Inc. Storage array interconnection fabric using a torus topology
US6874040B2 (en) 2000-12-19 2005-03-29 International Business Machines Corporation Employing a data mover to communicate between dynamically selected zones of a central processing complex
US7072976B2 (en) * 2001-01-04 2006-07-04 Sun Microsystems, Inc. Scalable routing scheme for a multi-path interconnection fabric
US6766464B2 (en) * 2001-02-13 2004-07-20 Sun Microsystems, Inc. Method and apparatus for deskewing multiple incoming signals
WO2002069097A2 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer
IL157515A0 (en) * 2001-02-24 2004-03-28 Ibm Optimized scalable network switich
JP4688316B2 (ja) * 2001-02-28 2011-05-25 独立行政法人産業技術総合研究所 シミュレーション装置とシミュレーション方法、及び映像生成装置と映像生成方法
US6909695B2 (en) * 2001-05-07 2005-06-21 Sun Microsystems, Inc. Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
DE60136168D1 (de) 2001-06-28 2008-11-27 Nokia Corp Verfahren zum Ermöglichen von Übertragung zwischen Prozessen und Verarbeitungssystem unter Verwendung desselben
US20030016677A1 (en) * 2001-07-17 2003-01-23 Karl Mauritz Fabric bus architeture
US7000033B2 (en) * 2001-09-28 2006-02-14 Sun Microsystems, Inc. Mapping of nodes in an interconnection fabric
US7027413B2 (en) * 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
US6715055B1 (en) * 2001-10-15 2004-03-30 Advanced Micro Devices, Inc. Apparatus and method for allocating buffer space
US7346099B2 (en) * 2002-01-03 2008-03-18 Intel Corporation Network fabric physical layer
EP1367778A1 (de) * 2002-05-31 2003-12-03 Fujitsu Siemens Computers, LLC Vernetztes Computersystem und Methode unter Verwendung eines doppelten bidirektionalen Kommunikationsrings
US20040019765A1 (en) * 2002-07-23 2004-01-29 Klein Robert C. Pipelined reconfigurable dynamic instruction set processor
US20040199894A1 (en) * 2002-07-23 2004-10-07 Klein Robert C. Interconnect structure for electrical devices
AU2002952023A0 (en) * 2002-10-14 2002-10-31 Curtin University Of Technology Implementation of constraints to ensure deadlock avoidance in networks
US6950905B2 (en) * 2003-02-20 2005-09-27 Sun Microsystems, Inc. Write posting memory interface with block-based read-ahead mechanism
US7324564B2 (en) * 2003-02-20 2008-01-29 Sun Microsystems, Inc. Transmitting odd-sized packets over a double data rate link
GB2400195B (en) * 2003-03-31 2005-06-29 Micron Technology Inc Active memory processing array topography and method
US7003594B2 (en) * 2003-05-12 2006-02-21 Sun Microsystems, Inc. Streaming protocol for storage devices
US7379424B1 (en) * 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US8335909B2 (en) * 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
WO2006088788A1 (en) * 2005-02-17 2006-08-24 The George Washington University Network router based on combinatorial designs
US7581079B2 (en) * 2005-03-28 2009-08-25 Gerald George Pechanek Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
CN101189843B (zh) * 2005-06-03 2011-06-15 皇家飞利浦电子股份有限公司 电子设备和通信资源分配方法
US20070041392A1 (en) * 2005-08-22 2007-02-22 Aaron Kunze Adaptive message buffering
US7643477B2 (en) * 2005-08-24 2010-01-05 Intel Corporation Buffering data packets according to multiple flow control schemes
US8325768B2 (en) * 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
KR20080067328A (ko) 2005-09-06 2008-07-18 비욘드 블라데스 리미티드 3dmc 아키텍처
US7516301B1 (en) * 2005-12-16 2009-04-07 Nvidia Corporation Multiprocessor computing systems with heterogeneous processors
KR100730279B1 (ko) * 2005-12-16 2007-06-19 삼성전자주식회사 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
PL2016724T3 (pl) 2006-05-11 2011-04-29 Qualcomm Inc Trasowanie w sieci kratowej
US20080059676A1 (en) * 2006-08-31 2008-03-06 Charles Jens Archer Efficient deferred interrupt handling in a parallel computing environment
US20080059677A1 (en) * 2006-08-31 2008-03-06 Charles Jens Archer Fast interrupt disabling and processing in a parallel computing environment
US7962717B2 (en) * 2007-03-14 2011-06-14 Xmos Limited Message routing scheme
US7809970B2 (en) * 2007-08-27 2010-10-05 International Business Machines Corporation System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture
US8014387B2 (en) 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US7822889B2 (en) * 2007-08-27 2010-10-26 International Business Machines Corporation Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture
US7958182B2 (en) * 2007-08-27 2011-06-07 International Business Machines Corporation Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture
US8185896B2 (en) 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
US7840703B2 (en) 2007-08-27 2010-11-23 International Business Machines Corporation System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture
US7769891B2 (en) * 2007-08-27 2010-08-03 International Business Machines Corporation System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture
US8108545B2 (en) * 2007-08-27 2012-01-31 International Business Machines Corporation Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture
US7958183B2 (en) * 2007-08-27 2011-06-07 International Business Machines Corporation Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture
US7793158B2 (en) * 2007-08-27 2010-09-07 International Business Machines Corporation Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture
US7904590B2 (en) * 2007-08-27 2011-03-08 International Business Machines Corporation Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture
US7769892B2 (en) * 2007-08-27 2010-08-03 International Business Machines Corporation System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture
US8140731B2 (en) * 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using a multi-tiered full-graph interconnect architecture
US7827428B2 (en) 2007-08-31 2010-11-02 International Business Machines Corporation System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7921316B2 (en) * 2007-09-11 2011-04-05 International Business Machines Corporation Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US8407660B2 (en) * 2007-09-12 2013-03-26 Neal Solomon Interconnect architecture in three dimensional network on a chip
US7779148B2 (en) * 2008-02-01 2010-08-17 International Business Machines Corporation Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
US8077602B2 (en) 2008-02-01 2011-12-13 International Business Machines Corporation Performing dynamic request routing based on broadcast queue depths
US20090198956A1 (en) * 2008-02-01 2009-08-06 Arimilli Lakshminarayana B System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture
US8122228B2 (en) * 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
JP5212469B2 (ja) * 2008-05-15 2013-06-19 富士通株式会社 コンピュータシステム及びコンピュータシステムの制御方法
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US8327114B1 (en) * 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US20100017513A1 (en) * 2008-07-16 2010-01-21 Cray Inc. Multiple overlapping block transfers
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US8531943B2 (en) 2008-10-29 2013-09-10 Adapteva Incorporated Mesh network
US8862538B2 (en) * 2008-12-18 2014-10-14 International Business Machines Corporation Maintaining a network connection of a workload during transfer
JP2010218364A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 情報処理システム、通信制御装置および方法
CN102597959B (zh) * 2009-11-16 2015-04-15 国际商业机器公司 对包含多对多通信的多个计算处理进行调度的方法和系统
US8417778B2 (en) * 2009-12-17 2013-04-09 International Business Machines Corporation Collective acceleration unit tree flow control and retransmit
US8819272B2 (en) 2010-02-11 2014-08-26 Massachusetts Institute Of Technology Multiprocessor communication networks
US8401012B2 (en) * 2010-09-15 2013-03-19 Intel Corporation Packet routing
JP5696779B2 (ja) * 2011-03-22 2015-04-08 富士通株式会社 並列計算機システム及び並列計算機システムの制御方法
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
CN103244557A (zh) * 2012-02-08 2013-08-14 张玉宝 一种径轴向磁悬浮轴承
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9324126B2 (en) * 2012-03-20 2016-04-26 Massively Parallel Technologies, Inc. Automated latency management and cross-communication exchange conversion
CN104662525B (zh) 2012-09-24 2017-05-03 富士通株式会社 并行计算机、节点装置以及并行计算机的控制方法
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
CN103777921B (zh) * 2012-10-24 2016-08-31 北京临近空间飞行器系统工程研究所 一种高可靠性指令传输系统
US9009648B2 (en) * 2013-01-18 2015-04-14 Netspeed Systems Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
WO2014152800A1 (en) 2013-03-14 2014-09-25 Massively Parallel Technologies, Inc. Project planning and debugging from functional decomposition
CN104179801A (zh) * 2013-05-26 2014-12-03 张玉宝 一种径轴向磁悬浮复合单元
US9166886B1 (en) 2013-06-19 2015-10-20 Google Inc. Systems and methods for determining physical network topology
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US10185691B2 (en) 2013-07-30 2019-01-22 Hewlett Packard Enterprise Development Lp Two-dimensional torus topology
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9473415B2 (en) 2014-02-20 2016-10-18 Netspeed Systems QoS in a system with end-to-end flow control and QoS aware buffer allocation
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
CN104374511B (zh) * 2014-12-09 2016-06-29 株洲联诚集团有限责任公司 一种三相感应电机转子轴承径向力测量装置及测量方法
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US9444702B1 (en) 2015-02-06 2016-09-13 Netspeed Systems System and method for visualization of NoC performance based on simulation output
US9928204B2 (en) 2015-02-12 2018-03-27 Netspeed Systems, Inc. Transaction expansion for NoC simulation and NoC design
US9568970B1 (en) 2015-02-12 2017-02-14 Netspeed Systems, Inc. Hardware and software enabled implementation of power profile management instructions in system on chip
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US10050843B2 (en) 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
US9864728B2 (en) 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
KR102178740B1 (ko) * 2017-11-22 2020-11-13 한국전자통신연구원 토러스 네트워크 기반의 분산 파일 시스템을 위한 서버 및 이를 이용한 방법
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
GB201904266D0 (en) * 2019-03-27 2019-05-08 Graphcore Ltd A networked computer with embedded rings
EP3952234A4 (de) * 2019-04-17 2022-05-18 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zur einstellung eines virtuellen kanals eines datenstroms
US10756813B1 (en) * 2019-05-03 2020-08-25 Cisco Technology, Inc. Broadband subscriber switchover in a ring network
US11245643B2 (en) 2020-05-20 2022-02-08 Tenstorrent Inc. Speculative resource allocation for routing on interconnect fabrics
US11949595B2 (en) 2020-06-26 2024-04-02 Intel Corporation Reflection routing as a framework for adaptive modular load balancing for multi-hierarchy network on chips
WO2022212598A1 (en) * 2021-03-30 2022-10-06 Siegel Oliver A crowdsourced problem-solution directory
US11784930B2 (en) 2021-04-30 2023-10-10 Bank Of America Corporation Communication system with auto-routing and load balancing
US11469988B1 (en) 2021-04-30 2022-10-11 Bank Of America Corporation Communication analysis for dynamic auto-routing and load balancing
US11792108B2 (en) 2021-04-30 2023-10-17 Bank Of America Corporation Dynamic auto-routing and load balancing for communication systems

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814973A (en) * 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
JP2644718B2 (ja) * 1983-12-28 1997-08-25 株式会社日立製作所 コンピュータシステム
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US4933933A (en) * 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
US4984235A (en) * 1987-04-27 1991-01-08 Thinking Machines Corporation Method and apparatus for routing message packets and recording the roofing sequence
US5170482A (en) * 1987-08-14 1992-12-08 Regents Of The University Of Minnesota Improved hypercube topology for multiprocessor computer systems
US5008882A (en) * 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
US5105424A (en) * 1988-06-02 1992-04-14 California Institute Of Technology Inter-computer message routing system with each computer having separate routinng automata for each dimension of the network
US5117350A (en) * 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
JP3072646B2 (ja) * 1989-03-20 2000-07-31 富士通株式会社 並列計算機間通信制御方式
US5134690A (en) * 1989-06-26 1992-07-28 Samatham Maheswara R Augumented multiprocessor networks
US5218676A (en) * 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
US5210705A (en) * 1990-02-28 1993-05-11 Texas Instruments Incorporated Digital filtering with single-instruction, multiple-data processor
US5201044A (en) * 1990-04-16 1993-04-06 International Business Machines Corporation Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory
US5313645A (en) * 1991-05-13 1994-05-17 International Business Machines Corporation Method for interconnecting and system of interconnected processing elements by controlling network density
US5383191A (en) * 1990-12-20 1995-01-17 International Business Machines Corporation Dual ring reconfiguration switching unit
EP0562251A2 (de) * 1992-03-24 1993-09-29 Universities Research Association, Inc. Durch ein dynamisches wiederkonfigurierbares serielles Netzwerk gesteuertes Paralleldatenübertragungsnetzwerk
EP0632912B1 (de) * 1992-03-25 2001-01-31 Sun Microsystems, Inc. Echtzeitverarbeitungssystem
EP0570729A3 (en) * 1992-05-22 1994-07-20 Ibm Apap i/o programmable router
US5390164A (en) * 1993-10-22 1995-02-14 At&T Corp. Ring interworking between bidirectional line-switched ring transmission systems

Also Published As

Publication number Publication date
JPH09506456A (ja) 1997-06-24
WO1995016240A1 (en) 1995-06-15
EP0733237B1 (de) 2005-07-06
US5737628A (en) 1998-04-07
DE69434421D1 (de) 2005-08-11
EP0733237A1 (de) 1996-09-25
JPH09509465A (ja) 1997-09-22
US5583990A (en) 1996-12-10
EP1001351A1 (de) 2000-05-17
US5797035A (en) 1998-08-18

Similar Documents

Publication Publication Date Title
DE69434421T2 (de) Mehrdimenzionales verbindungs- und leitwegnetzwerk für einen mpp rechner
DE69832884T2 (de) Wegesucheinheit mit zuteilung von virtuellen kanälen
DE112009000899B4 (de) Verfahren und Vorrichtung zur hierarchischen Verkehrsführung in gitterbasierten Multiprozessorsystemen
DE60033099T2 (de) Hochkapazitäts WDM-TDM Paketvermittlungseinrichtung
Chien et al. Planar-adaptive routing: low-cost adaptive networks for multiprocessors
DE69534729T2 (de) Verfahren zur Anfragelenkung für eine virtuelle Verbindung in Abhängigkeit vor Informationen über gleichzeitige Anfragen
DE69837335T2 (de) Vielfach-array-prozessor und verbindungssystem
DE69533680T2 (de) Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel
DE60208252T2 (de) Vorrichtung für ein Mehrrechnersystem mit einer mehrstufigen Verbindungsanordnung
DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
EP1342158A2 (de) Pipeline ct-protokolle und -kommunikation
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
DE102007011143A1 (de) Ein Verfahren zum Optimieren des Leitens von Anforderungen in einem Netz
US20040054870A1 (en) Control of processing elements in parallel processors
DE602005002325T2 (de) Verfahren zur Verkehrsweiterlenkung, die Verkehrsgewichtungsfaktoren verwendet
EP0461724A2 (de) Multirechnersystem
EP1262051B1 (de) Verfahren zur steuerung der kommunikation von einzelrechnern in einem rechnerverbund
DE602004006955T2 (de) Heterogenes Mehrrechnersystem in Form eines Network on Chip, sowie Verfahren und Betriebssystem zur Kontrolle desselben
EP1038235B1 (de) Vorrichtung zum hierarchischen verbinden einer mehrzahl von funktionseinheiten in einem prozessor
DE19810784B4 (de) Rechnersystem
DE4308512A1 (de) Verfahren zum Routing von Verbindungen in einem Kommunikationsnetz
DE60316363T2 (de) Multisektionsbus in einer funkbasisstation und methode zur verwendung einer solchen funkbasisstation
DE102022212766A1 (de) Grossflächiges netzwerk mit hoher anschluss-auslastung
DE10262074B4 (de) Adaptives verteiltes Verfahren zur Berechnung systemoptimaler Routen in paketvermittelnden Kommunikationsnetzen

Legal Events

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