DE112010003810B4 - Verfahren, Programm und paralleles Computersystem für die Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen - Google Patents

Verfahren, Programm und paralleles Computersystem für die Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen Download PDF

Info

Publication number
DE112010003810B4
DE112010003810B4 DE112010003810.4T DE112010003810T DE112010003810B4 DE 112010003810 B4 DE112010003810 B4 DE 112010003810B4 DE 112010003810 T DE112010003810 T DE 112010003810T DE 112010003810 B4 DE112010003810 B4 DE 112010003810B4
Authority
DE
Germany
Prior art keywords
nodes
communication
thread
processors
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.)
Active
Application number
DE112010003810.4T
Other languages
English (en)
Other versions
DE112010003810T5 (de
Inventor
Jun Doi
Yasushi Negishi
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003810T5 publication Critical patent/DE112010003810T5/de
Application granted granted Critical
Publication of DE112010003810B4 publication Critical patent/DE112010003810B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)

Abstract

Eine Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) wird optimal zwischen einer Vielzahl von Knoten (Prozessoren), die ein n-dimensionales (Ring oder Maschen)-Netzwerk bilden, geplant. Die Vielzahl von Knoten (Prozessoren), die das Netzwerk formen, sind aufgeteilt in eine Kommunikations- (Berechnungsverfahren) Phase (A2A-L), in der All-to-All Kommunikation nur zwischen einer Vielzahl von Knoten, enthalten in einer ersten Teil-Gruppe, erforderlich ist, und eine Kommunikations- (Berechnungsverfahren) Phase (A2A-P), in der All-to-All Kommunikation nur zwischen einer Vielzahl von Knoten, enthalten in einer zweiten Teil-Gruppe, erforderlich ist, und die Phasen werden gebildet, um für die parallele Verarbeitung über eine Vielzahl von Threads(Thread 1, Thread 2, Thread 3 und Thread 4) zu überlappen. Die parallele Verarbeitung kann für eine solche Vielzahl von Berechnungsverfahren wie FFT (schnelle Fourier-Transformation) und auch T (Transponierte) (interne Transponierte) durchgeführt werden.

Description

  • 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.

Claims (5)

  1. Verfahren zur Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein n-dimensionales Netzwerk, in Form eines Ringes oder in Form von Maschen mit wenigstens zwei Achsen unterschiedlicher oder wenigstens teilsweise gleicher Länge bilden, wobei das Verfahren die folgenden Schritte umfasst: i) falls alle Achsen gleich lang sind: a) Auswählen einer Vielzahl von Knoten zu wenigstens einer längsten Achse des Netzwerks als eine erste Untergruppe; b) Bereitstellen einer ersten Kommunikations-Phase (A2A-L) für die Verarbeitung der All-to-All Kommunikationen nur zwischen der Vielzahl von Knoten, die in der ersten Untergruppe enthalten sind; c) Auswählen einer Vielzahl von Knoten zu den restlichen Achsen des Netzwerks als eine zweite Untergruppe; d) Bereitstellen einer zweiten Kommunikationsphase (A2A-P) für die Verarbeitung der All-to-All-Kommunikation nur zwischen der Vielzahl von Knoten, die in der zweiten Untergruppe enthalten sind; und e) Planung einer Vielzahl von Berechnungsverfahren in einer solchen Weise, dass die erste Kommunikations-Phase (A2A-L) und die zweite Kommunikations-Phase (A2A-P) über eine Vielzahl (Nt) von Threads (Thread 1, Thread 2, Thread 3, Thread, --- Thread Nt) miteinander überlappend parallel im Sinne eines Pipelining in den Knoten verarbeitet werden können, und dass der Abschluss aller All-to-All Kommunikationen in der ersten Untergruppe abgewartet wird, bevor mit dem nächsten Prozess fortgefahren wird, und ii) falls alle Achsen die gleiche Länge haben: f) Auswahl aller Knoten als eine erste Untergruppe und g) Planung der Berechnungsverfahren, so dass die All-to-All Kommunikationen in der ersten Untergruppe nacheinander durchgeführt werden.
  2. Verfahren nach Anspruch 1, bei dem die Knoten ein drei-dimensionales Netzwerk mit einer kubischen oder nicht-kubischen Form (Ring oder Maschen) bilden.
  3. Verfahren nach Anspruch 1 oder 2 ferner umfassend den Schritt der Planung der Berechnungsverfahren, so dass die erste Kommunikations-Phase (A2A-L) und ein FFT Berechnungsverfahren oder ein transponiertes Matrix-Berechnungsverfahren überlappt werden, um parallel im Sinne eines Pipelining verarbeitet werden zu können.
  4. Programm zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche.
  5. Paralleles Computersystem zur Durchführung eines Verfahrens nach einem der vorhergehenden Amsprüche.
DE112010003810.4T 2009-11-16 2010-11-15 Verfahren, Programm und paralleles Computersystem für die Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen Active DE112010003810B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009261113 2009-11-16
JP2009-261113 2009-11-16
PCT/JP2010/070314 WO2011059090A1 (ja) 2009-11-16 2010-11-15 ネットワークを構成している複数のノード(プロセッサ)間において、全対全通信(A2A:all-to-allcommunication)を含む、複数の計算処理をスケジューリングする方法、プログラム及び並列計算機システム。

Publications (2)

Publication Number Publication Date
DE112010003810T5 DE112010003810T5 (de) 2012-11-22
DE112010003810B4 true DE112010003810B4 (de) 2019-02-21

Family

ID=43991743

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003810.4T Active DE112010003810B4 (de) 2009-11-16 2010-11-15 Verfahren, Programm und paralleles Computersystem für die Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen

Country Status (6)

Country Link
US (1) US9251118B2 (de)
JP (2) JP5153945B2 (de)
CN (1) CN102597959B (de)
DE (1) DE112010003810B4 (de)
GB (1) GB2487684B (de)
WO (1) WO2011059090A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2867791A4 (de) * 2012-07-02 2016-02-24 Intel Corp System auf der basis von asynchroner verteilter datenverarbeitung
JP6191401B2 (ja) * 2013-11-01 2017-09-06 富士通株式会社 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム
JP6666548B2 (ja) 2016-03-14 2020-03-18 富士通株式会社 並列計算機、fft演算プログラムおよびfft演算方法
JP6844198B2 (ja) 2016-10-25 2021-03-17 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
JP6874564B2 (ja) * 2017-06-27 2021-05-19 富士通株式会社 情報処理システム、管理装置及びプログラム
JP6915434B2 (ja) 2017-08-01 2021-08-04 富士通株式会社 情報処理システム、情報処理方法及びプログラム
JP6930381B2 (ja) * 2017-11-06 2021-09-01 富士通株式会社 情報処理システム、演算処理装置及び情報処理システムの制御方法
JP7167687B2 (ja) * 2018-12-18 2022-11-09 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2601591B2 (ja) 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
JP3675537B2 (ja) 1995-11-29 2005-07-27 富士通株式会社 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0235654A (ja) * 1989-03-31 1990-02-06 Canon Electron Inc デイスク駆動装置
JPH03116357A (ja) * 1989-09-29 1991-05-17 Fujitsu Ltd 並列処理方式
JP3116357B2 (ja) 1990-02-21 2000-12-11 井関農機株式会社 農作業機
JPH04235654A (ja) * 1991-01-10 1992-08-24 Fujitsu Ltd ネットワーク制御方式
US5689719A (en) * 1991-06-28 1997-11-18 Sanyo Electric O., Ltd. Parallel computer system including processing elements
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JPH07200508A (ja) * 1993-12-28 1995-08-04 Toshiba Corp ノード間結合方式
JPH11259441A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd 並列計算機における全対全通信方法
EP1050808B1 (de) * 1999-05-03 2008-04-30 STMicroelectronics S.A. Befehlausgabe in einem Rechner
US6711607B1 (en) * 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
US7315877B2 (en) * 2001-02-24 2008-01-01 International Business Machines Corporation Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer
US7185138B1 (en) * 2004-05-14 2007-02-27 Peter Galicki Multi-dimensional data routing fabric
JP4291281B2 (ja) * 2005-02-03 2009-07-08 富士通株式会社 情報処理システム、計算ノード、情報処理システムの制御方法
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US20080092146A1 (en) * 2006-10-10 2008-04-17 Paul Chow Computing machine
WO2008114440A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited 一意情報集団通信プログラム、コンピュータ、一意情報集団通信方法、および記録媒体
US7761687B2 (en) * 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
US8291427B2 (en) * 2008-06-09 2012-10-16 International Business Machines Corporation Scheduling applications for execution on a plurality of compute nodes of a parallel computer to manage temperature of the nodes during execution

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2601591B2 (ja) 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
JP3675537B2 (ja) 1995-11-29 2005-07-27 富士通株式会社 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
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
KUMAR, S. [et al.]: Optimization of All-to-all Communication on the Blue Gene/L Supercomputer. IEEE 37th International Conference on Parallel Processing, 2008, S. 320-329. IEEE Xplore [online]. DOI: 10.1109/ICPP.2008.83, In: IEEE *

