DE112013000599T5 - Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs - Google Patents

Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs Download PDF

Info

Publication number
DE112013000599T5
DE112013000599T5 DE112013000599.9T DE112013000599T DE112013000599T5 DE 112013000599 T5 DE112013000599 T5 DE 112013000599T5 DE 112013000599 T DE112013000599 T DE 112013000599T DE 112013000599 T5 DE112013000599 T5 DE 112013000599T5
Authority
DE
Germany
Prior art keywords
compute node
node
rdma
configuration information
target
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.)
Pending
Application number
DE112013000599.9T
Other languages
English (en)
Inventor
c/o IBM Corporation Mundy Michael
c/o IBM Corporation Attinella John
c/o IBM Corporation Aho Michael
c/o IBM Corporation Gooding Thomas
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 DE112013000599T5 publication Critical patent/DE112013000599T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Abstract

Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs (”RDMA”), wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei dies beinhaltet: Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten in dem parallelen Computer rundzusenden; Vorbereiten des Zielrechenknotens durch jeden Zielrechenknoten zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten; Übermitteln einer Bereitschaftsnachricht an den Zielrechenknoten durch jeden Zielrechenknoten, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten zu empfangen; und Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.

Description

  • TECHNISCHES GEBIET
  • Das Gebiet der Erfindung ist die Datenverarbeitung oder genauer Verfahren, Vorrichtungen und Produkte zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs (remote direct memory access, ”RDMA”).
  • STAND DER TECHNIK
  • Die Entwicklung des EDVAC-Computersystems von 1948 wird oft als der Beginn des Computerzeitalters bezeichnet. Seit dieser Zeit haben sich Computersysteme zu äußerst komplizierten Einheiten entwickelt. Die heutigen Computer sind den ersten Systemen wie beispielsweise dem EDVAC deutlich überlegen. Computersysteme enthalten üblicherweise eine Kombination aus Hardware- und Software-Komponenten, Anwendungsprogramme, Betriebssysteme, Prozessoren, Busse, Speicher, Eingabe/Ausgabe-Einheiten und so weiter. Da Fortschritte in der Halbleiterverarbeitung und bei der Computerarchitektur die Leistungsfähigkeit des Computers immer weiter steigern, ist eine für höhere Ansprüche ausgelegte Computer-Software entstanden, die die höhere Leistungsfähigkeit der Hardware vorteilhaft nutzt, so dass es heute Computersysteme gibt, die weitaus leistungsstärker sind als noch vor ein paar Jahren.
  • Moderne Datenverarbeitungssysteme können massiv parallel aufgebaut sein und viele Rechenknoten in einem Datenverarbeitungssystem enthalten. Binäre Informationen werden häufig auf Rechenknoten repliziert, die Teil einer hochleistungsfähigen Datenverarbeitungsprogrammierumgebung sind. Ein gemeinsames ausführbares Programm (binary executable) kann zum Beispiel auf jedem Rechenknoten in einer hochleistungsfähigen Datenverarbeitungsprogrammierumgebung repliziert werden. Ein gemeinsames ausführbares Programm würde üblicherweise seriell geladen werden, was über einen längeren Zeitraum geschieht.
  • Bei IBM® Blue Gene®/Q (BCQ) werden binäre Informationen notwendigerweise auf Rechenknoten repliziert, die Teil einer hochleistungsfähigen Datenverarbeitungsprogrammierumgebung sind: zum Beispiel ein gemeinsames ausführbares Programm; gemeinsame Daten; und gemeinsame Dateiinformationen. Vor IBM Blue Gene® luden Lösungen jeden Rechenknoten seriell nacheinander. Wenn alle Knoten parallel geladen werden könnten, würde die Zeit bis zum Beenden des binären Ladens fast so lange dauern wie die Zeit zum Laden eines einzelnen Knotens und nicht von vielen zu ladenden Knoten. Eine ideale Lösung wäre, ein Rundsenden der Binärprogramme an die Knoten mit entfernt angeordnetem direkten Speicherzugriff (RDMA) zu verwenden, wobei die Koordinierung RDMA-Kollektive und eine Zustandsmaschine einschließt. IBM, Blue Gene und Blue Gene/Q sind Warenzeichen der International Business Machines Corporation, die in vielen Rechtsordnungen weltweit eingetragen sind.
  • In der US-Patentschrift 7 478 138 B2 (Chang et al. ”Third party, broadcast, multicast and conditional RDMA operations”) wird ein Verfahren für den Datentransport in einem Netzwerk von mindestens drei Datenverarbeitungsknoten, von einem Quellenknoten zu mehreren Zielknoten, offenbart, wobei das Verfahren aufweist: Übermitteln der Daten von dem Quellenknoten zu einer Vielzahl von Zielknoten, wobei die Übermittlung über eine Rundsendeoperation mit entfernt angeordnetem direktem Speicherzugriff (RDMA) von spezifischen Speicherplätzen in dem Quellenknotenspeicher zu spezifischen Zielspeicherplätzen an Zielknotenspeicherplätzen durchgeführt wird; und wobei die RDMA-Rundsendeoperation das Verwenden eines RDMA-Rundsendepakets aufweist, in dem eine Adapterzielkennung in einem Kopfzeilenpaket des RDMA-Rundsendepakets auf eine Rundsendekennung eingestellt ist.
  • Wenn Annahmen über die Zuverlässigkeit des Netzwerks gemacht würden, könnten jedoch Leistungssteigerungen erzielt werden.
  • Nach dem Stand der Technik besteht somit Bedarf, das vorstehend beschriebene Problem zu lösen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Verfahren, Vorrichtungen und Produkte zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs (”RDMA”), wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei diese beinhalten: Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten in dem parallelen Computer rundzusenden; Vorbereiten des Zielrechenknotens durch jeden Zielrechenknoten in dem parallelen Computer zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten des parallelen Computers; Übermitteln einer Bereitschaftsnachricht an den Zielrechenknoten durch jeden Zielrechenknoten in dem parallelen Computer, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten des parallelen Computers zu empfangen; und Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.
  • Die vorstehenden und anderen Gegenstände, Merkmale und Vorteile der Erfindung gehen aus den folgenden ausführlichen Beschreibungen von beispielhaften Ausführungsformen der Erfindung hervor, die in den beigefügten Zeichnungen veranschaulicht sind, in denen gleiche Bezugszahlen im Allgemeinen gleiche Teile von beispielhaften Ausführungsformen der Erfindung darstellen.
  • Von einem ersten Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Verfahren zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA bereit, wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei das Verfahren aufweist: Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten des parallelen Computers rundzusenden; Vorbereiten des Zielrechenknotens durch jeden des einen oder der mehreren Zielrechenknoten zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten; Übermitteln einer Bereitschaftsnachricht an den Quellenrechenknoten durch jeden des einen oder der mehreren Zielrechenknoten, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten zu empfangen; und Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.
  • Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung eine Vorrichtung zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines ”RDMA” bereit, wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei die Vorrichtung einen Computerprozessor, einen Computerspeicher aufweist, der funktionsmäßig mit dem Computerprozessor verbunden ist, wobei in dem Computerspeicher Computerprogrammanweisungen angeordnet sind, die, wenn sie von dem Computerprozessor ausgeführt werden, die Vorrichtung veranlassen, die Schritte durchzuführen: Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten des parallelen Computers rundzusenden; Vorbereiten des Zielrechenknotens durch jeden des einen oder der mehreren Zielrechenknoten zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten; Übermitteln einer Bereitschaftsnachricht an den Quellenrechenknoten durch jeden des einen oder der mehreren Zielrechenknoten, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten zu empfangen; und Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.
  • Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung eine Vorrichtung zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA bereit, wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei die Vorrichtung aufweist: einen Computerprozessor; einen Computerspeicher, der funktionsmäßig mit dem Computerprozessor verbunden ist, wobei in dem Computerspeicher Computerprogrammanweisungen angeordnet sind; Einleitungsmittel zum Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten des parallelen Computers rundzusenden; Vorbereitungsmittel zum Vorbereiten des Zielrechenknotens durch jeden des einen oder der mehreren Zielrechenknoten zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten; Übermittlungsmittel zum Übermitteln einer Bereitschaftsnachricht an den Quellenrechenknoten durch jeden des einen oder der mehreren Zielrechenknoten, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten zu empfangen; und Durchführungsmittel zum Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.
  • Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs bereit, wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das von einer Verarbeitungsschaltung gelesen werden kann und Anweisungen speichert, die die Verarbeitungsschaltung ausführt, um ein Verfahren zum Durchführen der Schritte der Erfindung durchzuführen.
  • Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, wobei das Computerprogramm Software-Codeteile aufweist, wenn das Programm auf einem Computer ausgeführt wird, um die Schritte der Erfindung durchzuführen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird nunmehr im Folgenden nur beispielhaft mit Bezug auf bevorzugte Ausführungsformen beschrieben, die in den folgenden Figuren veranschaulicht sind:
  • 1 veranschaulicht ein beispielhaftes System zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 2 zeigt ein Blockschaltbild eines beispielhaften Rechenknotens, der in einem parallelen Computer von Nutzen ist, welcher Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA konfigurieren kann, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 3A zeigt ein Blockschaltbild eines beispielhaften Punkt-zu-Punkt-Adapters, der in Systemen von Nutzen ist, um Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA zu konfigurieren, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 3B zeigt ein Blockschaltbild eines beispielhaften Adapters eines globalen Verbindungsnetzwerks (Global Combining Network), der in Systemen von Nutzen ist, um Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA zu konfigurieren, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 4 zeigt eine Strichzeichnung, die ein beispielhaftes Datenübertragungsnetzwerk veranschaulicht, das für Punkt-zu-Punkt-Operationen optimiert ist, welche in Systemen von Nutzen sind, die Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA konfigurieren können, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 5 zeigt eine Strichzeichnung, die ein beispielhaftes globales Verbindungsnetzwerk veranschaulicht, das in Systemen von Nutzen ist, welche Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA konfigurieren können, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 6 zeigt einen Ablaufplan, der ein beispielhaftes Verfahren zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA veranschaulicht, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 7 zeigt einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA veranschaulicht, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann; und
  • 8 zeigt einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA veranschaulicht, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Beispielhafte Verfahren, Vorrichtungen und Produkte zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs (”RDMA”) gemäß der vorliegenden Erfindung werden mit Bezug auf die beigefügten Zeichnungen beschrieben, wobei mit 1 begonnen wird. 1 veranschaulicht ein beispielhaftes System zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung. Das System von 1 enthält einen parallelen Computer (100), einen nichtflüchtigen Speicher für den Computer in Form einer Datenspeichereinheit (118), eine Ausgabeeinheit für den Computer in Form eines Druckers (120) und eine Eingabe/Ausgabeeinheit für den Computer in Form eines Computerendgeräts (122).
  • Der parallele Computer (100) in dem Beispiel von 1 enthält eine Vielzahl von Rechenknoten (102). Die Rechenknoten (102) sind für Datenübertragungen über mehrere unabhängige Datenübertragungsnetzwerke verbunden, darunter ein Hochgeschwindigkeits-Ethernet-Netzwerk (174), ein Netzwerk vom Typ ”Joint Test Action Group (”JTAG”)” (104), ein globales Verbindungsnetzwerk (106), das für kollektive Operationen unter Verwendung einer Binärbaum-Netzwerktopologie optimiert ist, und ein Punkt-zu-Punkt-Netzwerk (108), das für Punkt-zu-Punkt-Operationen unter Verwendung einer Torusnetzwerktopologie optimiert ist. Bei dem globalen Verbindungsnetzwerk (106) handelt es sich um ein Datenübertragungsnetzwerk, das Datenübertragungsverbindungen enthält, die mit den Rechenknoten (102) verbunden sind, um die Rechenknoten (102) als einen Binärbaum zu gliedern. Jedes Datenübertragungsnetzwerk wird mit Datenübertragungsverbindungen zwischen den Rechenknoten (102) ausgeführt. Die Datenübertragungsverbindungen stellen Datenübertragungen für parallele Operationen zwischen den Rechenknoten (102) des parallelen Computers (100) bereit.
  • Die Rechenknoten (102) des parallelen Computers (100) sind in mindestens eine operative Gruppe (132) von Rechenknoten für kollektive parallele Operationen auf dem parallelen Computer (100) gegliedert. Bei jeder operativen Gruppe (132) von Rechenknoten handelt es sich um den Satz von Rechenknoten, auf dem eine kollektive parallele Operation ausgeführt wird. Jedem Rechenknoten in der operativen Gruppe (132) wird ein eindeutiger Rang zugewiesen, der den bestimmten Rechenknoten in der operativen Gruppe (132) kennzeichnet. Kollektive Operationen werden mit Datenübertragungen zwischen den Rechenknoten einer operativen Gruppe ausgeführt. Bei kollektiven Operationen handelt es sich um diejenigen Funktionen, an denen alle Rechenknoten einer operativen Gruppe (132) beteiligt sind. Eine kollektive Operation ist eine Operation, eine Anweisung eines Computerprogramms zum Nachrichtenaustausch, die von allen Rechenknoten in einer operativen Gruppe (132) von Rechenknoten gleichzeitig, das heißt, zu ungefähr dem gleichen Zeitpunkt, ausgeführt wird. Eine solche operative Gruppe (132) kann alle Rechenknoten (102) in einem parallelen Computer (100) oder eine Teilmenge aller Rechenknoten (102) beinhalten. Kollektive Operationen werden häufig um Punkt-zu-Punkt-Operationen herum aufgebaut. Eine kollektive Operation setzt voraus, dass alle Prozesse auf allen Rechenknoten in einer operativen Gruppe (132) dieselbe kollektive Operation mit übereinstimmenden Argumenten aufrufen. Eine ”Rundsendung” (broadcast) ist ein Beispiel für eine kollektive Operation, um Daten zwischen Rechenknoten einer operativen Gruppe zu verschieben. Eine ”Reduktions”-(Reduce-)Operation ist ein Beispiel für eine kollektive Operation, die arithmetische oder logische Funktionen an Daten ausführt, die zwischen den Rechenknoten einer operativen Gruppe (132) verteilt sind. Eine operative Gruppe (132) kann zum Beispiel als ein MPI-”Kommunikator” ausgeführt sein.
  • ”MPI” bezieht sich auf ”Message Passing Interface”, eine Bibliothek für parallele Datenübertragungen nach dem Stand der Technik, ein Modul mit Computerprogrammanweisungen für Datenübertragungen auf parallelen Computern. Zu Beispielen für Bibliotheken für parallele Datenübertragungen nach dem Stand der Technik, die zur Verwendung in Systemen mit einer Konfiguration gemäß Ausführungsformen der vorliegenden Erfindung verbessert werden können, gehören MPI und die Bibliothek ”Parallel Virtual Machine” (”PVM”). PVM wurde von der University of Tennessee, The Oak Ridge National Laboratory und der Emory University entwickelt. MPI wird vom MPI-Forum verbreitet, einer offenen Gruppe mit Vertretern von zahlreichen Organisationen, die den MPI-Standard definieren und pflegen. MPI ist zum Zeitpunkt der Erstellung dieser Beschreibung der De-facto-Standard für die Datenübertragung zwischen Rechenknoten, die ein paralleles Programm auf einem parallelen Computer mit verteiltem Speicher ausführen. Diese Beschreibung verwendet zur einfacheren Erklärung manchmal die MPI-Terminologie, obgleich die Verwendung von MPI als solches weder ein Erfordernis noch eine Beschränkung der vorliegenden Erfindung darstellt.
  • Manche kollektive Operationen verfügen über einen einzigen Ursprungs- oder Empfangsprozess, der auf einem bestimmten Rechenknoten in einer operativen Gruppe (132) ausgeführt wird. Bei einer kollektiven Operation ”Rundsendung” zum Beispiel ist der Prozess auf dem Rechenknoten, der die Daten an alle anderen Rechenknoten verteilt, ein Ursprungsprozess. Bei einer ”Sammel”-Operation zum Beispiel ist der Prozess auf dem Rechenknoten, der alle Daten von den anderen Rechenknoten empfangen hat, ein Empfangsprozess. Der Rechenknoten, auf dem ein solcher Ursprungs- oder Empfangsprozess ausgeführt wird, wird als lokale Wurzel bezeichnet.
  • Die meisten kollektiven Operationen sind Variationen oder Kombinationen von vier Grundoperationen: Rundsenden (broadcast), Sammeln (gather), Streuen (scatter) und Reduzieren (reduce). Die Schnittstellen für diese kollektiven Operationen sind in den vom MPI-Forum verbreiteten MPI-Standards festgelegt. Algorithmen zum Ausführen von kollektiven Operationen sind in den MPI-Standards jedoch nicht definiert. Bei einer Rundsendeoperation geben alle Prozesse denselben Wurzelprozess an, von dem der Inhalt seines Pufferspeichers gesendet wird. Andere Prozesse als der Wurzelprozess geben Empfangspufferspeicher an. Nach der Operation enthalten alle Pufferspeicher die Nachricht von dem Wurzelprozess.
  • Eine Streuoperation ist wie die Rundsendeoperation ebenfalls eine kollektive Eins-zu-viele-Operation. Bei einer Streuoperation teilt die logische Wurzel Daten in der Wurzel in Segmente und verteilt an jeden Rechenknoten in der operativen Gruppe (132) ein anderes Segment. Bei einer Streuoperation geben alle Prozesse gewöhnlich denselben Empfangszählstand an. Die Sendeargumente sind nur für den Wurzelprozess von Bedeutung, dessen Pufferspeicher tatsächlich den Sendezählstand·N Elemente eines bestimmten Datentyps enthält, wobei N die Anzahl der Prozesse in der bestimmten Gruppe von Rechenknoten ist. Der Sendepufferspeicher wird aufgeteilt und an alle Prozesse (einschließlich des Prozesses auf der logischen Wurzel) verteilt. Jedem Rechenknoten wird eine fortlaufende Kennung mit der Bezeichnung ”Rang” zugewiesen. Nach der Operation hat die Wurzel jedem Prozess in aufsteigender Rangfolge Datenelemente des Sendezählstands gesendet. Rang 0 empfängt die ersten Datenelemente des Sendezählstands aus dem Sendepufferspeicher. Rang 1 empfängt die zweiten Datenelemente des Sendezählstands aus dem Sendepufferspeicher und so weiter.
  • Eine Sammeloperation ist eine kollektive Viele-zu-eins-Operation, die das komplette Gegenteil der Beschreibung der Streuoperation ist. Das heißt, eine Sammeloperation ist eine kollektive Viele-zu-eins-Operation, bei der Elemente eines Datentyps von den nach ihrem Rang sortierten Rechenknoten in einem Empfangspufferspeicher in einem Wurzelknoten gesammelt werden.
  • Eine Reduktionsoperation ist ebenfalls eine kollektive Viele-zu-eins-Operation, die eine arithmetische oder logische Funktion enthält, welche an zwei Datenelementen ausgeführt wird. Alle Prozesse geben denselben ”Zählstand” (count) und dieselbe arithmetische oder logische Funktion an. Nach der Reduktion haben alle Prozesse Datenelemente des Zählstands aus Sendepufferspeichern der Rechenknoten an den Wurzelprozess gesendet. Bei einer Reduktionsoperation werden Datenelemente von entsprechenden Speicherplätzen im Sendepufferspeicher mittels arithmetischer oder logischer Operationen paarweise verknüpft, um ein einziges entsprechendes Element im Empfangspufferspeicher des Wurzelprozesses zu erzeugen. Anwendungsspezifische Reduktionsoperationen können zur Laufzeit festgelegt werden. Bibliotheken für parallele Datenübertragungen können vordefinierte Operationen unterstützen. MPI stellt beispielsweise die folgenden vordefinierten Reduktionsoperationen bereit:
    MPI_MAX Maximum
    MPI_MIN Minimum
    MPI_SUM Summe
    MPI_PROD Produkt
    MPI_LAND Logisches UND
    MPI_BAND Bitweises UND
    MPI_LOR Logisches ODER
    MPI_BOR Bitweises ODER
    MPI_LXOR Logisches exklusives ODER
    MPI_BXOR Bitweises exklusives ODER
  • Neben Rechenknoten enthält der parallele Computer (100) Eingabe/Ausgabe(EIA)-Knoten (110, 114), die über das globale Verbindungsnetzwerk (106) mit den Rechenknoten (102) verbunden sind. Die Rechenknoten (102) in dem parallelen Computer (100) können in Verarbeitungsgruppen unterteilt werden, so dass jeder Rechenknoten in einer Verarbeitungsgruppe für Datenübertragungen mit demselben EIA-Knoten verbunden ist. Jede Verarbeitungsgruppe besteht folglich aus einem EIA-Knoten und einer Teilmenge von Rechenknoten (102). Das Verhältnis zwischen der Anzahl von Rechenknoten und der Anzahl von EIA-Knoten in dem ganzen System hängt üblicherweise von der für den parallelen Computer (102) gewählten Hardware-Konfiguration ab. Bei manchen Konfigurationen kann jede Verarbeitungsgruppe zum Beispiel aus acht Rechenknoten und einem EIA-Knoten bestehen. Bei anderen Konfigurationen kann jede Verarbeitungsgruppe aus vierundsechzig Rechenknoten und einem EIA-Knoten bestehen. Dieses Beispiel dient jedoch lediglich der Erklärung und ist nicht als Einschränkung zu verstehen. Jeder EIA-Knoten stellt EIA-Dienste zwischen Rechenknoten (102) seiner Verarbeitungsgruppe und einer Gruppe von EIA-Einheiten bereit. In dem Beispiel von 1 sind die EIA-Knoten (110, 114) über ein lokales Netzwerk (”LAN”) (130), das mittels eines Hochgeschwindigkeits-Ethernet ausgeführt ist, für Datenübertragungen mit den EIA-Einheiten (118, 120, 122) verbunden.
  • Der parallele Computer (100) von 1 enthält auch einen Dienstknoten (116), der über eines der Netzwerke (104) mit den Rechenknoten verbunden ist. Der Dienstknoten (116) stellt Dienste bereit, die einer Vielzahl von Rechenknoten gemeinsam sind, Verwalten der Konfiguration von Rechenknoten, Laden von Programmen in die Rechenknoten, Starten der Ausführung von Programmen auf den Rechenknoten, Abrufen von Ergebnissen von Programmoperationen auf den Rechenknoten und so weiter. Der Dienstknoten (116) führt eine Dienstanwendung (124) aus und tauscht mit Benutzern (128) über eine Schnittstelle (126) der Dienstanwendung, die auf dem Computerendgerät (122) ausgeführt wird, Daten aus.
  • Der parallele Computer (100) von 1 dient allgemein zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung. Das Konfigurieren von Rechenknoten in dem parallelen Computer (100) unter Verwendung eines RDMA kann ein Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten (102a) des parallelen Computers (100) beinhalten, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten (102b) in dem parallelen Computer (100) rundzusenden. Eine RDMA-Rundsendeoperation ist eine Operation, bei der Daten an einen oder mehrere Empfänger unter Verwendung von RDMA-Techniken rundgesendet werden, so dass Daten an einen oder mehrere Empfänger durch Schreiben der Daten in den Speicher des einen oder der mehreren Empfänger rundgesendet werden. RDMA-Techniken ermöglichen es dem Quellenrechenknoten (102a), Daten direkt in den Speicher des Zielrechenknotens zu schreiben, ohne dass das Betriebssystem eines der beiden Knoten (102a, 102b) beteiligt ist. Das Einleiten einer RDMA-Rundsendeoperation zum Rundsenden von binären Konfigurationsinformationen an einen oder mehrere Zielrechenknoten (102b) in dem parallelen Computer (100) kann zum Beispiel ausgeführt werden, indem die Verfügbarkeit jedes Zielrechenknotens (102b) zum Empfangen der binären Konfigurationsinformationen geprüft wird, indem jeder Zielrechenknoten (102b) informiert wird, dass die RDMA-Rundsendeoperation demnächst beginnt, indem jedem Zielrechenknoten (102b) Informationen über die demnächst beginnende RDMA-Rundsendeoperation gesendet wird und so weiter. Die binären Konfigurationsdaten können zum Beispiel als ausführbare Binärdatei ausgeführt sein, die auf dem Zielrechenknoten (102b) ausgeführt werden kann.
  • Das Konfigurieren von Rechenknoten in dem parallelen Computer (100) unter Verwendung eines RDMA kann weiterhin ein Vorbereiten des Zielrechenknotens (102b) durch jeden Zielrechenknoten (102b) zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten (102a) beinhalten. Jeder Zielrechenknoten (102b) in dem parallelen Computer (100) kann den Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten (102a) vorbereiten, indem zum Beispiel Speicher zugewiesen wird, um die binären Konfigurationsinformationen zu speichern, indem der Quellenrechenknoten (102a) informiert wird, dass der Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen zu empfangen, indem in einen Empfangsmodus gegangen wird, in dem der Zielrechenknoten (102b) damit beginnt, auf die binären Konfigurationsinformationen von dem Quellenrechenknoten (102a) zu warten und so weiter.
  • Das Konfigurieren von Rechenknoten in dem parallelen Computer (100) unter Verwendung eines RDMA kann weiterhin ein Übermitteln einer Bereitschaftsnachricht an den Quellenrechenknoten (102a) durch jeden Zielrechenknoten (102b) in dem parallelen Computer (100) beinhalten. Die Bereitschaftsnachricht kann angeben, dass der Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten (102a) des parallelen Computers (100) zu empfangen. Die Bereitschaftsnachricht kann zum Beispiel die Speicheradresse des Zielrechenknotens (102b) enthalten, auf die die binären Konfigurationsinformationen geschrieben werden sollten, eine Kennzeichnung des Zielrechenknotens (102b), der die Konfigurationsinformationen über die Rundsendeoperation empfängt, und so weiter.
  • Das Konfigurieren von Rechenknoten in dem parallelen Computer (100) unter Verwendung eines RDMA kann des Weiteren ein Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten (102a) beinhalten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens (102b) zu schreiben. Das Durchführen einer RDMA-Rundsendeoperation zum Schreiben der binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens (102b) kann zum Beispiel von dem Quellenrechenknoten (102a) durchgeführt werden, der mehrere RDMA-Schreiboperationen durchführt. Jede RDMA-Schreiboperation kann die binären Konfigurationsinformationen in den Speicher eines bestimmten Zielrechenknotens (102b) schreiben. Das Durchführen einer RDMA-Rundsendeoperation zum Schreiben der binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens (102b) kann zum Beispiel durch die Verwendung kollektiver Operationen wie oben beschrieben durchgeführt werden, so dass die kollektive Operation die binären Konfigurationsinformationen in den Speicher der Zielrechenknoten (102b) schreibt.
  • Das Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung wird allgemein auf einem parallelen Computer ausgeführt, der eine Vielzahl von Rechenknoten enthält, die für kollektive Operationen über mindestens ein Datenübertragungsnetzwerk gegliedert sind. Tatsächlich können solche Computer Tausende von solchen Rechenknoten enthalten. Jeder Rechenknoten ist selbst wiederum eine Art Computer, der aus einem oder mehreren Computerverarbeitungskernen, seinem eigenen Computerspeicher und seinen eigenen Eingabe/Ausgabe-Adaptern besteht.
  • Zur näheren Erklärung zeigt 2 ein Blockschaltbild eines beispielhaften Rechenknotens (102), der in einem parallelen Computer von Nutzen ist, welcher Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfigurieren kann. Der Rechenknoten (102) von 2 enthält eine Vielzahl von Verarbeitungskernen (165) sowie einen RAM (156). Die Verarbeitungskerne (165) von 2 können auf einem oder mehreren integrierten Schaltungschips konfiguriert sein. Die Verarbeitungskerne (165) sind über einen Hochgeschwindigkeits-Speicherbus (155) und über einen Busadapter (194) mit dem RAM (156) sowie über einen Erweiterungsbus (168) mit anderen Komponenten des Rechenknotens verbunden. Im RAM (156) ist ein Anwendungsprogramm (159), ein Modul mit Computerprogrammanweisungen, gespeichert, das eine parallele Datenverarbeitung auf Benutzerebene unter Verwendung von parallelen Algorithmen durchführt.
  • Ebenfalls im RAM (156) gespeichert ist eine Bibliothek für parallele Datenübertragungen (161), eine Bibliothek mit Computerprogrammanweisungen, die parallele Datenübertragungen zwischen Rechenknoten durchführt, einschließlich Punkt-zu-Punkt-Operationen sowie kollektive Operationen. Eine Bibliothek mit parallelen Datenübertragungsroutinen kann zur Verwendung in Systemen gemäß Ausführungsformen der vorliegenden Erfindung von Grund auf entwickelt werden, wobei eine herkömmliche Programmiersprache wie zum Beispiel die Programmiersprache C und herkömmliche Programmierverfahren verwendet werden, um parallele Datenübertragungsroutinen zu schreiben, die Daten zwischen Knoten in zwei unabhängigen Datenübertragungsnetzwerken senden und empfangen. Alternativ können vorhandene Bibliotheken nach dem Stand der Technik verbessert werden, damit sie gemäß Ausführungsformen der vorliegenden Erfindung arbeiten. Zu Beispielen für Bibliotheken für parallele Datenübertragungen nach dem Stand der Technik gehören die Bibliothek ”Message Passing Interface” (”MPI”) und die Bibliothek ”Parallel Virtual Machine” (”PVM”).
  • Ebenfalls im RAM (156) gespeichert ist eine Anwendung (226). Die Anwendung (226) in dem Beispiel von 2 kann als eine Instanz einer parallelen Anwendung konfiguriert sein, wobei andere Instanzen zwischen einer Vielzahl von Rechenknoten ausgeführt werden, die in einer operativen Gruppe gegliedert sind. Die Anwendung (226) in dem Beispiel von 2 ist so konfiguriert, dass sie Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfiguriert. Die Anwendung (226) in dem Beispiel von 2 kann Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfigurieren, indem folgende Schritte ausgeführt werden: Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten des parallelen Computers rundzusenden; Vorbereiten des Zielrechenknotens durch jeden des einen oder der mehreren Zielrechenknoten zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten; Übermitteln einer Bereitschaftsnachricht an den Quellenrechenknoten durch jeden des einen oder der mehreren Zielrechenknoten, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten zu empfangen; und Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.
  • Darüber hinaus ist in dem RAM (156) ein Betriebssystem (162), ein Modul mit Computerprogrammanweisungen und Routinen für den Zugriff eines Anwendungsprogramms auf andere Ressourcen des Rechenknotens, gespeichert. Es ist für ein Anwendungsprogramm und eine Bibliothek für parallele Datenübertragungen in einem Rechenknoten eines parallelen Computers üblich, einen einzelnen Ausführungs-Thread ohne Benutzeranmeldung und ohne Sicherheitsaspekte auszuführen, weil der Thread über die Berechtigung zum vollständigen Zugriff auf alle Ressourcen des Knotens verfügt. Die Menge und die Komplexität der von einem Betriebssystem auf einem Rechenknoten in einem parallelen Computer auszuführenden Aufgaben (tasks) sind folglich geringer und weniger komplex als die Menge und die Komplexität der Aufgaben eines Betriebssystems auf einem seriellen Computer, auf dem viele Threads gleichzeitig ausgeführt werden. Überdies gibt es auf dem Rechenknoten (102) von 2 keine Video-E/A, ein weiterer Faktor, der die Anforderungen an das Betriebssystem verringert. Bei dem Betriebssystem (162) kann es sich im Vergleich zu Betriebssystemen von Universalcomputern daher um ein abgespecktes Betriebssystem handeln, eine im Funktionsumfang reduzierte Variante sozusagen, oder um ein Betriebssystem, das speziell für Operationen auf einem bestimmten parallelen Computer entwickelt worden ist. Zu Betriebssystemen, die zur Verwendung in einem Rechenknoten auf sinnvolle Weise verbessert, vereinfacht werden, gehören IBM AIX®, IBM i5/OSTM, UNIXTM, Linux®, Microsoft® Windows® XP und andere, wie für den Fachmann zu erkennen ist. AIX und i5/OS sind Warenzeichen der International Business Machines Corporation, die in vielen Rechtsordnungen weltweit eingetragen sind. UNIX ist ein in den Vereinigten Staaten und anderen Ländern eingetragenes Warenzeichen von The Open Group. Linux ist ein in den Vereinigten Staaten, in anderen Ländern oder beides eingetragenes Warenzeichen von Linus Torvalds. Microsoft und Windows sind in den Vereinigten Staaten, in anderen Ländern oder beides eingetragene Warenzeichen der Microsoft Corporation.
  • Der beispielhafte Rechenknoten (102) von 2 enthält mehrere Datenübertragungsadapter (172, 176, 180, 188), um Datenübertragungen mit anderen Knoten eines parallelen Computers auszuführen. Solche Datenübertragungen können seriell über RS-232-Verbindungen, über externe Busse wie zum Beispiel den Universal Serial Bus (USB), über Datenübertragungsnetzwerke wie zum Beispiel Internet-Protocol(IP)-Netzwerke und auf andere Weise durchgeführt werden, wie für den Fachmann zu erkennen ist.
  • Datenübertragungsadapter führen die Hardware-Ebene von Datenübertragungen aus, über die ein Computer entweder direkt oder über ein Netzwerk Datenübertragungen an einen anderen Computer sendet. Zu Beispielen für Datenübertragungsadapter, die in Vorrichtungen von Nutzen sind, welche Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA konfigurieren, gehören Modems für drahtgebundene Datenübertragungen, Ethernet(IEEE 802.3)-Adapter für drahtgebundene Netzwerkübertragungen und 802.11 b-Adapter für drahtlose Netzwerkdatenübertragungen.
  • Die Datenübertragungsadapter in dem Beispiel von 2 beinhalten einen Gigabit-Ethernet-Adapter (172), der den beispielhaften Rechenknoten (102) für Datenübertragungen mit einem Gigabit Ethernet (174) verbindet. Gigabit Ethernet ist ein Netzwerk-Übertragungsstandard, der in dem Standard IEEE 802.3 festgelegt ist, welcher eine Datenrate von 1 Milliarde Bits pro Sekunde (ein Gigabit) bereitstellt. Gigabit Ethernet ist eine Variante von Ethernet, die über Mehrmoden-Lichtwellenleiterkabel, Einmoden-Lichtwellenleiterkabel oder nicht abgeschirmte, verdrillte Leitungspaare betrieben wird.
  • Die Datenübertragungsadapter in dem Beispiel von 2 beinhalten eine untergeordnete JTAG-Schaltung (JTAG-Slave-Schaltung) (176), die den beispielhaften Rechenknoten (102) für Datenübertragungen mit einer übergeordneten JTAG-Schaltung (JTAG-Master-Schaltung) (178) verbindet. JTAG ist der für den Standard IEEE 1149.1 mit dem Titel ”Standard Test Access Port and Boundary-Scan Architecture for test access ports used for testing printed circuit boards using boundary scan” gebräuchliche Name. JTAG ist in weiten Teilen so angepasst, dass Grenzpfadabtastung (boundary scan) derzeit mehr oder weniger gleichbedeutend mit JTAG ist. JTAG wird nicht nur für Leiterplatten, sondern auch für Grenzpfadabtastungen von integrierten Schaltungen eingesetzt und ist auch als ein Mechanismus zur Fehlersuche und -beseitigung in eingebetteten Systemen hilfreich, da er einen praktischen alternativen Zugriffspunkt in das System bietet. Auf den beispielhaften Rechenknoten von 2 kann zum Beispiel alles drei von Folgendem zutreffen: Er enthält üblicherweise eine oder mehrere integrierte Schaltungen, die auf einer Leiterplatte installiert sind, und kann als ein eingebettetes System ausgeführt werden, das über seinen eigenen Verarbeitungskern, seinen eigenen Speicher und seine eigene E/A-Funktionalität verfügt. JTAG-Grenzpfadabtastungen durch den JTAG-Slave (176) können Verarbeitungskernregister und Speicher in dem Rechenknoten (102) zur Verwendung beim dynamischen Neuzuweisen eines verbundenen Knotens zu einem Block von Rechenknoten wirksam konfigurieren, die in Systemen von Nutzen sind, welche Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfigurieren können.
  • Die Datenübertragungsadapter in dem Beispiel von 2 beinhalten einen Punkt-zu-Punkt-Netzwerkadapter (180), der den beispielhaften Rechenknoten (102) für Datenübertragungen mit einem Netzwerk (108) verbindet, das für Punkt-zu-Punkt-Nachrichtenaustauschoperationen optimal geeignet ist, wie zum Beispiel ein Netzwerk, das als ein dreidimensionaler Torus oder als ein dreidimensionales Netz konfiguriert ist. Der Punkt-zu-Punkt-Adapter (180) stellt Datenübertragungen in sechs Richtungen auf drei Datenübertragungsachsen, x, y und z, über sechs bidirektionale Verbindungen bereit: +x (181), –x (182), +y (183), –y (184), +z (185) und –z (186).
  • Die Datenübertragungsadapter in dem Beispiel von 2 beinhalten einen Adapter (188) eines globalen Verbindungsnetzwerks, der den beispielhaften Rechenknoten (102) für Datenübertragungen mit einem globalen Verbindungsnetzwerk (106) verbindet, das für kollektive Nachrichtenaustauschoperationen optimal geeignet ist, wie zum Beispiel ein Netzwerk, das als ein Binärbaum konfiguriert ist. Der Adapter (188) des globalen Verbindungsnetzwerks stellt Datenübertragungen über drei bidirektionale Verbindungen für jedes globale Verbindungsnetzwerk (106) bereit, das der Adapter (188) des globalen Verbindungsnetzwerks unterstützt. In dem Beispiel von 2 stellt der Adapter (188) des globalen Verbindungsnetzwerks Datenübertragungen über drei bidirektionale Verbindungen für ein globales Verbindungsnetzwerk (106) bereit: zwei zu Kindknoten (190) und eine zu einem Elternknoten (192).
  • Der beispielhafte Rechenknoten (102) enthält mehrere arithmetischlogische Einheiten (arithmetic logic units, ”ALU”). Jeder Verarbeitungskern (165) enthält eine ALU (166), und eine gesonderte ALU (170) ist für den ausschließlichen Gebrauch durch den Adapter (188) des globalen Verbindungsnetzwerks zur Verwendung beim Durchführen der arithmetischen und logischen Funktionen von Reduktionsoperationen, einschließlich einer Allreduce-Operation, vorgesehen. Computerprogrammanweisungen einer Reduktionsroutine in der Bibliothek (161) für parallele Datenübertragungen können eine Anweisung für eine arithmetische oder logische Funktion in einem Anweisungsregister (169) zwischenspeichern. Wenn die arithmetische oder logische Funktion einer Reduktionsoperation zum Beispiel eine ”Summe” oder ein ”logisches ODER” ist, kann der kollektive Operationsadapter (188) die arithmetische oder logische Operation mittels der ALU (166) in dem Verarbeitungskern (165) oder, was üblicherweise weitaus schneller ist, mittels der fest zugeordneten ALU (170) unter Verwendung von Daten ausführen, die von den Knoten (190, 192) in dem globalen Verbindungsnetzwerk (106) bereitgestellt werden, sowie von Daten, die von den Verarbeitungskernen (165) in dem Rechenknoten (102) bereitgestellt werden.
  • Beim Durchführen arithmetischer Operationen in dem Adapter (188) des globalen Verbindungsnetzwerks dient der Adapter (188) des globalen Verbindungsnetzwerks jedoch häufig nur dazu, Daten zu verbinden, die von den Kindknoten (190) empfangen wurden, und das Ergebnis im Netzwerk (106) nach oben zu dem Elternknoten (192) weiterzuleiten. Auf ähnliche Weise kann der Adapter (188) des globalen Verbindungsnetzwerks nur dazu dienen, Daten zu übermitteln, die von dem Elternknoten (192) empfangen wurden, und die Daten im Netzwerk (106) nach unten zu den Kindknoten (190) weiterzuleiten. Das heißt, dass keiner der Verarbeitungskerne (165) in dem Rechenknoten (102) Daten beisteuert, die die Ausgabe der ALU (170) ändern, die dann in dem globalen Verbindungsnetzwerk (106) nach oben oder unten weitergeleitet wird. Da die ALU (170) üblicherweise keine Daten in das Netzwerk (106) ausgibt, bis die ALU (170) eine Eingabe von einem der Verarbeitungskerne (165) empfängt, kann ein Verarbeitungskern (165) das neutrale Element in die fest zugewiesene ALU (170) für die bestimmte arithmetische Operation einbringen, die in der ALU (170) durchgeführt wird, um eine Änderung der Ausgabe der ALU (170) zu verhindern. Zum Einbringen des neutralen Elements in die ALU werden jedoch häufig viele Verarbeitungszyklen benötigt. Um die Leistung in solchen Fällen weiter zu verbessern, enthält der beispielhafte Rechenknoten (102) fest zugeordnete Hardware (171) zum Einbringen von neutralen Elementen in die ALU (170), um die Menge an Verarbeitungskernressourcen zu verringern, die zur Verhinderung einer Änderung der ALU-Ausgabe benötigt werden. Die fest zugeordnete Hardware (171) bringt ein neutrales Element ein, das der bestimmten arithmetischen Operation entspricht, die von der ALU durchgeführt wird. Wenn der Adapter (188) des globalen Verbindungsnetzwerks zum Beispiel ein bitweises ODER bei den von den Kindknoten (190) empfangenen Daten durchführt, kann die fest zugeordnete Hardware (171) Nullen in die ALU (170) einbringen, um die Leistung im gesamten globalen Verbindungsnetzwerk (106) zu verbessern.
  • Zur näheren Erklärung zeigt 3A ein Blockschaltbild eines beispielhaften Punkt-zu-Punkt-Adapters (180), der in Systemen von Nutzen ist, die Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfigurieren können. Der Punkt-zu-Punkt-Adapter (180) ist zur Verwendung in einem für Punkt-zu-Punkt-Operationen optimierten Datenübertragungsnetzwerk vorgesehen, einem Netzwerk, das Rechenknoten in einem dreidimensionalen Torus oder in einem dreidimensionalen Netz gliedert. Der Punkt-zu-Punkt-Adapter (180) in dem Beispiel von 3A stellt eine Datenübertragung auf einer x-Achse über vier einseitig gerichtete Datenübertragungsverbindungen an den und von dem nächsten Knoten in der –x-Richtung (182) und an den und von dem nächsten Knoten in der +x-Richtung (181) bereit. Der Punkt-zu-Punkt-Adapter (180) in dem Beispiel von 3A stellt auch eine Datenübertragung auf einer y-Achse über vier einseitig gerichtete Datenübertragungsverbindungen an den und von dem nächsten Knoten in der –y-Richtung (184) und an den und von dem nächsten Knoten in der +y-Richtung (183) bereit. Der Punkt-zu-Punkt-Adapter (180) in dem Beispiel von 3A stellt ferner eine Datenübertragung auf einer z-Achse über vier einseitig gerichtete Datenübertragungsverbindungen an den und von dem nächsten Knoten in der –z-Richtung (186) und an den und von dem nächsten Knoten in der +z-Richtung (185) bereit.
  • Zur näheren Erklärung zeigt 3B ein Blockschaltbild eines beispielhaften Adapters (188) eines globalen Verbindungsnetzwerks, der in Systemen von Nutzen ist, die Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfigurieren können. Der Adapter (188) des globalen Verbindungsnetzwerks ist zur Verwendung in einem für kollektive Operationen optimierten Netzwerk vorgesehen, einem Netzwerk, das Rechenknoten eines parallelen Computers als Binärbaum gliedert. Der Adapter (188) des globalen Verbindungsnetzwerks in dem Beispiel von 3B stellt Datenübertragungen an und von Kindknoten eines globalen Verbindungsnetzwerks über vier einseitig ausgerichtete Datenübertragungsverbindungen (190) bereit und stellt des Weiteren eine Datenübertragung an und von einem Elternknoten des globalen Verbindungsnetzwerks über zwei einseitig gerichtete Datenübertragungsverbindungen (192) bereit.
  • Zur näheren Erklärung zeigt 4 eine Strichzeichnung, die ein beispielhaftes Datenübertragungsnetzwerk (108) veranschaulicht, das für Punkt-zu-Punkt-Operationen optimiert ist, welche in Systemen von Nutzen sind, die Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfigurieren können. In dem Beispiel von 4 stellen Punkte Rechenknoten (102) eines parallelen Computers dar, und die gepunkteten Linien zwischen den Punkten stellen Datenübertragungsverbindungen (103) zwischen Rechenknoten dar. Die Datenübertragungsverbindungen sind mit Punk-zu-Punkt-Datenübertragungsadaptern ausgeführt, die ähnlich dem für das Beispiel in 3A gezeigten Adapter sind, mit Datenübertragungsverbindungen auf drei Achsen, x, y und z, und in und aus sechs Richtungen, +x (181), –x (182), +y (183), –y (184), +z (185) und –z (186). Die Verbindungen und die Rechenknoten werden von diesem für Punkt-zu-Punkt-Operationen optimierten Datenübertragungsnetzwerk zu einem dreidimensionalen Netz (105) gegliedert. Das Netz (105) weist Wrap-around-Verbindungen auf jeder Achse auf, die die äußersten Rechenknoten in dem Netz (105) auf gegenüberliegenden Seiten des Netzes (105) verbinden. Diese Wrap-around-Verbindungen bilden einen Torus (107). Jeder Rechenknoten in dem Torus weist eine Position in dem Torus auf, der von einem Satz von x-, y- und z-Koordinaten eindeutig angegeben wird. Der Leser wird bemerken, dass die Wrap-around-Verbindungen in der y- und in der z-Richtung aus Gründen der Übersichtlichkeit weggelassen wurden, jedoch in ähnlicher Weise wie die in der x-Richtung gezeigte Wrap-around-Verbindung konfiguriert sind. Um die Erklärung verständlicher zu machen, ist das Datenübertragungsnetzwerk von 4 mit nur 27 Rechenknoten veranschaulicht, aber der Leser wird erkennen, dass ein für Punkt-zu-Punkt-Operationen optimiertes Datenübertragungsnetzwerk zur Verwendung beim Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung einige wenige Rechenknoten oder aber Tausende von Rechenknoten enthalten kann. Um die Erklärung verständlicher zu machen, ist das Datenübertragungsnetzwerk von 4 mit nur drei Dimensionen veranschaulicht, aber der Leser wird erkennen, dass ein für Punkt-zu-Punkt-Operationen optimiertes Datenübertragungsnetzwerk zur Verwendung beim Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung tatsächlich in zwei Dimensionen, vier Dimensionen, fünf Dimensionen und so weiter ausgeführt sein kann. Mehrere Supercomputer verwenden mittlerweile fünfdimensionale Netz- oder Torusnetzwerke, so zum Beispiel IBM Blue Gene®/Q.
  • Zur näheren Erklärung zeigt 5 eine Strichzeichnung, die ein beispielhaftes globales Verbindungsnetzwerk (106) veranschaulicht, das in Systemen von Nutzen ist, die Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung konfigurieren können. Das beispielhafte Datenübertragungsnetzwerk von 5 beinhaltet Datenübertragungsverbindungen (103), die mit den Rechenknoten verbunden sind, um die Rechenknoten als einen Baum zu gliedern. In dem Beispiel von 5 stellen Punkte Rechenknoten (102) eines parallelen Computers dar, und die gepunkteten Linien (103) zwischen den Punkten stellen Datenübertragungsverbindungen zwischen Rechenknoten dar. Die Datenübertragungsverbindungen sind mit Adaptern eines globalen Verbindungsnetzwerks ausgeführt, die ähnlich dem für das Beispiel in 3B veranschaulichten Adapter sind, wobei jeder Knoten üblicherweise Datenübertragungen an und von zwei Kindknoten und Datenübertragungen an und von einem Elternknoten, mit ein paar Ausnahmen, bereitstellt. Knoten in dem globalen Verbindungsnetzwerk (106) können als ein physischer Wurzelknoten (202), Zweigknoten (204) und Blattknoten (206) beschrieben werden. Die physische Wurzel (202) hat zwei Kinder, aber keine Eltern und wird deshalb so genannt, weil der physische Wurzelknoten (202) der Knoten ist, der an erster Stelle des Binärbaums physisch konfiguriert wird. Die Blattknoten (206) haben jeweils einen Elternknoten, aber Blattknoten haben keine Kinder. Die Zweigknoten (204) haben jeweils einen Eltern- und zwei Kindknoten. Die Verbindungen und die Rechenknoten werden von diesem für kollektive Operationen optimierten Datenübertragungsnetzwerk zu einem Binärbaum (106) gegliedert. Um die Erklärung verständlicher zu machen, ist das Datenübertragungsnetzwerk von 5 mit nur 31 Rechenknoten veranschaulicht, aber der Leser wird erkennen, dass ein für kollektive Operationen optimiertes globales Verbindungsnetzwerk (106) zur Verwendung beim Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung einige wenige Rechenknoten oder aber Tausende von Rechenknoten enthalten kann.
  • In dem Beispiel von 5 wird jedem Knoten in dem Baum eine Einheitenkennung zugewiesen, die als ein ”Rang” (250) bezeichnet wird. Der Rang kennzeichnet tatsächlich eine Aufgabe oder einen Prozess, der eine parallele Operation gemäß Ausführungsformen der vorliegenden Erfindung ausführt. Die Verwendung des Rangs zur Kennzeichnung eines Knotens setzt voraus, dass nur eine solche Aufgabe auf jedem Knoten ausgeführt wird. Wenn mehr als eine beteiligte Aufgabe auf einem einzelnen Knoten ausgeführt wird, kennzeichnet der Rang eher die Aufgabe als solche als den Knoten. Ein Rang kennzeichnet eindeutig die Position einer Aufgabe in dem Baumnetzwerk zur Verwendung sowohl bei Punkt-zu-Punkt- als auch bei kollektiven Operationen in dem Baumnetzwerk. In diesem Beispiel werden die Ränge als ganze Zahlen zugewiesen, wobei mit 0 begonnen wird, die den Wurzelaufgaben oder dem Wurzelknoten (202) zugewiesen wird, 1 wird dem ersten Knoten in der zweiten Ebene des Baums zugewiesen, 2 wird dem zweiten Knoten in der zweiten Ebene des Baums zugewiesen, 3 wird dem ersten Knoten in der dritten Ebene des Baums zugewiesen, 4 wird dem zweiten Knoten in der dritten Ebene des Baums zugewiesen und so weiter. Zur einfacheren Darstellung werden hier nur die Ränge der ersten drei Ebenen des Baums gezeigt, doch wird allen Rechenknoten in dem Baumnetzwerk ein eindeutiger Rang zugewiesen.
  • Zur näheren Erklärung zeigt 6 einen Ablaufplan, der ein beispielhaftes Verfahren zum Konfigurieren von Rechenknoten (102b) in einem parallelen Computer (100) unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. Der parallele Computer (100) von 6 enthält eine Vielzahl von Rechenknoten (102a, 102b), die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind. Bei dem beispielhaften Verfahren von 6 kann bzw. können das eine oder die mehreren Datenübertragungsnetzwerke ein globales Verbindungsnetzwerk, ein Punkt-zu-Punkt-Netzwerk und so weiter, wie oben mit Bezug auf die 1 bis 5 beschrieben, enthalten.
  • Das beispielhafte Verfahren von 6 beinhaltet ein Einleiten (602) einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten (102a) des parallelen Computers (100), um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten (102b) in dem parallelen Computer (100) rundzusenden. Bei dem beispielhaften Verfahren von 6 ist eine RDMA-Rundsendeoperation eine Operation, bei der Daten an einen oder mehrere Empfänger unter Verwendung von RDMA-Techniken rundgesendet werden, so dass Daten an einen oder mehrere Empfänger durch Schreiben der Daten in den Speicher des einen oder der mehreren Empfänger rundgesendet werden. RDMA-Techniken ermöglichen es dem Quellenrechenknoten (102a), Daten direkt in den Speicher (614) des Zielrechenknotens (102b) zu schreiben, ohne dass das Betriebssystem eines der beiden Knoten (102a, 102b) beteiligt ist. Das Einleiten (602) einer RDMA-Rundsendeoperation zum Rundsenden von binären Konfigurationsinformationen (612) an einen oder mehrere Zielrechenknoten (102b) in dem parallelen Computer (100) kann zum Beispiel ausgeführt werden, indem die Verfügbarkeit jedes Zielrechenknotens (102b) zum Empfangen der binären Konfigurationsinformationen (612) geprüft wird, indem jeder Zielrechenknoten (102b) informiert wird, dass die RDMA-Rundsendeoperation demnächst beginnt, indem jedem Zielrechenknoten (102b) Informationen über die demnächst beginnende RDMA-Rundsendeoperation gesendet werden, und so weiter. Bei dem beispielhaften Verfahren von 6 können die binären Konfigurationsdaten (612) zum Beispiel als eine ausführbare Binärdatei ausgeführt sein, die auf den Zielrechenknoten (102b) ausgeführt werden kann.
  • Das beispielhafte Verfahren von 6 beinhaltet ferner ein Vorbereiten (604) des Zielrechenknotens (102b) durch jeden Zielrechenknoten (102b) in dem parallelen Computer (100) zum Empfang der binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) des parallelen Computers (100). Bei dem beispielhaften Verfahren von 6 kann jeder Zielrechenknoten (102b) in dem parallelen Computer (100) den Empfang der binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) in dem parallelen Computer (100) vorbereiten (604), indem zum Beispiel Speicher zugewiesen wird, um die binären Konfigurationsinformationen (612) zu speichern, indem der Quellenrechenknoten (102a) informiert wird, dass der Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) zu empfangen, indem in einen Empfangsmodus gegangen wird, in dem der Zielrechenknoten (102b) damit beginnt, auf die binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) zu warten, und so weiter.
  • Das beispielhafte Verfahren von 6 beinhaltet auch ein Übermitteln (606) einer Bereitschaftsnachricht (610) an den Quellenrechenknoten (102a) durch jeden Zielrechenknoten (102b) in dem parallelen Computer (100). Bei dem beispielhaften Verfahren von 6 gibt die Bereitschaftsnachricht (610) an, dass der Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) des parallelen Computers (100) zu empfangen. Die Bereitschaftsnachricht (610) von 6 kann zum Beispiel die Speicheradresse des Zielrechenknotens (102b) enthalten, auf die die binären Konfigurationsinformationen (612) geschrieben werden sollten, eine Kennzeichnung des Zielrechenknotens (102b), der die Konfigurationsinformationen (612) über die Rundsendeoperation empfängt, und so weiter.
  • Das beispielhafte Verfahren von 6 beinhaltet des Weiteren ein Durchführen (608) einer RDMA-Rundsendeoperation durch den Quellenrechenknoten (102a), um die binären Konfigurationsinformationen (612) in den Speicher (614) jedes Zielrechenknotens (102b) zu schreiben. Bei dem beispielhaften Verfahren von 6 kann das Durchführen (608) einer RDMA-Rundsendeoperation zum Schreiben der binären Konfigurationsinformationen (612) in den Speicher (614) jedes Zielrechenknotens (102b) zum Beispiel von dem Quellenrechenknoten (102a) durchgeführt werden, der mehrere RDMA-Schreiboperationen durchführt. Jede RDMA-Schreiboperation kann die binären Konfigurationsinformationen (612) in den Speicher (614) eines bestimmten Zielrechenknotens (102b) schreiben. Bei dem beispielhaften Verfahren von 6 kann das Durchführen (608) einer RDMA-Rundsendeoperation zum Schreiben der binären Konfigurationsinformationen (612) in den Speicher (614) jedes Zielrechenknotens (102b) zum Beispiel durch die Verwendung kollektiver Operationen wie oben beschrieben durchgeführt werden, so dass die kollektive Operation die binären Konfigurationsinformationen (612) in den Speicher (614) der Zielrechenknoten (102b) schreibt.
  • Zur näheren Erklärung zeigt 7 einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Konfigurieren von Rechenknoten (102b) in einem parallelen Computer (100) unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. Das beispielhafte Verfahren von 7 ähnelt dem beispielhaften Verfahren von 6 insofern, als es ebenfalls ein Einleiten (602) einer RDMA-Rundsendeoperation, ein Vorbereiten (604) des Zielrechenknotens (102b) zum Empfang der binären Konfigurationsinformationen (612), ein Übermitteln (606) einer Bereitschaftsnachricht (610) an den Quellenrechenknoten (102a) und ein Durchführen (608) einer RDMA-Rundsendeoperation zum Schreiben der binären Konfigurationsinformationen (612) in den Speicher (614) jedes Zielrechenknotens (102b) beinhaltet.
  • Bei dem beispielhaften Verfahren von 7 kann das Einleiten (602) einer Rundsendeoperation zum Rundsenden von binären Konfigurationsinformationen (612) an einen oder mehrere Zielrechenknoten (102b) in dem parallelen Computer (100) ein Senden (702) einer Nachricht (704) über eine RDMA-Rundsendeoperation durch den Quellenrechenknoten (102a) des parallelen Computers (100) an jeden der Zielrechenknoten (102b) beinhalten. Die Nachricht (704) über eine RDMA-Rundsendeoperation von 7 kann von dem Quellenrechenknoten (102a) an den Zielrechenknoten (102b) über ein beliebiges der oben mit Bezug auf die 1 bis 5 beschriebenen Datenübertragungsnetzwerke gesendet werden.
  • Bei dem beispielhaften Verfahren von 7 enthält die Nachricht (704) über eine RDMA-Rundsendeoperation Einstellungsparameter (706) für die RDMA-Rundsendeoperation. Bei den Einstellungsparametern (706) von 7 handelt es sich um Parameter, die die binären Konfigurationsinformationen (612) beschreiben, welche von dem Quellenrechenknoten (102a) an den Zielrechenknoten (102b) gesendet werden sollen, die Datenübertragungsnetzwerke, die verwendet werden sollen, um die binären Konfigurationsinformationen (612) zu übermitteln, die von dem Quellenrechenknoten (102a) an den Zielrechenknoten (102b) gesendet werden sollen, und so weiter. Bei dem beispielhaften Verfahren von 7 enthalten die Einstellungsparameter (706) die Größe der während der RDMA-Rundsendeoperation zu übermittelnden Daten. Die Größe der während der RDMA-Rundsendeoperation zu übermittelnden Daten kann zum Beispiel als eine Byteanzahl für die binären Konfigurationsinformationen (612) ausgedrückt werden, als die Anzahl von Paketen oder Nachrichten, die benötigt werden, um die gesamten binären Konfigurationsinformationen (612) zu übermitteln, und so weiter.
  • Bei dem beispielhaften Verfahren von 7 kann das Vorbereiten (604) des Zielrechenknotens (102b) zum Empfang der binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) des parallelen Computers (100) ein Andern (708) eines Datenübertragungsstatus in dem Zielrechenknoten (102b) beinhalten, so dass der Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) über eine RDMA-Rundsendeoperation zu empfangen. Bei dem beispielhaften Verfahren von 7 kann jeder Rechenknoten (102a, 102b) zum Beispiel durch einen Datenübertragungsstatus gekennzeichnet sein, der angibt, dass der Rechenknoten (102a, 102b) dabei ist, Datenübertragungen an einen anderen Knoten zu senden, einen Datenübertragungsstatus, der angibt, dass der Rechenknoten (102a, 102b) dabei ist, Datenübertragungen von einem anderen Knoten zu empfangen, und so weiter. Ein solcher Datenübertragungsstatus kann weiterhin die bestimmte Art von Datenübertragungsmodus angeben, in dem sich Rechenknoten (102a, 102b) befinden, zum Beispiel ein Rundsende-Modus, bei dem es sich der Art nach um Eins-zu-viele-Datenübertragungen handelt, ein kollektiver Modus, bei dem es sich der Art nach um Viele-zu-eins-Datenübertragungen handelt, ein Punkt-zu-Punkt-Modus, bei dem es sich der Art nach um Eins-zu-eins-Datenübertragungen handelt, und so weiter. In dem Beispiel von 7 wird der Datenübertragungsstatus des Zielrechenknotens (102b) geändert (708), so dass der Zielrechenknoten (102b) bereit ist, Daten zu empfangen, die an den Zielrechenknoten (102b) rundgesendet werden. insbesondere der Datenübertragungsstatus des Zielrechenknotens (102b) wird geändert (708), so dass der Zielrechenknoten (102b) bereit ist, binäre Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) über eine RDMA-Rundsendeoperation zu empfangen.
  • Bei dem beispielhaften Verfahren von 7 kann das Übermitteln (606) einer Bereitschaftsnachricht an den Quellenrechenknoten (102a) ein Übermitteln (710) eines kollektiven Pakets (712) als Teil einer kollektiven Operation beinhalten. Bei dem beispielhaften Verfahren von 7 kann das kollektive Paket (712) Informationen enthalten, die angeben, dass der Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) zu empfangen. Das kollektive Paket (712) kann zum Beispiel ein Einzelbit enthalten, das anzeigt, ob der Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) zu empfangen. Bei einem solchen Beispiel kann der Quellenrechenknoten (102a) ein Bit von jedem Zielrechenknoten (102b) mittels einer kollektiven Operation wie beispielsweise einer kollektiven Reduktionsoperation sammeln. Nach dem Feststellen, dass jeder Zielrechenknoten (102b) einen Wert als Teil der kollektiven Reduktionsoperation zurückgesendet hat, der anzeigt, dass jeder Zielrechenknoten (102b) bereit ist, die binären Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) zu empfangen, kann der Quellenrechenknoten (102a) eine RDMA-Rundsendeoperation einleiten.
  • Zur näheren Erklärung zeigt 8 einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Konfigurieren von Rechenknoten (102b) in einem parallelen Computer (100) unter Verwendung eines RDMA gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. Das beispielhafte Verfahren von 8 ähnelt dem beispielhaften Verfahren von 6 insofern, als es ebenfalls ein Einleiten (602) einer RDMA-Rundsendeoperation, ein Vorbereiten (604) des Zielrechenknotens (102b) zum Empfang der binären Konfigurationsinformationen (612), ein Übermitteln (606) einer Bereitschaftsnachricht (610) an den Quellenrechenknoten (102a) und ein Durchführen (608) einer RDMA-Rundsendeoperation zum Schreiben der binären Konfigurationsinformationen (612) in den Speicher (614) jedes Zielrechenknotens (102b) beinhaltet.
  • Das beispielhafte Verfahren von 8 beinhaltet für jeden Zielrechenknoten (102b) nach dem Empfang der binären Konfigurationsinformationen (612) ein Feststellen (802) der Größe der empfangenen binären Konfigurationsinformationen (612). Bei dem beispielhaften Verfahren von 8 kann die Größe der empfangenen binären Konfigurationsinformationen (612) zum Beispiel als die Anzahl der Datenbytes, die in den binären Konfigurationsinformationen (612) enthalten sind, angegeben werden.
  • Das beispielhafte Verfahren von 8 beinhaltet auch ein Vermindern (804) eines Wertes eines Größenzählers (810) einer erwarteten Datenübermittlung um einen Betrag, der der Größe der empfangenen binären Konfigurationsinformationen (612) entspricht. Bei dem beispielhaften Verfahren von 8 kann der Quellenrechenknoten (102a) vor dem Einleiten der RDMA-Rundsendeoperation die Größe der binären Konfigurationsinformationen (612) übertragen, die an jeden Zielrechenknoten (102b) rundgesendet werden sollen. Jeder Zielrechenknoten (102b) kann diese Informationen verwenden, um den Wert eines Größenzählers (810) einer erwarteten Datenübermittlung einzustellen, der die Größe der binären Konfigurationsinformationen (612) darstellt, die an jeden Zielrechenknoten (102b) rundgesendet werden sollen. Bei einem solchen Beispiel kann der Zielrechenknoten (102b) immer dann, wenn binäre Konfigurationsinformationen (612) von dem Zielrechenknoten (102b) empfangen werden, den Wert des Größenzählers (810) der erwarteten Datenübermittlung um einen Betrag vermindern (804), der der Größe der empfangenen binären Konfigurationsinformationen (612) entspricht, so dass der Größenzähler (810) der erwarteten Datenübermittlung immer die Größe etwaiger restlicher binärer Konfigurationsinformationen (612) wiedergibt, die von dem Zielrechenknoten (102b) empfangen werden sollen.
  • Das beispielhafte Verfahren von 8 beinhaltet auch ein Ermitteln (806), ob der Wert eines Größenzählers (810) einer erwarteten Datenübermittlung null ist. Wie oben beschrieben, gibt der Größenzähler (810) der erwarteten Datenübermittlung die Größe etwaiger restlicher binärer Konfigurationsinformationen (612) wieder, die von dem Zielrechenknoten (102b) empfangen werden sollen. Nachdem jeder Zielrechenknoten (102b) binäre Konfigurationsinformationen (612) von dem Quellenrechenknoten (102a) empfangen hat, kann der Zielrechenknoten (102b) demnach den Wert des Größenzählers (810) der erwarteten Datenübermittlung prüfen, um die Größe der binären Konfigurationsinformationen (612) festzustellen, die von dem Zielrechenknoten (102b) noch zu empfangen sind. Wenn der Zielrechenknoten (102b) feststellt (806), dass der Wert eines Größenzählers (810) einer erwarteten Datenübermittlung null ist, wurden alle binären Konfigurationsinformationen (612) von dem Zielrechenknoten (102b) empfangen.
  • Das beispielhafte Verfahren von 8 beinhaltet als Reaktion auf das Feststellen, dass der Wert des Größenzählers (810) der erwarteten Datenübermittlung null ist, auch ein Übermitteln (808) einer Datenempfangsnachricht (812) an den Quellenrechenknoten (102a). Bei dem beispielhaften Verfahren von 8 wird die Datenempfangsnachricht (812) von dem Zielrechenknoten (102b) an den Quellenrechenknoten (102a) als ein Hinweis darauf gesendet, dass der Zielrechenknoten (102b) alle binären Konfigurationsinformationen (612) empfangen hat. Die Datenempfangsnachricht (812) kann Informationen enthalten, die den Zielrechenknoten (102b) kennzeichnen, Informationen, die den Umfang der Daten angeben, die von dem Zielrechenknoten (102b) als Ergebnis der RDMA-Rundsendeoperation empfangen wurden, eine Prüfsumme und sonstige Informationen, wie sie einem Fachmann geläufig sind. Die Datenempfangsnachricht (812) kann auch als ein kollektives Paket ausgeführt werden, das als Teil einer kollektiven Operation übermittelt wird.
  • Obwohl viele der in den Figuren dargestellten Beispiele Ausführungsformen veranschaulichen, bei denen nur ein einziger Zielrechenknoten vorhanden ist, wird der Leser erkennen, dass in anderen Ausführungsformen, die im Umfang der vorliegenden Erfindung liegen, viele Zielrechenknoten vorhanden sein können. Die Darstellung eines einzigen Zielrechenknotens in den Figuren der vorliegenden Anmeldung ist nicht als Einschränkung der Ausführungsformen der vorliegenden Erfindung zu verstehen.
  • Für den Fachmann ist ersichtlich, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Aspekte der vorliegenden Erfindung können daher die Form einer kompletten Hardware-Ausführung, einer kompletten Software-Ausführung (darunter Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform haben, bei der Hardware- und Software-Aspekte kombiniert sind, die allgemein hierin als ”Schaltung”, ”Modul” oder ”System” bezeichnet werden können. Aspekte der vorliegenden Erfindung können des Weiteren die Form eines Computerprogrammprodukts haben, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, die über einen darin enthaltenen computerlesbaren Programmcode verfügen.
  • Es können beliebige Kombinationen von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder eine geeignete Kombination davon handeln, ohne darauf beschränkt zu sein. Zu genauen Beispielen (einer nicht vollständigen Liste) für das computerlesbare Speichermedium gehören wie folgt: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computer-Diskette, eine Festplatte, ein Arbeitsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges physisches Medium handeln, das ein Programm enthalten oder speichern kann, welches von oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen verwendet wird.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit darin enthaltenem computerlesbarem Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen haben, darunter elektromagnetische, optische Formen oder eine geeignete Kombination davon, ohne darauf beschränkt zu sein. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weitergeben oder transportieren kann.
  • In einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines geeigneten Mediums übermittelt werden, das drahtlos, drahtgebunden, ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination davon sein kann, ohne darauf beschränkt zu sein.
  • Computerprogrammcode zum Ausführen von Operationen in Verbindung mit Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben werden, zu denen eine objektorientierte Programmiersprache wie beispielsweise Java®, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache ”C” oder ähnliche Programmiersprachen gehören. Der Programmcode kann ganz auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder ganz auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über ein beliebiges Netzwerk mit dem Computer des Benutzers verbunden sein, zum Beispiel über ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder es kann die Verbindung zu einem externen Computer hergestellt werden (beispielsweise über das Internet durch einen Internetdienstanbieter). Java und alle auf Java beruhende Warenzeichen und Logos sind Warenzeichen oder eingetragene Warenzeichen von Oracle und/oder seinen Tochterunternehmen.
  • Vorstehend werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufplandarstellungen und/oder der Blockschaltbilder sowie Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder in den Blockschaltbildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalrechners, Spezialrechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaltbilds festgelegten Funktionen/Maßnahmen umzusetzen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten steuern kann, um auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich der Anweisungen erzeugen, die die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaltbilds festgelegte Funktion/Maßnahme umsetzen.
  • Die Computerprogrammanweisungen können ferner in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Funktionsschritten auszulösen, die auf dem Computer, in der anderen programmierbaren Vorrichtung oder den anderen Einheiten durchgeführt werden, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer oder in der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse bereitstellen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaltbilds festgelegten Funktionen/Maßnahmen umzusetzen.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder den Blockschaltbildern ein Modul, Segment oder einen Teil eines Codes darstellen, das/der eine oder mehrere ausführbare Anweisungen zur Umsetzung der festgelegten Logikfunktion(en) aufweist. Es ist ferner darauf hinzuweisen, dass die im Block angegebenen Funktionen bei einigen alternativen Ausführungen in einer anderen Reihenfolge als in den Figuren dargestellt ablaufen können. Zwei aufeinanderfolgend dargestellte Blöcke können zum Beispiel tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach entsprechender Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Des Weiteren ist darauf hinzuweisen, dass jeder Block der Blockschaltbilder und/oder der Ablaufplandarstellung sowie Kombinationen von Blöcken in den Blockschaltbildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, die die angegebenen Funktionen oder Maßnahmen durchführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen.
  • Aus der vorstehenden Beschreibung versteht sich, dass Änderungen und Abwandlungen an verschiedenen Ausführungsformen der vorliegenden Erfindung vorgenommen werden können, ohne vom eigentlichen Gedanken abzuweichen. Die Beschreibungen in dieser Darlegung dienen lediglich zur Veranschaulichung und sind nicht in einem einschränkenden Sinn zu verstehen. Der Umfang der vorliegenden Erfindung ist nur durch die Sprache der folgenden Ansprüche beschränkt.

Claims (16)

  1. Verfahren zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs (”RDMA”), wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei das Verfahren aufweist: Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten in dem parallelen Computer rundzusenden; Vorbereiten des Zielrechenknotens durch jeden des einen oder der mehreren Zielrechenknoten zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten; Übermitteln einer Bereitschaftsnachricht an den Quellenrechenknoten durch jeden des einen oder der mehreren Zielrechenknoten, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten zu empfangen; und Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.
  2. Verfahren nach Anspruch 1, wobei das Einleiten einer Rundsendeoperation zum Rundsenden von binären Konfigurationsinformationen an einen oder mehrere Zielrechenknoten weiterhin ein Senden einer Nachricht über eine RDMA-Rundsendeoperation an jeden der Zielrechenknoten durch den Quellenrechenknoten aufweist, wobei die Nachricht über eine RDMA-Rundsendeoperation Einstellungsparameter für die RDMA-Rundsendeoperation beinhaltet, darunter die Größe der während der RDMA-Rundsendeoperation zu übermittelnden Daten.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Vorbereiten des Zielrechenknotens zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten ein Ändern eines Datenübertragungsstatus in dem Zielrechenknoten beinhaltet, so dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen über eine RDMA-Rundsendeoperation von dem Quellenrechenknoten zu empfangen.
  4. Verfahren nach einem der vorherigen Ansprüche, wobei das Übermitteln einer Bereitschaftsnachricht an den Zielrechenknoten weiterhin ein Übermitteln eines kollektiven Pakets als Teil einer kollektiven Operation aufweist.
  5. Verfahren nach einem der vorherigen Ansprüche, das weiterhin aufweist: für jeden Zielrechenknoten nach dem Empfang binärer Konfigurationsinformationen: Feststellen der Größe der empfangenen binären Konfigurationsinformationen; Vermindern eines Wertes eines Größenzählers einer erwarteten Datenübermittlung um einen Betrag, der der Größe der empfangenen binären Konfigurationsinformationen entspricht; Ermitteln, ob der Wert eines Größenzählers einer erwarteten Datenübermittlung null ist; und als Reaktion auf das Feststellen, dass der Wert des Größenzählers der erwarteten Datenübermittlung null ist, Übermitteln einer Datenempfangsnachricht an den Quellenrechenknoten.
  6. Verfahren nach Anspruch 5, wobei das Übermitteln einer Datenempfangsnachricht an den Quellenrechenknoten weiterhin ein Übermitteln eines kollektiven Pakets als Teil einer kollektiven Operation aufweist.
  7. Verfahren nach einem der vorherigen Ansprüche, wobei es sich bei den binären Konfigurationsdaten um eine ausführbare Binärdatei handelt.
  8. Vorrichtung zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs (”RDMA”), wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei die Vorrichtung aufweist: einen Computerprozessor; einen Computerspeicher, der funktionsmäßig mit dem Computerprozessor verbunden ist, wobei in dem Computerspeicher Computerprogrammanweisungen angeordnet sind; Einleitungsmittel zum Einleiten einer RDMA-Rundsendeoperation durch einen Quellenrechenknoten des parallelen Computers, um binäre Konfigurationsinformationen an einen oder mehrere Zielrechenknoten des parallelen Computers rundzusenden; Vorbereitungsmittel zum Vorbereiten des Zielrechenknotens durch jeden des einen oder der mehreren Zielrechenknoten zum Empfang der binären Konfigurationsinformationen von dem Quellenrechenknoten; Übermittlungsmittel zum Übermitteln einer Bereitschaftsnachricht an den Quellenrechenknoten durch jeden des einen oder der mehreren Zielrechenknoten, wobei die Bereitschaftsnachricht angibt, dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen von dem Quellenrechenknoten zu empfangen; und Durchführungsmittel zum Durchführen einer RDMA-Rundsendeoperation durch den Quellenrechenknoten, um die binären Konfigurationsinformationen in den Speicher jedes Zielrechenknotens zu schreiben.
  9. Vorrichtung nach Anspruch 8, wobei das Einleitungsmittel weiterhin ein Sendemittel zum Senden einer Nachricht über eine RDMA-Rundsendeoperation an jeden der Zielrechenknoten durch den Quellenrechenknoten aufweist, wobei die Nachricht über eine RDMA-Rundsendeoperation Einstellungsparameter für die RDMA-Rundsendeoperation beinhaltet, darunter die Größe der während der RDMA-Rundsendeoperation zu übermittelnden Daten.
  10. Vorrichtung nach einem der Ansprüche 8 oder 9, wobei das Vorbereitungsmittel weiterhin ein Änderungsmittel zum Ändern eines Datenübertragungsstatus in dem Zielrechenknoten aufweist, so dass der Zielrechenknoten bereit ist, die binären Konfigurationsinformationen über eine RDMA-Rundsendeoperation von dem Quellenrechenknoten zu empfangen.
  11. Vorrichtung nach einem der Ansprüche 8 bis 10, wobei das Übermittlungsmittel weiterhin ein Übermittlungsmittel zum Übermitteln eines kollektiven Pakets als Teil einer kollektiven Operation aufweist.
  12. Vorrichtung nach einem der Ansprüche 8 bis 11, die für jeden Zielrechenknoten nach Empfang von binären Konfigurationsinformationen weiterhin aufweist: Feststellungsmittel zum Feststellen der Größe der empfangenen binären Konfigurationsinformationen; Verminderungsmittel zum Vermindern eines Wertes eines Größenzählers einer erwarteten Datenübermittlung um einen Betrag, der der Größe der empfangenen binären Konfigurationsinformationen entspricht; Ermittlungsmittel zum Ermitteln, ob der Wert eines Größenzählers einer erwarteten Datenübermittlung null ist; und als Reaktion auf das Feststellen, dass der Wert des Größenzählers der erwarteten Datenübermittlung null ist, Übermittlungsmittel zum Übermitteln einer Datenempfangsnachricht an den Quellenrechenknoten.
  13. Vorrichtung nach Anspruch 12, wobei das Übermittlungsmittel weiterhin funktionsmäßig in der Lage ist, ein kollektives Paket als Teil einer kollektiven Operation zu übermitteln.
  14. Vorrichtung nach einem der Ansprüche 8 bis 13, wobei es sich bei den binären Konfigurationsdaten um eine ausführbare Binärdatei handelt.
  15. Computerprogrammprodukt zum Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs (”RDMA”), wobei der parallele Computer eine Vielzahl von Rechenknoten aufweist, die über ein oder mehrere Datenübertragungsnetzwerke für Datenübertragungen verbunden sind, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen speichert, die die Verarbeitungsschaltung ausführt, um ein Verfahren nach einem der Ansprüche 1 bis 7 durchzuführen.
  16. Computerprogramm, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers ladbar ist, wobei das Computerprogramm Software-Codeteile aufweist, wenn das Programm auf einem Computer ausgeführt wird, um das Verfahren nach einem der Ansprüche 1 bis 7 durchzuführen.
DE112013000599.9T 2012-01-17 2013-01-09 Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs Pending DE112013000599T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
USUS-13/351,419 2012-01-17
US13/351,419 US10474625B2 (en) 2012-01-17 2012-01-17 Configuring compute nodes in a parallel computer using remote direct memory access (‘RDMA’)
PCT/IB2013/050171 WO2013108150A1 (en) 2012-01-17 2013-01-09 Configuring compute nodes γν parallel computer using remote direct memory access

Publications (1)

Publication Number Publication Date
DE112013000599T5 true DE112013000599T5 (de) 2014-10-23

Family

ID=48780759

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013000599.9T Pending DE112013000599T5 (de) 2012-01-17 2013-01-09 Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs

Country Status (4)

Country Link
US (4) US10474625B2 (de)
DE (1) DE112013000599T5 (de)
GB (1) GB2514034B (de)
WO (1) WO2013108150A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474625B2 (en) 2012-01-17 2019-11-12 International Business Machines Corporation Configuring compute nodes in a parallel computer using remote direct memory access (‘RDMA’)
US9160607B1 (en) * 2012-11-09 2015-10-13 Cray Inc. Method and apparatus for deadlock avoidance
JP6740683B2 (ja) * 2016-04-07 2020-08-19 富士通株式会社 並列処理装置及び通信制御方法
JP6610398B2 (ja) * 2016-04-12 2019-11-27 富士通株式会社 並列処理装置及び通信制御方法
JP2018045438A (ja) * 2016-09-14 2018-03-22 富士通株式会社 並列処理装置、送信プログラム、受信プログラム及びデータ転送方法
US11210089B2 (en) * 2019-07-11 2021-12-28 Hewlett Packard Enterprise Development Lp Vector send operation for message-based communication
CN112948025B (zh) * 2021-05-13 2021-09-14 阿里云计算有限公司 数据加载方法、装置及存储介质、计算设备、计算系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843540A (en) * 1986-09-02 1989-06-27 The Trustees Of Columbia University In The City Of New York Parallel processing method
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
WO1999018505A1 (en) * 1997-10-06 1999-04-15 Powerquest Corporation System and method for transferring one-to-many disk image among computers in a network
US7089289B1 (en) * 2000-07-18 2006-08-08 International Business Machines Corporation Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
US6804673B2 (en) * 2001-04-19 2004-10-12 Fujitsu Limited Access assurance for remote memory access over network
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
JP2004192179A (ja) 2002-12-10 2004-07-08 Fujitsu Ltd Rdma機能を持ったnicをハードウェアメモリ保護を行わないで、専用のモニタプロセスなしにシステムに組み込むための装置
US7290125B2 (en) * 2003-04-17 2007-10-30 International Business Corporation Method for scheduling launch a computer system based upon a time of timed power-on partition of logical partitions
US7275152B2 (en) 2003-09-26 2007-09-25 Intel Corporation Firmware interfacing with network protocol offload engines to provide fast network booting, system repurposing, system provisioning, system manageability, and disaster recovery
US20050091334A1 (en) 2003-09-29 2005-04-28 Weiyi Chen System and method for high performance message passing
US7147078B2 (en) * 2004-07-01 2006-12-12 Ford Global Technologies, Llc Charging a fluid accumulator while operating a hybrid vehicle powertrain including an engine and a pump/motor
US7478138B2 (en) 2004-08-30 2009-01-13 International Business Machines Corporation Method for third party, broadcast, multicast and conditional RDMA operations
US8281025B2 (en) * 2005-06-13 2012-10-02 Hewlett-Packard Development Company, L.P. Contemporaneous peer-to-peer multicast data distribution
US8327192B2 (en) * 2006-02-06 2012-12-04 Intel Corporation Method for memory integrity
US7694310B2 (en) * 2006-08-29 2010-04-06 International Business Machines Corporation Method for implementing MPI-2 one sided communication
US7734743B2 (en) 2007-02-23 2010-06-08 International Business Machines Corporation Method to enable infiniband network bootstrap
US8316190B2 (en) * 2007-04-06 2012-11-20 Waratek Pty. Ltd. Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7827024B2 (en) * 2007-05-09 2010-11-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US7673011B2 (en) 2007-08-10 2010-03-02 International Business Machines Corporation Configuring compute nodes of a parallel computer in an operational group into a plurality of independent non-overlapping collective networks
US8122301B2 (en) * 2009-06-30 2012-02-21 Oracle America, Inc. Performing remote loads and stores over networks
US10474625B2 (en) 2012-01-17 2019-11-12 International Business Machines Corporation Configuring compute nodes in a parallel computer using remote direct memory access (‘RDMA’)
US9292291B2 (en) 2012-03-28 2016-03-22 International Business Machines Corporation Instruction merging optimization

Also Published As

Publication number Publication date
US20130185375A1 (en) 2013-07-18
US10474625B2 (en) 2019-11-12
GB2514034A (en) 2014-11-12
US20190370213A1 (en) 2019-12-05
WO2013108150A1 (en) 2013-07-25
US10831701B2 (en) 2020-11-10
US20130185381A1 (en) 2013-07-18
US20190391955A1 (en) 2019-12-26
GB2514034B (en) 2020-02-19
GB201413667D0 (en) 2014-09-17
US10474626B2 (en) 2019-11-12
US10810155B2 (en) 2020-10-20

Similar Documents

Publication Publication Date Title
DE112011101469T5 (de) Kompilieren von Software für ein hierarchisches verteiltes Verarbeitungssystem
DE112013000904T5 (de) Durchführen von Aktualisierungen von Quellcode, der auf einer Vielzahl von Rechenknoten ausgeführt wird
DE112013000599T5 (de) Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs
US8949328B2 (en) Performing collective operations in a distributed processing system
US8161480B2 (en) Performing an allreduce operation using shared memory
DE102012214007A1 (de) Auswahl eines Protokolls einer kollektiven Operation in einem Paralellrechner
US8689228B2 (en) Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system
US9772876B2 (en) Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes
US8565120B2 (en) Locality mapping in a distributed processing system
US8504730B2 (en) Administering connection identifiers for collective operations in a parallel computer
US9444908B2 (en) Distributing an executable job load file to compute nodes in a parallel computer
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
US20120331270A1 (en) Compressing Result Data For A Compute Node In A Parallel Computer
US9229782B2 (en) Collectively loading an application in a parallel computer
US8447912B2 (en) Paging memory from random access memory to backing storage in a parallel computer
DE102019101114A1 (de) System, Vorrichtung und Verfahren zum Bereitstellen einer Fabric für einen Beschleuniger
DE102013202023A1 (de) Verarbeitung unerwarteter Nachrichten an einem Datenverarbeitungsknoten eines Parallelcomputers
US9461874B2 (en) Collective operation management in a parallel computer
US9513611B2 (en) Adjusting environmental variables in an adaptive parameter adjustment runtime environment
US20150193283A1 (en) Executing a gather operation on a parallel computer that includes a plurality of compute nodes

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence