-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf die optimale Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen eine Vielzahl von Knoten (Prozessoren), die ein n-dimensionales (Ring- oder Maschen-) Netzwerk bilden.
-
Hintergrund der Erfindung
-
In Parallelrechnern, die über ein Ring- oder ein Maschen-Netzwerk verbunden sind, beeinflusst die Leistung der Kommunikation zwischen einer Vielzahl von Knoten (Prozessoren) signifikant die Geschwindigkeit der Berechnungsverfahren. Als ein typisches Kommunikationsmuster ist All-to-All Kommunikation (abgekürzt: A2A) bekannt, bei der alle Knoten Daten, welche sich unterscheiden, zu allen anderen Knoten senden, welches den größten Anteil des Kommunikationsverkehr erfordert. Die All-to-All-Kommunikation ist als die Kommunikation bekannt, die häufig in einer Menge von Berechnungen, einschließlich einer Matrix-Transponierung (abgekürzt: T) und einer schnellen Fourier-Transformation (abgekürzt: FFT), verwendet wird. Patentdokument 1 definiert, dass eine Matrix-Transponierung in FFT-Berechnung oder Berechnung als zweidimensionale (2D) FFT in eindimensionaler (1D) FFT-Berechnung der allgemeine Stand der Technik ist. Die eindimensionale FFT wird über eine Vielzahl von Prozessoren verarbeitet, und die zweidimensionale FFT wird über eine Vielzahl von Prozessoren verarbeitet.
-
Patentdokument 2 beschreibt eine Idee, eine effizientere Verarbeitung in All-to-All Kommunikationen in einem n-dimensionalen Ring durch überlagerte Phasen herzustellen. Hier wird die vorliegende Erfindung im Vergleich zu Patentdokument 2 beschrieben. Die vorliegende Erfindung ist es, eine All-to-All Kommunikation in eine Vielzahl von All-to-All Kommunikationen umzuwandeln, um All-to-All Kommunikationen zu pipelinen, wohingegen die vorliegende Erfindung kein Implementierungs-Verfahren in der All-to-All Kommunikation umfasst und deshalb für einen anderen Zweck bestimmt ist. Außerdem unterscheiden sich die geplanten Objekte der vorliegenden Erfindung von denjenigen aus Patentdokument 2 und Patentdokument 2 beinhaltet nicht die Überlagerung von Prozessen mit Ausnahme derjenigen einer All-to-All Kommunikation von Prozessen innerhalb der All-to-All Kommunikation wie in der vorliegenden Erfindung.
-
Die Veröffentlichung von KUMAR, S. [et al.]: Optimization of All-to-all Communication on the Blue Gene/L Supercomputer, IEEE 37th Int. Conf. On Parallel Processing, 2008, S. 320-329, beschreibt ein Verfahren zur Optimierung der All-to-all.Kommunikation am Beispiel des Blue Gene/L Supercomputers.
-
Referenzen des Stands der Technik
-
Patentdokumente
-
- Patentdokument 1: Japanisches Patent JP 3675537 B2
- Patentdokument 2: Japanisches Patent JP 2601591 B2
-
Zusammenfassung der Erfindung
-
Probleme, die durch die Erfindung gelöst werden
-
Es ist erwünscht eine Vielzahl von Berechnungsverfahren effizienter zu machen, einschließlich All-to-All Kommunikationen (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein n-dimensionales (Ring- oder Maschen-) Netzwerk umfassen.
-
Mittel zur Lösung der Probleme
-
Die Vielzahl von Knoten (Prozessoren), die das Netzwerk formen, sind aufgeteilt in eine Berechnungsverfahren-Phase (A2A-L), welche für All-to-All Kommunikation nur zwischen einer Vielzahl von Knoten, enthalten in einer ersten Teil-Gruppe, erforderlich ist, und eine Kommunikations-Phase (A2A-P), welche für All-to-All Kommunikation nur zwischen einer Vielzahl von Knoten, enthalten in einer zweiten Teil-Gruppe, erforderlich ist, um parallele Verarbeitung mit den Phasen, die über eine Vielzahl (Nt) von Threads (Thread 1, Thread 2, Thread 3, Thread, --- Thread Nt) miteinander überlappen, durchzuführen.
-
Vorteile der Erfindung
-
Es ist möglich eine Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikationen (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein n-dimensionales (Ring- oder Maschen-) Netzwerk umfassen, optimal zu planen und dadurch die Rechenleistung zu verbessern.
-
Figurenliste
-
- 1 ist eine schematische Darstellung zur Beschreibung eines Berechnungsverfahrens einer eindimensionalen (1D) FFT (Länge N) auf einem Parallelrechner;
- 2 ist ein schematisches Diagramm, das die Konfiguration eines Knotens (Prozessors) veranschaulicht;
- 3 ist ein Diagramm, das ein vierdimensionales Ringnetzwerk als ein schematisches Diagramm zur Beschreibung einer Netzwerk-Dimension und der längsten Achse veranschaulicht;
- 4 ist ein Diagramm, welches veranschaulicht, wie die Leistung einer parallelisierten 1D FFT entsprechend der Konfiguration der Anzahl der Achsen der Knoten (Prozessoren), die einen Ring formen, variiert;
- 5 ist ein Diagramm, das ein Verfahren zur Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren) durch Anwenden der vorliegenden Erfindung veranschaulicht; und
- 6 ist ein Diagramm, welches veranschaulicht, wie die Leistung einer parallelisierten 1 D FFT entsprechend der Konfiguration der Anzahl der Knoten (Prozessoren) auf den Achsen, die einen Ring bilden, als eine Wirkung der Anwendung der vorliegenden Erfindung, variiert.
-
Beschreibung zur Durchführung der Erfindung
-
1 zeigt eine schematische Darstellung zum Beschreiben eines Berechnungsverfahrens einer eindimensionalen (1D) FFT (Länge N) auf einem Parallelrechner.
-
1 (A) zeigt, dass die parallele Verarbeitung durch Transformieren einer 1D FFT (Länge N) in eine zweidimensionale (2D) FFT (N1, N2) (N = N1 × N2) durchgeführt wird, um die 1D-FFT auf dem Parallelrechner zu berechnen und dann die 2D-FFT in zwei FFTs mit den Längen N1 bzw. N2 aufzuteilen. Mit anderen Worten zeigt 1 (A), dass die parallele Verarbeitung mit verschiedenen Richtungen in zwei Dimensionen (2D) von N1 und N2 durchgeführt wird. Es sollte hier angemerkt werden, dass np die Anzahl der Prozessoren (Knoten) kennzeichnet.
-
1 (B) zeigt einen parallelisierten 1D FFT-Algorithmus. Es ist bekannt, dass die Berechnung in der parallelisierten 1D FFT eine dreimalige Transponierung „T“ im Rahmen der Gewinnung eines Ausgangssignals aus einem Eingangssignal erfordert. Dies wird als allgemeiner Stand der Technik zum Beispiel auch im Patentdokument 1 beschrieben.
-
1 (C) zeigt, dass die Transponierung „T“ die Verarbeitung ist, in der Zeilen und Spalten vertauscht sind. Angenommen i ist eine Zeilennummer und j eine Spaltennummer, dann zeigt 1 (C), dass die Position eines Musters, welches ij entspricht, mit der Position eines Musters, welches ji entspricht, vertauscht ist. In einer ersten Stufe werden All-to-All Kommunikationen (A2A) verwendet, um die Verarbeitung blockweiser Einheiten eines Musters durchzuführen. Daher ist es in einer zweiten Stufe erforderlich, eine interne Transponierung (IT) innerhalb des Blocks durchzuführen.
-
2 zeigt eine schematische Darstellung, die die Konfiguration eines Knotens (Prozessors) veranschaulicht. In 2 (A) wird ein Knoten als ein kubisches Bild wiedergegeben. Die Verwendung dieser Art von Wiedergabe ermöglicht die Bildgebung von sechs bidirektionalen Kommunikationswegen (oder alternativ 12 unidirektionalen Kommunikationswegen) zum Kommunizieren von sechs Flächen des Würfels mit anderen räumlich benachbarten Knoten (Prozessoren) und ermöglicht die Vorstellung der Konfiguration einer dreidimensionalen Netzwerkstruktur.
-
2 (B) zeigt den inneren Aufbau eines Knotens (Prozessors). Der Parallelrechner verfügt über das Merkmal einer Vielzahl von Threads, von denen einige als Multi-Threads bezeichnet werden. Den Multi- Thread ähnlich sind Multi-Kerne, Multi-Prozessoren und dergleichen, die auf verschiedene Weise genannt werden, sich jedoch nicht notwendigerweise eindeutig voneinander unterschieden, wenn sie verwendet werden. Selbstverständlich ist die Anwendung der vorliegenden Erfindung dazu bestimmt, parallele Verarbeitung (pipelined) in einem Knoten (Prozessor) und das Überlappen von Inhalten verarbeiten zu können, und deshalb hat es keine Bedeutung diese Ähnlichkeiten positiv voneinander zu unterscheiden.
-
Es ist bekannt, dass es Produkte gibt, welche bezüglich der Anzahl der Threads innerhalb eines Knotens (Prozessors) variieren. In dieser Beschreibung werden vier Threads, nämlich Thread 1, Thread 2, Thread 3 und Thread 4 gezeigt. Obwohl ein Thread typischerweise Hardware ist, ist es möglich einen Thread als Software auszuführen, um als Hardware oder als Kombination von Hardware und Software zu dienen.
-
Darüber hinaus enthält der Knoten (Prozessor) einen Speicher, der Information darüber speichert welche Kommunikationsverarbeitung der Thread zu einer aktuellen Zeit monopolisiert, Informationen (z. B. in Form einer Tabelle oder dergleichen), welche Kommunikationsverarbeitung durch den Thread zu der nächsten Zeit ausgeführt wird, und dergleichen. Obwohl der Speicher typischerweise als Hardware ausgeführt ist, ist es auch möglich einen virtuellen Bereich in Kombination mit einer Software zu bilden.
-
Darüber hinaus enthält der Knoten (Prozessor) einen Controller, der Zugriffsrechte auf Nachrichten, die über Kommunikationswege übertragen oder empfangen werden, kontrolliert. Die Steuerung kann als Hardware, als Software oder als Kombination von Hardware und Software ausgeführt werden.
-
Ein Planungs-Verfahren der vorliegenden Erfindung ist in der Lage, autonom für jeden Knoten (Prozessor) oder in Zusammenarbeit mit einer Vielzahl von benachbarten Knoten (Prozessoren), die eine Untergruppe bilden, zu arbeiten. Es ist auch möglich, das Planungs-Verfahren als ein Programm (oder ein Programm-Produkt) mit einer Vielzahl von Codes, die in der Lage sind auf jedem Knoten (Prozessor) laufen zu können, bereitzustellen. Darüber hinaus ist es möglich, das Planungs-Verfahren auf einem Parallelrechner bereitzustellen, der die Planung der vorliegenden Erfindung als eine Gruppe von einer Vielzahl von Knoten (Prozessoren) ermöglicht.
-
3 zeigt ein vierdimensionales Ringnetzwerk als ein schematisches Diagramm zur Beschreibung einer Netzwerk-Dimension und der längsten Achse. Wie bereits beschrieben wurde, ermöglicht die Verwendung der dreidimensionalen Netzwerkstruktur eine intuitive Vorstellung des Netzes als sechs bidirektionale Kommunikationswege für die Kommunikation über sechs Flächen des in 2 gezeigten Würfels.
-
Hier bilden acht benachbarte Würfel eine Untergruppe und drei Untergruppen sind in horizontaler Richtung angeordnet. Die Anzahl auf den Achsen einer Untergruppe wird gezählt, entlang der bekannten Koordinaten einer x-Achse, einer y-Achse und einer z-Achse, als 2 auf der x-Achse, 2 auf der y-Achse, und 2 auf der z-Achse durch Zählen der Knoten (Prozessoren) als L, M und N oder dergleichen. In dieser Beschreibung sind die Längen aller Achsen gleich und als 2 × 2 × 2 ausgedrückt, wobei diese drei Achsen die gleiche Länge haben.
-
Darüber hinaus wird hier ein vierdimensionales Netzwerk beschrieben. In diesem Diagramm sind zwei weitere bidirektionale Kommunikationswege hinzugefügt (in einer Form, in der die bidirektionalen Kommunikationswege auch im dreidimensionalen Raum vorhanden sind) von einem Knoten (Prozessor) als bidirektionale Kommunikationswege zum Verbinden dreier Untergruppen, die in horizontaler Richtung angeordnet sind, und daher ist es möglich, acht bidirektionale Kommunikationswege für einen Knoten (Prozessor) abzubilden. Wenn die Anzahl der Knoten (Prozessoren) auf einer T-Achse gezählt wird, wobei angenommen wird, dass eine Achse entlang des bidirektionalen Kommunikationswegs neu hinzugefügt wird, zählt sie drei und die Längen werden als 2 × 2 × 2 × 3 ausgedrückt. Daher ist die längste Achse in diesem Beispiel die vierdimensionale Achse mit der Länge von 3. Die „längste Achse“ hat eine wichtige Bedeutung in der vorliegenden Erfindung. Außerdem werden, wie für das n-dimensionale Netzwerk, Fachleute auf dem Gebiet in der Lage sein, die vorliegende Erfindung leicht zu erweitern und auf das n-dimensionale Netzwerk anzuwenden.
-
4 zeigt ein Diagramm, welches veranschaulicht, wie die Leistung eines parallelisierten 1D FFT entsprechend der Konfiguration der Anzahl der Knoten (Prozessoren) auf den Achsen, die einen Ring formen, variiert.
-
Zuerst wird ein kubischer Ring von 2 × 2 × 2 (= 8) und ein nicht-kubischer Ring von 2 × 2 × 4 (= 16) als dreidimensionales Netzwerk kubischer Bilder innerhalb der gestrichelten Linie gezeigt. Wenn es eine Begrenzung der Anzahl von Knoten (Prozessoren) gibt, kann beispielsweise eine kubische Konfiguration von 3 × 3 × 3 (= 27) nicht immer durchgeführt werden. Daher wird eine nicht-kubische Konfiguration in vielen Situationen verwendet.
-
In der Konfiguration von 2 × 1 × 1, wird ein Gitter von einem Ring durch eine Differenz dahingehend unterschieden, ob es einen bidirektionalen Kommunikationsweg zwischen Knoten (Prozessoren) an beiden Enden jeder Achse des Würfels gibt, wie innerhalb der gestrichelten Linie gezeigt ist. Da die Darstellung in einem Zustand, in dem eine Gruppe gebildet ist, kompliziert ist, sind die bidirektionalen Kommunikationswege hier nicht dargestellt.
-
Für einen Leistungs-Vergleich wird die Leistung der parallelisierten 1D FFT zwischen einem Ring von 8 × 8 × 8 (= 512) und einem nicht-kubischen Ring von 8 × 8 × 16 (= 1024) verglichen. Eine „Form basierend auf Dimensionen“ ist in diesem Diagramm eine „Form basierend auf drei Dimensionen“, und damit ist die Form in einigen Fällen kubisch oder in anderen Fällen nicht-kubisch.
-
Die Leistung von Blue Gene / P (Blue Gene und Blue Gene / P sind Marken der IBM Corporation) wurde gemessen. GFLOPS steht für Gigaflops als Einheit. Zu Recht kann die erwartete Leistung doppelt erwartet werden, da sich die Anzahl der nutzbaren Knoten (Prozessoren) von 512 auf 1024 erhöht, was eine Verdopplung darstellt. Die Spitzenleistung wird jedoch beibehalten, wie sie ist.
-
Darüber hinaus erhöht sich der Anteil der All-to-All Kommunikationen an der Gesamtzahl der Kommunikation von 54% auf 70% und die Länge der längsten Achse ist 16, was doppelt so groß ist als 8, und damit wird die Bandbreite der All-to-All Kommunikation weniger als die Hälfte.
-
5 zeigt ein Diagramm, das ein Verfahren zur Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren) durch Anwenden der vorliegenden Erfindung veranschaulicht. Gemäß des parallelisierten 1D (eindimensionale) FFT-Algorithmus, wie in 1 (B) gezeigt, wird die Verarbeitung, wie gezeigt ist, durchgeführt, indem sie in Phase 1 und Phase 2 unterteilt wird. In dieser Hinsicht wird angenommen, dass es vier Threads in Übereinstimmung mit der internen Konfiguration des Knotens (Prozessor) in 2 (B) gibt, um die Pipeline unter Verwendung einer Vielzahl von Threads zu planen.
-
In Bezug auf einen nicht-kubischen Ring, in dem ein dreidimensionales Netzwerk aus einer Vielzahl von Knoten (Prozessoren) aus 4 × 4 × 8 (= 128) besteht, hat die längste Achse eine Länge von 8, und eine Vielzahl von acht Knoten (Prozessoren) in der axialen Form wird als eine erste Untergruppe einschließend die längste Achse ausgewählt. Die Kommunikations-Phase für die Verarbeitung der All-to-All Kommunikation nur zwischen der Vielzahl von acht Knoten (Prozessoren), die in der ersten Untergruppe enthalten ist, wird hier als A2A-L (L ist die Bezeichnung von „längste“) bezeichnet.
-
In Bezug auf einen nicht-kubischen Ring, in dem ein dreidimensionales Netzwerk aus einer Vielzahl von Knoten (Prozessoren) 4 × 4 × 8 (= 128) besteht, umfassen die Knoten (Prozessoren) in einer zweiten Untergruppe alle Achsen (4 × 4), mit Ausnahme der längste Achse, die eine Ebene bilden (mit anderen Worten, eine Form basierend auf zwei Dimensionen bedingt durch die Anzahl der Achsen, zwei). Die Kommunikations-Phase für die Verarbeitung der All-to-All Kommunikation nur zwischen der Vielzahl von acht Knoten (Prozessoren), die in der zweiten Untergruppe enthalten ist, wird hier als A2A-P (P ist die Bezeichnung von Ebene) bezeichnet.
-
Wenn es zwei oder mehrere längste Achsen gibt, hat die erste Untergruppe eine Form basierend auf der Anzahl der Dimensionen, die gleich der Anzahl der längsten Achsen ist, obwohl dies hier nicht dargestellt ist. Und falls es zwei oder mehrere längste Achsen gibt, hat die zweite Untergruppe manchmal eine Form einer Achse oder einer leeren Menge (Nulldimension) anstelle einer Ebene oder eines mehrdimensionalen Körpers, obwohl dies hier nicht dargestellt ist.
-
Es sollte hier angemerkt werden, dass es Knoten (Prozessoren) gibt, die gemeinsam in beiden enthalten sind, den Knoten (Prozessoren), die in der ersten Untergruppe enthalten sind und den Knoten (Prozessoren), die in der zweiten Untergruppe enthalten sind. Obwohl nur ein Knoten (Prozessor) gemeinsam in diesem Fall enthalten ist, hat über den Knoten (Prozessor) das Ergebnis des Berechnungsverfahrens der ersten Untergruppe eine Verbindung mit dem Ergebnis des Berechnungsverfahrens der zweiten Untergruppe.
-
Außerdem sei verstanden, dass die Planung der Pipeline zwischen der Phase 1 und Phase 2 so angepasst ist, um (überlappt zu werden, um) eine Anzahl von Berechnungsverfahren parallel (pipelined) zu ermöglichen, indem die Verarbeitung in Thread 1, Thread 2, Thread 3 und Thread 4 unterteilt ist.
-
Darüber hinaus ist die vorliegende Erfindung dahingehend charakteristisch, dass die Verarbeitung geplant wird, sodass nur ein Thread es ermöglicht, dass A2A-L zu einem Zeitpunkt durchgeführt wird. Wie durch die gestrichelte Linie angedeutet ist, wird die Verarbeitung so geplant, dass die Fertigstellung eines A2A-L-Verfahrens abgewartet wird, bevor mit dem nächsten Prozess fortgefahren wird. Typischerweise ist der Abschnitt, der durch die gestrichelte Linie gekennzeichnet ist, nahtlos und die Verarbeitung wird so geplant, dass sie nacheinander (oder nahtlos) durchgeführt wird.
-
Die vorliegende Erfindung ist dadurch gekennzeichnet, dass auch A2A-L und A2A-P miteinander überlappen, wobei dies eine effektive Nutzung der Zeit ermöglicht, die für A2A-L erforderlich ist. Zum Beispiel ist es möglich ein FFT-Berechnungsverfahren oder ein T- (eine Transponierung, die hier eine interne Transponierung ist) Berechnungsverfahren für eine effiziente Nutzung einzusetzen.
-
6 zeigt ein Diagramm, welches veranschaulicht, wie die Leistung einer parallelisierten 1D FFT entsprechend der Konfiguration der Anzahl der Knoten (Prozessoren) auf den Achsen, die einen Ring bilden, als eine Wirkung der Anwendung der vorliegenden Erfindung, variiert. Ein Teil der Tabelle ist die gleiche wie in 4.
-
Es versteht sich, dass die Verarbeitungsgeschwindigkeit sich in dem Fall erhöht, in dem die vorliegende Erfindung verwendet wird, im Vergleich mit dem Fall, in dem die vorliegende Erfindung nicht verwendet wird. Insbesondere wenn die Achse der Knoten (Prozessoren) in einem nicht-kubischen Ring gebildet ist, ist die Überlegenheit der vorliegenden Erfindung bemerkenswert.