Also Published As

Publication number Publication date
WO2011059090A1 (ja) 2011-05-19
GB2487684B (en) 2016-09-14
JP5153945B2 (ja) 2013-02-27
JP2013037723A (ja) 2013-02-21
GB2487684A (en) 2012-08-01
US9251118B2 (en) 2016-02-02
CN102597959B (zh) 2015-04-15
CN102597959A (zh) 2012-07-18
GB201206822D0 (en) 2012-05-30
DE112010003810T5 (de) 2012-11-22
US20120233621A1 (en) 2012-09-13
JPWO2011059090A1 (ja) 2013-04-04
JP5425993B2 (ja) 2014-02-26

Similar Documents

Publication Publication Date Title
DE112010003810B4 (de) Verfahren, Programm und paralleles Computersystem für die Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen
DE3506749C2 (de)
DE3689820T2 (de) Verfahren und Gerät zur Simulierung von durch partielle differentiale Gleichungen beschriebenen Systemen.
DE102012216029B4 (de) Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten
DE68920388T2 (de) Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE112019002981T5 (de) Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität
DE112018006047T5 (de) Deformation von aufwandsfunktionen bei der quanten-näherungsoptimierung
DE102017120588A1 (de) Befehlssatzarchitektur für neuronale Netze
DE202016107439U1 (de) Vorabruf von Gewichten zur Verwendung in einem neuralen Netzwerkprozessor
DE202016107443U1 (de) Berechnen von Faltungen mithilfe eines neuronalen Netzwerkprozessors
DE112016005536T5 (de) Bestimmen von reihenfolgen einer ausführung eines neuronalen netzes
DE112016002296T5 (de) Vektor-recheneinheit in einem neuronalen netzwerkprozessor
DE202018100904U1 (de) Permutieren in einem Matrix-Vektor-Prozessor
DE112019005288T5 (de) EFFEKTIVES UND SKALIERBARES AUFBAUEN UND SONDIEREN VON HASHTABELLEN UNTER VERWENDUNG MEHRERER GPUs
DE102017113735B4 (de) Statistische Operationen auf einem zweidimensionalen Bildprozessor
DE202017101012U1 (de) Compilerverwalteter Speicher für Bildprozessor
DE3049437A1 (de) Matrixanordnung einer vielzahl von verarbeitungselementen fuer parallelprozessoren
DE102013020968A1 (de) Technik zum Zugreifen auf einen inhaltsadressierbaren Speicher
DE3788758T2 (de) Polymorphes Maschennetzwerk für Bildverarbeitungssystem.
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE102021123703A1 (de) Flexibler beschleuniger für eine tensor-arbeitslast
DE102015015182A1 (de) Systeme, Vorrichtungen und Verfahren zur k-Nächste-Nachbarn-Suche
DE69113465T2 (de) Paralleler prozessor für flüssigkeitsdynamik.
DE19528760A1 (de) Bildverarbeitende Schaltung eines hohen Integrationsgrads

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final