DE112011101321B4 - Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist - Google Patents

Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist Download PDF

Info

Publication number
DE112011101321B4
DE112011101321B4 DE112011101321.3T DE112011101321T DE112011101321B4 DE 112011101321 B4 DE112011101321 B4 DE 112011101321B4 DE 112011101321 T DE112011101321 T DE 112011101321T DE 112011101321 B4 DE112011101321 B4 DE 112011101321B4
Authority
DE
Germany
Prior art keywords
compute node
node
compute
dma
dma descriptor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112011101321.3T
Other languages
English (en)
Other versions
DE112011101321T5 (de
Inventor
Brian Edward Smith
Michael Alan Blocksome
Charles Jens Archer
Joseph Ratterman
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 DE112011101321T5 publication Critical patent/DE112011101321T5/de
Application granted granted Critical
Publication of DE112011101321B4 publication Critical patent/DE112011101321B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)

Abstract

Verfahren zum Abfragen von Leistungszählerdaten auf einem parallelen Computersystem, das eine Vielzahl von Rechenknoten aufweist, wobei das Verfahren Folgendes umfasst:- Empfangen eines ersten Direktspeicherzugriffs- (DMA-) Deskriptors auf einem ersten Rechenknoten von einem zweiten Rechenknoten, wobei der erste DMA-Deskriptor Leistungszählerdaten identifiziert, die an einen dritten Rechenknoten gesendet werden sollen, wobei es sich bei dem zweiten Rechenknoten und dem dritten Rechenknoten um denselben Rechenknoten in dem parallelen Computersystem handelt;- Einstellen des ersten DMA-Deskriptors in eine Injektionswarteschlange auf dem ersten Rechenknoten;- Ausführen eines durch den ersten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten, um die Leistungszählerdaten zu ermitteln;- Senden der Leistungszählerdaten von dem ersten Rechenknoten an den dritten Rechenknoten, und- Ausführen eines Fence-Vorgangs für den zweiten Rechenknoten, wobei der Fence-Vorgang Folgendes umfasst:- Empfangen eines zweiten DMA-Deskriptors auf dem ersten Rechenknoten von dem Rechenknoten, wobei der DMA-Deskriptor eine Fence-Kennung enthält, die an den zweiten Rechenknoten übertragen werden soll, und wobei der zweite DMA-Deskriptor nach dem ersten DMA-Deskriptor empfangen wird;- Ausführen eines durch den zweiten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten; und- Übertragen der Fence-Kennung von dem ersten Rechenknoten zu dem zweiten Rechenknoten.

Description

  • Gebiet der Erfindung
  • Ausführungsformen der Erfindung beziehen sich allgemein auf parallele Verarbeitung und insbesondere auf eine Technik zur Verwendung eines DMA-Spiegelungsvorgangs, um entfernt gespeicherte Leistungsdaten auf nicht störende Weise abzufragen.
  • Hintergrund der Erfindung
  • Leistungsstarke Computer können als hochgradig parallele Systeme konzipiert werden, in denen die Verarbeitungsaktivität hunderter, wenn nicht sogar tausender Prozessoren (CPUs) koordiniert wird, um Rechenaufgaben durchzuführen. Diese Systeme sind für eine große Vielfalt von Anwendungen ausgesprochen nützlich, zum Beispiel für die Erstellung von Finanzmodellen, Hydrodynamik, Quantenchemie, Astronomie, die Erstellung von Wettermodellen und für Wettervorhersagen, die Erstellung von geologischen Modellen, Primzahlfaktorisierung und Bildverarbeitung (z.B. CGI-Animationen und -Rendering), um nur einige Beispiele zu nennen.
  • International Business Machines (IBM) hat eine Familie paralleler Computersysteme unter dem Namen Blue Gene® entwickelt. Die verschiedenen Blue Gene-Architekturen stellen ein skalierbares, paralleles Computersystem bereit. Das System Blue Gene/P kann zum Beispiel mit bis zu 256 Racks eingerichtet werden, die 8.192 Knotenkarten und 884.736 PowerPC 450-Prozessoren aufnehmen. Die Blue Gene/P-Architektur war erfolgreich, und am 12. November 2007 gab IBM bekannt, dass ein Blue Gene/P-System am Forschungszentrum Jülich eine Arbeitsgeschwindigkeit von 167 Teraflops (167 Billionen Gleitkommaoperationen pro Sekunde) erreicht hatte, womit es zu diesem Zeitpunkt das schnellste Computersystem in Europa war. Darüber hinaus erreichte die Blue Gene/P-Installation im Argonne National Laboratory im Juni 2008 eine Geschwindigkeit von 450,3 Teraflops und war damit zu dieser Zeit der drittschnellste Computer der Welt.
  • Die Rechenknoten in einem parallelen System tauschen üblicherweise über mehrere Datenaustausch-Netzwerke Daten miteinander aus. Die Rechenknoten eines Blue Gene/P-Systems sind zum Beispiel mithilfe von fünf spezialisierten Netzwerken miteinander verbunden. Die wichtigste Strategie zum Datenaustausch ist für das Blue Gene/P-System der Nachrichtenaustausch über ein Torus-Netzwerk (d.h. einen Satz von Punkt-zu-Punkt-Verbindungen zwischen Knotenpaaren). Das Torus-Netzwerk ermöglicht für parallele Verarbeitungssysteme entwickelten Anwendungsprogrammen, hochentwickelte Schnittstellen wie zum Beispiel Message Passing Interface (MPI) und Aggregate Remote Memory Copy Interface (ARMCI) dazu zu verwenden, Rechenaufgaben durchzuführen und Daten auf einen Satz von Rechenknoten zu verteilen. Natürlich sind auch andere Nachrichtenaustausch-Schnittstellen entwickelt worden (und werden weiterhin entwickelt). Auch andere parallele Architekturen verwenden MPI und ARMCI für den Datenaustausch zwischen Rechenknoten, die über eine Vielzahl von Netzwerktopologien verbunden sind. Üblicherweise werden MPI-Nachrichten in einen Satz von Paketen eingeschlossen, die von einem Quellknoten über ein Datenaustausch-Netzwerk (z.B. das Torus-Netzwerk eines Blue Gene-Systems) zu einem Zielknoten übertragen werden.
  • Zusätzlich können die Rechenknoten verschiedene FIFOs in ihrem lokalen Arbeitsspeicher enthalten. Die Knoten können beispielsweise eine Injektions-FIFO enthalten, in der Befehle gespeichert werden können. Der Knoten kann die Injektions-FIFO überwachen, um zu ermitteln, wann Befehle zur FIFO hinzugefügt worden sind. Beispielsweise können ein Kopfzeiger und ein Endzeiger zum Überwachen der FIFO verwendet werden. Wenn die FIFO einen oder mehrere Befehle enthält, kann der Knoten beginnen, diese Befehle auszuführen. Die Knoten können auch sonstige FIFOs enthalten, zum Beispiel FIFOs, die Daten enthalten, die in den Arbeitsspeicher geschrieben werden sollen.
  • SALAPURA, V. u.a. („Next-Generation Performance Counters: Towards Monitoring Over Thousand Concurrent Events", ISPASS 2008. IEEE International Symposium on Performance Analysis of Systems and software, April 2008, S. 139-146) offenbaren eine Leistungsüberwachungsarchitektur, die im Blue Gene/P™ Supercomputer implementiert ist. Dieser Leistungsmonitor unterstützt die Verfolgung einer großen Anzahl gleichzeitiger Ereignisse durch eine hybride Zählerarchitektur. Die Zähler haben ihre Daten niedriger Ordnung in Registern implementiert, die gleichzeitig aktualisiert werden, während die Daten der Zähler hoher Ordnung in einem dichten SRAM-Array gehalten werden, das regelmäßig aus den Registern aktualisiert wird. Die Architektur zur Leistungsüberwachung umfasst die Unterstützung von Schwellenwerten pro Ereignis und schneller Ereignisbenachrichtigung unter Verwendung eines zweiphasigen Unterbrechungsprotokolls zum Scharfschalten und Auslösen.
  • SMEDS, N („A PAPI Implementation for BlueGene", Applied Parallel Computing. State of the Art in Scientific Computing, Lecture Notes in Computer Science, Springer Berlin Heidelberg. 18. Juni 2006, S. 1036 - 1044) offenbart die Implementierung von der Low-Level-Kernel-Schnittstelle für den Hardware-Leistungszählerzugriff auf BG/L und die zugehörige PAPI-Implementierung.
  • Es besteht daher die Aufgabe, dass eine sich über eine Vielzahl Rechenknoten eines parallelen Computersystems erstreckende Abfrage mit geringstmöglichem Aufwand an Ressourcen bewerkstelligt wird.
  • Übersicht
  • Die Aufgabe wird gemäß Anspruch 1 durch ein Verfahren zum Abfragen von Leistungszählerdaten auf einem parallelen Computersystem, das eine Vielzahl von Rechenknoten aufweist, gelöst.
  • Eine Ausführungsform der Erfindung beinhaltet ein Verfahren zum Abfragen von Leistungszählerdaten auf einem parallelen Computersystem, das eine Vielzahl von Rechenknoten aufweist. Das Verfahren kann im Allgemeinen das Empfangen eines ersten Direktspeicherzugriffs(DMA)-Deskriptors von einem zweiten Rechenknoten auf einem ersten Rechenknoten beinhalten. Der erste DMA-Deskriptor identifiziert Leistungszählerdaten, die an einen dritten Rechenknoten gesendet werden sollen. Das Verfahren kann außerdem das Einstellen des ersten DMA-Deskriptors in eine Injektionswarteschlange auf dem ersten Rechenknoten, das Ausführen eines durch den ersten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten, um die Leistungszählerdaten zu ermitteln, und das Senden der Leistungszählerdaten von dem ersten Rechenknoten an den dritten Rechenknoten beinhalten.
  • Eine weitere Ausführungsform der Erfindung beinhaltet ein computerlesbares Speichermedium, das ein Programm enthält, das bei seiner Ausführung einen Vorgang zum Abfragen von Leistungszählerdaten auf einem parallelen Computersystem durchführt, das über eine Vielzahl von Rechenknoten verfügt. Der Vorgang kann im Allgemeinen das Empfangen eines ersten Direktspeicherzugriffs(DMA)-Deskriptors von einem zweiten Rechenknoten auf einem ersten Rechenknoten beinhalten. Der erste DMA-Deskriptor identifiziert Leistungszählerdaten, die an einen dritten Rechenknoten gesendet werden sollen. Der Vorgang kann außerdem das Einstellen des ersten DMA-Deskriptors in eine Injektionswarteschlange auf dem ersten Rechenknoten, das Ausführen eines durch den ersten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten, um die Leistungszählerdaten zu ermitteln, und das Senden der Leistungszählerdaten von dem ersten Rechenknoten an den dritten Rechenknoten beinhalten.
  • Eine noch weitere Ausführungsform der Erfindung beinhaltet ein paralleles Computersystem. Das System kann im Allgemeinen eine Vielzahl von Rechenknoten beinhalten, wobei jeder Rechenknoten zumindest einen Prozessor, einen Arbeitsspeicher und eine DMA-Steuereinheit beinhaltet, die dazu eingerichtet ist, einen Vorgang zum Abfragen von Leistungszählerdaten von anderen Rechenknoten in dem parallelen Computersystem abzufragen. Der Vorgang selbst kann im Allgemeinen das Empfangen eines ersten Direktspeicherzugriffs(DMA)-Deskriptors von einem zweiten Rechenknoten auf einem ersten Rechenknoten beinhalten. Der erste DMA-Deskriptor identifiziert Leistungszählerdaten, die an einen dritten Rechenknoten gesendet werden sollen. Der Vorgang kann des Weiteren das Einstellen des ersten DMA-Deskriptors in eine Injektionswarteschlange, die in dem Arbeitsspeicher auf dem ersten Rechenknoten gespeichert ist, das Ausführen eines durch den ersten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten, um die Leistungszählerdaten zu ermitteln, und das Senden der Leistungszählerdaten von dem ersten Rechenknoten an den dritten Rechenknoten beinhalten.
  • Eine noch weitere Ausführungsform beinhaltet ein Verfahren zum Durchführen eines Fence-Vorgangs auf einem parallelen Computersystem, das eine Vielzahl von Rechenknoten aufweist. Dieses Verfahren kann im Allgemeinen das Senden eines ersten DMA-Deskriptors von einem ersten Rechenknoten an einen zweiten Rechenknoten beinhalten, wobei der erste DMA-Deskriptor Übertragungsdaten identifiziert, die an den ersten Rechenknoten übertragen werden sollen. Dieses Verfahren kann außerdem das Senden eines zweiten DMA-Deskriptors von dem ersten Rechenknoten an den zweiten Rechenknoten beinhalten, wobei der zweite DMA-Deskriptor eine Fence-Kennung enthält, die an den ersten Rechenknoten übertragen werden soll, und wobei der zweite DMA-Deskriptor nach dem ersten DMA-Deskriptor gesendet wird. Dieses Verfahren kann außerdem das Empfangen der Übertragungsdaten auf dem ersten Rechenknoten von dem zweiten Rechenknoten beinhalten, wobei die Übertragungsdaten infolge der Verarbeitung des ersten DMA-Deskriptors durch den zweiten Rechenknoten übertragen wurden. Und es kann außerdem das Empfangen der Spiegelungskennung auf dem ersten Rechenknoten von dem zweiten Rechenknoten beinhalten, wobei die Spiegelungskennung infolge der Verarbeitung des zweiten DMA-Deskriptors durch den zweiten Rechenknoten übertragen wurde.
  • Kurze Beschreibung
  • Damit die Weise, in der die oben aufgeführten Merkmale, Vorteile und Ziele der vorliegenden Erfindung erreicht werden, genau zu verstehen ist, kann eine genauere Beschreibung der Erfindung, die oben kurz zusammengefasst wurde, den Ausführungsformen entnommen werden, die in den beigefügten Zeichnungen veranschaulicht werden.
  • Es ist jedoch zu beachten, dass die beigefügten Zeichnungen lediglich typische Ausführungsformen dieser Erfindung veranschaulichen und daher nicht als deren Umfang beschränkend zu betrachten sind, da die Erfindung sonstige gleichermaßen wirksame Ausführungsformen beinhalten kann.
    • 1 ist ein Übersichts-Blockschaubild von Komponenten eines massiv parallelen Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist eine konzeptionelle Darstellung eines dreidimensionalen Torus-Netzwerks des Systems von 1 gemäß einer Ausführungsform der Erfindung.
    • 3 ist ein Übersichtsschaubild eines Rechenknotens des Systems von 1 gemäß einer Ausführungsform der Erfindung.
    • 4 ist ein Ablaufplan, der ein Verfahren zum nicht störenden Abrufen von Leistungszählerdaten von einem entfernt angeordneten Knoten veranschaulicht.
    • 5 ist ein Ablaufplan, der ein Verfahren zum Durchführen eines Fence-Vorgangs durch Abrufen von Leistungszählerdaten von einem entfernt angeordneten Knoten veranschaulicht.
    • 6 ist ein Ablaufplan, der ein Verfahren zum nicht störenden Abrufen von Leistungszählerdaten von einem entfernt angeordneten Knoten und das Übergeben der Leistungszählerdaten an einen Zielknoten veranschaulicht.
  • Genaue Beschreibung der bevorzugten Ausführungsformen
  • Verteilte Systeme wie zum Beispiel ein Blue Gene-System stellen eine ungemein große Rechenleistung bereit, indem sie die Aktivität von tausenden Prozessoren koordinieren. In sehr großen parallelen Computersystemen wie diesem können scheinbar einfache Berechnungen, die auf jedem Knoten durchgeführt werden, eine hohe Ressourcenbelastung bedeuten, wenn sie im Ganzen betrachtet werden. Beispielsweise kann jeder Knoten einen Zähler für eingehende und an jeden anderen Knoten ausgehende Nachrichten zum Beispiel zur Verwendung beispielsweise bei Sende- und Fence-Vorgängen führen. Das Führen dieser Zähler nimmt jedoch Arbeitsspeicherplatz auf jedem Knoten in Anspruch, und zusätzlich muss die CPU auf jedem Knoten diese Zähler jedes Mal, wenn eine Nachricht gesendet oder empfangen wird, erhöhen. Ein solcher Vorgang mag zwar für einen einzelnen Knoten unbedeutend scheinen (und ist es im Allgemeinen), in einer Umgebung mit zehntausenden Knoten, die aktiv Daten miteinander austauschen, kann ein solcher Vorgang jedoch Arbeitsspeicherplatz und Verarbeitungszeit in erheblichem Umfang für das System als Ganzes in Anspruch nehmen.
  • Ausführungsformen der Erfindung stellen ein Verfahren zum nicht störenden Abfragen von Daten auf einem entfernt angeordneten Knoten bei gleichzeitigem Verringern der CPU-Auslastung des Ursprungsknotens und des entfernt angeordneten Knotens auf ein Mindestmaß bereit. Ausführungsformen der Erfindung können zum Beispiel verwendet werden, um Leistungszählerdaten von einem entfernt angeordneten Knoten eines parallelen Computersystems wie beispielsweise der von IBM entwickelten Blue Gene-Architektur abzufragen. Selbstverständlich können Ausführungsformen der Erfindung auch für die Verwendung mit anderen parallelen Systemen eingerichtet werden.
  • Bei einer Ausführungsform sendet ein Ursprungsknoten einen DMA-Deskriptor, der Zielknotendaten enthält, an einen entfernt angeordneten Knoten. Dieser DMA-Deskriptor kann einen Befehl wie zum Beispiel einen RPUT-Befehl enthalten, der angibt, dass der entfernt angeordnete Knoten Daten an den designierten Zielknoten senden soll. Der DMA-Deskriptor könnte beispielsweise festlegen, dass der entfernt angeordnete Knoten Leistungsdaten von einer angegebenen Arbeitsspeicheradresse auf dem entfernt angeordneten Knoten senden soll. Beim Empfangen des DMA-Deskriptors kann der entfernt angeordnete Knoten den Befehl in einer lokalen Injektions-FIFO ablegen. Wenn der entfernt angeordnete Knoten den Befehl in der Injektions-FIFO verarbeitet, können der RPUT-Befehl ausgeführt und die angegebenen Daten an den Zielknoten übertragen werden. Der Zielknoten empfängt anschließend die Daten und legt sie daraufhin in einer Arbeitsspeicher-FIFO auf dem Zielknoten ab.
  • Im Folgenden wird auf Ausführungsformen der Erfindung Bezug genommen. Es versteht sich jedoch, dass die Erfindung nicht auf eine im Besonderen beschriebene Ausführungsform beschränkt ist. Vielmehr wird jede Kombination der folgenden Merkmale und Elemente, unabhängig davon, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, als die Erfindung ausführend und umsetzend betrachtet. Des Weiteren stellt die Erfindung in verschiedenen Ausführungsformen zahlreiche Vorteile gegenüber dem Stand der Technik bereit. Wenngleich Ausführungsformen der Erfindung Vorteile gegenüber sonstigen möglichen Lösungen und/oder gegenüber dem Stand der Technik erzielen können, wird die Erfindung jedoch nicht dadurch beschränkt, ob ein spezieller Vorteil durch eine bestimmte Ausführungsform erzielt wird oder nicht. Die folgenden Aspekte, Merkmale, Ausführungsformen und Vorteile dienen folglich nur zur Veranschaulichung und werden nicht als Elemente oder Beschränkungen der beigefügten Ansprüche betrachtet, es sei denn, wo dies ausdrücklich in einem oder mehreren Ansprüchen angegeben wird. Gleichermaßen ist eine Bezugnahme auf „die Erfindung“ nicht als Verallgemeinerung eines beliebigen, hier offenbarten erfindungsgemäßen Gegenstandes auszulegen und ist nicht als Element oder Beschränkung der beigefügten Ansprüche zu betrachten, es sei denn, wo dies ausdrücklich in einem oder mehreren Ansprüchen angegeben wird.
  • Eine Ausführungsform der Erfindung wird als Programmprodukt zur Verwendung mit einem Computersystem umgesetzt. Das/Die Programm(e) des Programmprodukts definiert/definieren Funktionen der Ausführungsformen (darunter die hierin beschriebenen Verfahren) und kann/können in einer Vielfalt von computerlesbaren Speichermedien enthalten sein. Zu veranschaulichenden computerlesbaren Speichermedien gehören unter anderem folgende, sie sind jedoch nicht auf diese beschränkt: (i) nicht beschreibbare Speichermedien (z.B. Festwert-Speichereinheiten innerhalb eines Computers wie beispielsweise CD-ROM-Datenträger, die von einem CD-ROM-Laufwerk gelesen werden können), auf denen Daten dauerhaft gespeichert sind; (ii) beschreibbare Speichermedien (z.B. Disketten in einem Diskettenlaufwerk oder ein Festplattenlaufwerk), auf denen änderbare Daten gespeichert sind. Bei solchen computerlesbaren Speichermedien handelt es sich um Ausführungsformen der vorliegenden Erfindung, wenn sie computerlesbare Befehle enthalten, die die Funktionen der vorliegenden Erfindung steuern. Zu sonstigen Medien gehören Datenaustauschmedien, durch die Daten an einen Computer übermittelt werden, wie beispielsweise durch ein Computer- oder Telefonnetz einschließlich drahtlose Datenaustausch-Netzwerke. Die letztere Ausführungsform beinhaltet im Besonderen das Übertragen von Daten an das/aus dem Internet und sonstige(n) Netzwerke(n). Bei solchen Datenaustauschmedien handelt es sich um Ausführungsformen der vorliegenden Erfindung, wenn sie computerlesbare Befehle enthalten, die die Funktionen der vorliegenden Erfindung steuern. Weit gefasst können computerlesbare Speichermedien und Datenaustauschmedien hierin als computerlesbare Medien bezeichnet werden.
  • Im Allgemeinen kann es sich bei den Routinen, die zum Umsetzen der Ausführungsformen der Erfindung ausgeführt werden, um einen Teil eines Betriebssystems oder einer/eines spezifischen Anwendung, Komponente, Programms, Moduls, Objekts oder Folge von Befehlen handeln. Das Computerprogramm der vorliegenden Erfindung besteht üblicherweise aus einer Vielzahl von Befehlen, die durch den systemeigenen Computer in ein maschinenlesbares Format übersetzt werden, und folglich um ausführbare Befehle. Außerdem bestehen Programme aus Variablen und Datenstrukturen, die entweder lokal im Programm gespeichert sind oder im Arbeitsspeicher oder auf Speichereinheiten zu finden sind. Darüber hinaus können verschiedene hier im Folgenden beschriebene Programme auf der Grundlage der Anwendung identifiziert werden, für die sie in einer spezifischen Ausführungsform der Erfindung umgesetzt werden. Es sollte jedoch ersichtlich sein, dass jegliche besondere Programmnomenklatur im Folgenden lediglich der Einfachheit halber verwendet wird und die Erfindung folglich nicht auf die ausschließliche Verwendung in einer bestimmten Anwendung beschränkt sein soll, die durch eine solche Nomenklatur bezeichnet und/oder impliziert wird.
  • 1 ist ein Übersichts-Blockschaubild von Komponenten eines massiv parallelen Computersystems 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Das Computersystem 100 stellt die Übersichtsarchitektur eines IBM Blue Gene®-Computersystems veranschaulichend dar, wobei es sich versteht, dass andere parallele Computersysteme verwendet werden könnten und nicht beabsichtigt ist, dass die Beschreibung einer bevorzugten Ausführungsform hierin die vorliegende Erfindung beschränkt.
  • Wie dargestellt, beinhaltet das Computersystem 100 einen Rechenkern 101, der eine Vielzahl von Rechenknoten 112 aufweist, die in einer regelmäßigen Anordnung oder Matrix angeordnet sind. Die Rechenknoten 112 führen die Verarbeitung für die Nutzarbeit durch, die durch das System 100 ausgeführt wird. Der Betrieb des Computersystems 100 mit dem Rechenkern 101 kann durch einen Dienstknoten 102 gesteuert werden. Verschiedene zusätzliche Prozessoren in Front-End-Knoten 103 können Verarbeitungsfunktionen an Zusatzdaten durchführen, und Datei-Server 104 stellen eine Schnittstelle zu Datenspeichereinheiten wie zum Beispiel Speichern 109A, 109B auf der Grundlage von Datenträgern oder sonstigen (nicht abgebildeten) E/A bereit. Ein funktionales Netzwerk 105 stellt den primären Datenaustauschpfad zwischen dem Rechenkern 101 und sonstigen Systemkomponenten bereit. Beispielsweise werden durch das funktionale Netzwerk 105 Daten, die in mit den Datei-Servern 104 verbundenen Speichereinheiten gespeichert sind, geladen und in sonstigen Systemkomponenten gespeichert.
  • Wie außerdem dargestellt, beinhaltet der Rechenkern 101 E/A-Knoten 111A bis 111C und Rechenknoten 112A bis 1121. Die Rechenknoten 112 stellen die Verarbeitungskapazität des parallelen Systems 100 bereit und sind dazu eingerichtet, für parallele Verarbeitung geschriebene Software-Anwendungen auszuführen. Die E/A-Knoten 111 bearbeiten E/A-Vorgänge für die Rechenknoten 112. Der E/A-Knoten 111 kann zum Beispiel Daten von den Datei-Servern 104 abrufen, die von einem der Rechenknoten 112 angefordert wurden. Jeder E/A-Knoten 111 kann einen Prozessor und Schnittstellen-Hardware beinhalten, die E/A-Vorgänge für einen Satz von N Rechenknoten 112 bearbeiten, wobei der E/A-Knoten und sein jeweiliger Satz von N Rechenknoten als PSatz bezeichnet werden. Der Rechenknoten 101 enthält M PSätze 115A bis 115C, die jeder einen einzelnen E/A-Knoten 111 und N Rechenknoten 112, das heißt insgesamt M x N Rechenknoten 112 beinhalten. Das Produkt aus M x N kann sehr groß sein. Bei einer Umsetzung ergibt sich zum Beispiel aus M = 1024 (1 K) und N = 64 ein Produkt von 64 K Rechenknoten.
  • Im Allgemeinen werden Anwendungsprogrammierungscode und sonstige Dateneingaben, die von dem Rechenknoten 101 zum Ausführen von Benutzeranwendungen benötigt werden, wie auch Datenausgaben, die von dem Rechenknoten 101 erzeugt werden, über das funktionale Netzwerk 105 ausgetauscht. Die Rechenknoten innerhalb eines PSatzes 115 tauschen Daten mit dem entsprechenden E/A-Knoten über ein entsprechendes lokales E/A-Baumnetzwerk 113A bis 113C aus. Die E/A-Knoten wiederum sind mit dem funktionalen Netzwerk 105 verbunden, über das sie mit E/A-Einheiten, die mit den Datei-Servern 104 verbunden sind, oder mit sonstigen Systemkomponenten Daten austauschen. Folglich können die lokalen E/A-Baumnetzwerke 113 logisch als Erweiterungen des funktionalen Netzwerks 105 betrachtet werden und werden wie das funktionale Netzwerk 105 für die Daten-E/A verwendet, obgleich sie physisch von dem funktionalen Netzwerk 105 getrennt sind.
  • Der Dienstknoten 102 kann dazu eingerichtet sein, den Betrieb der Rechenknoten 112 in dem Rechenkern 101 zu steuern. Bei einer Ausführungsform handelt es sich bei dem Dienstknoten 102 um ein Computersystem, das einen oder mehrere Prozessoren 121, einen internen Arbeitsspeicher 120 und einen lokalen Speicher 125 beinhaltet. Eine verbundene Konsole 107 (z.B. eine Tastatur, Maus und Anzeige) kann von einem Systemadministrator oder einer ähnlichen Person dazu verwendet werden, Rechenaufträge auf dem Rechenknoten 101 zu initialisieren. Der Dienstknoten 102 kann darüber hinaus eine interne Datenbank, die Zustandsdaten für die Rechenknoten im Kern 101 speichert, und eine Anwendung beinhalten, die dazu eingerichtet sein kann, unter anderem die Zuordnung von Hardware in dem Rechenkern 101 zu steuern, das Laden von Daten auf die Rechenkerne 111 zu steuern, einen Prozess, der auf einem der Rechenknoten 112 ausgeführt wird, auf einen anderen der Rechenknoten 112 zu migrieren und verschiedene Diagnose- und Wartungsfunktionen durchzuführen.
  • Bei einer Ausführungsform tauscht der Dienstknoten 102 Steuer- und Zustandsdaten mit den Knoten des Rechenkerns 101 über ein Steuersystem-Netzwerk 106 aus. Das Netzwerk 106 ist mit einem Satz Hardware-Steuereinheiten 108A bis 108C verbunden. Jede Hardware-Steuereinheit tauscht Daten mit den Knoten eines jeweiligen PSatzes 115 über ein entsprechendes lokales Hardware-Steuernetzwerk 114A bis 114C aus. Die Hardware-Steuereinheiten 108 und die lokalen Hardware-Steuernetzwerke 114 stellen logisch eine Erweiterung des Steuersystem-Netzwerks 106 dar, obgleich sie physisch getrennt sind.
  • Zusätzlich zu dem Dienstknoten 102 stellen Front-End-Knoten 103 Computersysteme bereit, die zum Durchführen von Zusatzfunktionen verwendet werden, die aus Effizienz- oder anderen Gründen am besten außerhalb des Rechenkerns 101 durchgeführt werden. Funktionen, die mit umfangreichen E/A-Vorgängen einhergehen, werden im Allgemeinen in den Front-End-Knoten 103 durchgeführt. Zum Beispiel werden eine interaktive Dateneingabe, eine Bearbeitung von Anwendungscode oder sonstige Funktionen von Benutzerschnittstellen im Allgemeinen wie eine Kompilierung von Anwendungscode durch die Front-End-Knoten 103 verarbeitet. Die Front-End-Knoten 103 sind auch mit dem funktionalen Netzwerk 105 verbunden und können Daten mit den Datei-Servern 104 austauschen.
  • Wie dargelegt, können die Rechenknoten 112 in einem massiv parallelen Computersystem 100 logisch in einem dreidimensionalen Torus angeordnet sein, in dem jeder Rechenknoten 112 mithilfe einer x-, y- und z-Koordinate identifiziert werden kann. 2 veranschaulicht ein Beispiel für ein dreidimensionales Torus-Netzwerk des Systems 100 gemäß einer Ausführungsform der Erfindung. Genauer gesagt, veranschaulicht 2 einen 4-x-4-x-4-Torus 201 aus Rechenknoten, in dem der Übersichtlichkeit halber die inneren Knoten weggelassen worden sind. Wenngleich 2 einen 4-x-4-x-4-Torus mit 64 Knoten darstellt, versteht es sich, dass die tatsächliche Anzahl von Rechenknoten in einem parallelen Rechensystem üblicherweise viel größer ist. Ein vollständiges Blue Gene/P-System beinhaltet zum Beispiel 8.192 Rechenknoten. Jeder Rechenknoten 112 im Torus 201 beinhaltet einen Satz von sechs Knoten-zu-Knoten-Datenaustauschverbindungen 202A bis 202F, der jedem Rechenknoten im Torus 201 ermöglicht, Daten mit seinen sechs unmittelbaren Nachbarn, jeweils zwei Knoten in der Dimension der x-, y- und z-Koordinate, auszutauschen.
  • So, wie er hierin verwendet wird, beinhaltet der Begriff „Torus“ eine beliebige Struktur von Knoten und Datenaustauschpfaden zwischen den Knoten in mehr als einer Dimension, sodass jeder Knoten über einen definierten Satz von Nachbarn verfügt und es für jeden bestimmten Knoten möglich ist, den Satz von Nachbarn dieses Knotens zu ermitteln. Ein „Nachbar“ eines bestimmten Knotens ist jeder Knoten, der durch einen direkten Datenaustauschpfad zwischen Koten mit dem bestimmten Knoten verbunden ist. Das heißt, ein Nachbar ist jeder Knoten, der über einen Pfad verbunden ist, der keinen weiteren Knoten kreuzen muss. Die Rechenknoten können in einem dreidimensionalen Torus 201 verbunden sein, wie in 2 dargestellt, sie können jedoch auch so eingerichtet sein, dass sie mehr oder weniger Dimensionen aufweisen. Bei den Nachbarn eines bestimmten Knotens handelt es sich darüber hinaus nicht zwangsläufig um die Knoten, die dem bestimmten Knoten physisch am nächsten sind, wenngleich es im Allgemeinen wünschenswert ist, die Knoten in einer solchen Weise anzuordnen, sofern dies möglich ist.
  • Bei einer Ausführungsform bilden die Rechenknoten einen Torus in einer der x-, y- oder z-Dimensionen in dieser Dimension aus, da die Punkt-zu-Punkt-Datenaustauschverbindungen logisch umlaufen. Dies wird beispielsweise in 2 durch die Verbindungen 202D, 202E und 202F dargestellt, die in jeder der x-, y- und z-Dimensionen von dem Rechenknoten 203 zum anderen Ende des Rechenkerns 201 umlaufen. Wenngleich sich der Knoten 203 an einer „Ecke“ des Torus zu befinden scheint, verbinden folglich die Knoten-zu-Knoten-Verbindungen 202A bis 202F den Knoten 203 in der x-, y- und z-Dimension des Torus 201 mit den Knoten 204, 205 und 206.
  • 3 ist ein Übersichtsschaubild eines Rechenknotens 112 des Systems 100 von 1 gemäß einer Ausführungsform der Erfindung. Wie dargestellt, beinhaltet der Rechenknoten 112 Prozessorkerne 301A und 301B, die jeweils über ein Befehlsadressenregister 306A und 306B verfügen. Der Rechenknoten 112 beinhaltet außerdem einen Arbeitsspeicher 302, der von beiden Prozessorkernen 301 verwendet wird; eine externe Steuerschnittstelle 303, die mit dem lokalen Hardware-Steuernetzwerk 114 (z.B. dem Steuersystem-Netzwerk 106) verbunden ist; eine externe Datenaustausch-Schnittstelle 304, die mit dem entsprechenden lokalen E/A-Baumnetzwerk 113 (z.B. dem funktionalen Netzwerk 105) und den entsprechenden sechs Knoten-zu-Knoten-Verbindungen 202 des Torus-Netzwerks 201 verbunden ist; und er beinhaltet eine Überwachungs- und Steuerlogik 305, die Steuerbefehle empfängt, die durch die externe Steuerschnittstelle 303 empfangen werden, und auf diese antwortet. Die Überwachungs- und Steuerlogik 305 kann im Auftrag des Dienstknotens 102 auf die Prozessorkerne 301 und auf Speicherorte im Arbeitsspeicher 302 zugreifen, um den Betriebszustand des Knotens 112 zu lesen (und in einigen Fällen zu ändern). Bei einer Ausführungsform kann jeder Rechenknoten 112 physisch als eine einzelne integrierte Schaltung umgesetzt sein.
  • Wie beschrieben, kann das funktionale Netzwerk 105 zahlreiche E/A-Knoten 113 bedienen, und jeder E/A-Knoten 113 wird von einer Gruppe von Rechenknoten 112 (d.h. von einem PSatz) gemeinsam genutzt. Folglich wird deutlich, dass die E/A-Ressourcen des parallelen Systems 100 im Vergleich zu den Rechen-Ressourcen relativ gering sind. Obgleich es sich um eine Universalrechenmaschine handelt, wurde das parallele System 100 für größtmögliche Effizienz in rechenintensiven Anwendungen entwickelt.
  • Zusätzlich beinhaltet der Rechenknoten 112 Leistungszähler 320, die Leistungsdaten für den Rechenknoten 112 halten. Die Leistungszähler 320 können beispielsweise Zählerdaten wie Netzwerküberlastung oder Cachespeicher-Fehltreffer enthalten, die für den Rechenknoten 112 spezifisch sind. Selbstverständlich können die Leistungszähler dazu eingerichtet werden, eine große Vielfalt von Ereignissen, Parametern, Zählern oder sonstigen Eigenschaften der Verarbeitung zu überwachen, die auf einem Rechenknoten 112 durchgeführt wird. Die Leistungszähler 320 können einen speziellen, im Arbeitsspeicher abgebildeten Bereich, Spezialregister oder ein beliebiges sonstiges Verfahren zum Halten von Leistungsdaten umfassen.
  • Der Rechenknoten 112 beinhaltet außerdem eine DMA-Steuereinheit 322, die verschiedene DMA-Vorgänge für den Rechenknoten 112 durchführt. Die DMA-Steuereinheit 322 kann zum Beispiel eine Vielfalt von DMA-Deskriptoren wie beispielsweise DMA-Vorgänge wie „direct put“ und „remote get“ verarbeiten. Indem die DMA-Steuereinheit 322 zum Ausführen aller DMA-Vorgänge für den Rechenknoten 112 verwendet wird, können DMA-Vorgänge abgeschlossen werden, ohne die Prozessorkerne 301 zu unterbrechen. Die DMA-Steuereinheit 322 kann mit verschiedenen Warteschlangen, die hierin auch als FIFOs (first in, first out; zuerst hinein, zuerst hinaus) bezeichnet werden, wie zum Beispiel einer Injektions-FIFO 318 oder einer Empfangs-Fifo 324 verbunden sein. Die FIFOs 318, 324 dienen als Zwischenspeicher zwischen der DMA-Steuereinheit 322 und den sonstigen Komponenten des Rechenknotens 112. Das heißt, die FIFOs stellen einen Ort zum Speichern von Daten bereit, bis ein bestimmter Vorgang abgeschlossen werden kann. Ohne die Empfangs-FIFO 324 muss eine Datenübertragung zum Beispiel möglicherweise darauf warten, dass ausgelastete Ressourcen frei werden, bevor die Übertragung abgeschlossen werden kann. In einem solchen Szenario kann der Übertragungsvorgang nicht abgeschlossen werden, bis die Ressourcen verfügbar werden. Durch die Verwendung der FIFOs können die Daten jedoch in die Empfangs-FIFO 324 eingestellt werden und so den DMA-Übertragungsvorgang abschließen, und anschließend können die Daten von der FIFO 324 an ihr Ziel verschoben werden, sobald die ausgelasteten Ressourcen verfügbar sind. Dies ermöglicht, dass DMA-Vorgänge unabhängig davon abgeschlossen werden, ob System-Ressourcen ausgelastet sind oder nicht, was zu effizienteren DMA-Vorgängen führt.
  • Wie in 3 dargestellt, beinhaltet der Arbeitsspeicher 302 die Injektions-FIFO 318. Die Injektions-FIFO 318 kann DMA-Deskriptoren enthalten, die DMA-Vorgänge beschreiben, die durch die DMA-Steuereinheit 322 in der Reihenfolge ausgeführt werden, in der sie in die Injektions-FIFO 318 eingestellt werden. Sobald die DMA-Steuereinheit 322 einen durch einen bestimmten DMA-Deskriptor aus der Injektions-FIFO 318 beschriebenen Vorgang ausführt, wird der Deskriptor aus der FIFO 318 entfernt. Die DMA-Deskriptoren können durch die Anwendungen 312, die auf dem Rechenknoten 112 ausgeführt werden, in die FIFO eingestellt werden. Die entfernt angeordneten Rechenknoten 112 in dem Rechenkern 101 können ebenfalls mithilfe eines DMA-Vorgangs DMA-Deskriptoren in die Injektions-FIFO 318 einstellen. Beispielsweise kann ein erster Rechenknoten 112A einen DMA-Vorgang durchführen und einen DMA-Deskriptor in die Injektions-FIFO 318 eines zweiten Rechenknotens 112B schreiben. Dann führt zu einem späteren Zeitpunkt, sobald alle DMA-Vorgänge, die mit jeglichen zuvor eingestellten DMA-Deskriptoren in der Injektions-FIFO 318 verbunden sind, ausgeführt worden sind, die DMA-Steuereinheit 322 auf dem zweiten Rechenknoten 112B den DMA-Vorgang aus, der durch den DMA-Deskriptor beschrieben wird, der durch den ersten Rechenknoten 112 eingestellt worden war. Die Injektions-FIFO 318 kann mithilfe von Kopf- und Endzeigern gepflegt werden, die jedes Mal geändert werden, wenn ein DMA-Deskriptor der Injektions-FIFO 318 hinzugefügt oder aus dieser entfernt wird. Diese Verwendung von Kopf- und Endzeigern dient jedoch lediglich zur Veranschaulichung und ist nicht als Beschränkung gemeint, da der Fachmann erkennt, dass sonstige Techniken zur Umsetzung der Injektions-FIFO 318 verwendet werden können.
  • Zusätzlich speichert der Arbeitsspeicher 302 nach Bedarf ein Abbild 311 des Betriebssystems, eine oder mehrere Anwendungen 312 und Datenstrukturen 313 von Benutzeranwendungen. Zur Erläuterung beinhaltet der Arbeitsspeicher 302 einen Datei-Cachespeicher 314, d.h. einen Cachespeicher von Daten, die aus einer E/A-Datei gelesen werden oder in diese geschrieben werden sollen. Das Abbild 311 des Betriebssystems stellt eine Kopie eines Betriebssystems mit vereinfachten Funktionen bereit, das auf dem Rechenknoten 112 ausgeführt wird und das als Rechenknoten-Kernel bezeichnet wird. Das Abbild 311 des Betriebssystems kann einen Mindestsatz an Funktionen beinhalten, die zum Unterstützen des Betriebs auf dem Rechenknoten 112 erforderlich sind. Bei einem Blue Gene-System enthält das Abbild 311 des Betriebssystems zum Beispiel einen Linux®-artigen Betriebssystem-Kernel, der dazu angepasst wurde, auf dem Rechenknoten 112 ausgeführt zu werden. Selbstverständlich kann eine Vielfalt von Betriebssystem-Kernels verwendet werden, und es ist des Weiteren nicht erforderlich, dass alle Knoten dasselbe Betriebssystem einsetzen. (Es ist außerdem zu beachten, dass Linux® eine eingetragene Marke von Linus Torvalds in den USA und anderen Ländern ist.)
  • Als Teil der laufenden Vorgänge kann die Anwendung 312 dazu eingerichtet werden, Nachrichten von dem Rechenknoten 112 an sonstige Rechenknoten in dem parallelen System 100 zu übertragen. Beispielsweise kann der MPI-Aufruf von MPI_Send(); von der Anwendung 312 dazu verwendet werden, eine Nachricht von einem Rechenknoten zu einem weiteren zu übertragen. Auf der anderen Seite des Datenaustausches kann der empfangende Rechenknoten den MPI-Aufruf MPI_Receive(); dazu verwenden, die Nachricht zu empfangen. Wie oben beschrieben, überträgt bei einem Blue Gene-System die externe Datenschnittstelle 304 die MPI-Nachricht, indem sie sie in einen Satz von Paketen einschließt und die Pakete über das Torus-Netzwerk aus Punkt-zu-Punkt-Verbindungen überträgt. Sonstige parallele Systeme und sonstige parallele Computerbibliotheken verwenden ähnliche Mechanismen zum Übertragen von Nachrichten zwischen verschiedenen Rechenknoten.
  • 4 ist ein Ablaufplan, der ein Verfahren 400 zum nicht störenden Abrufen von Leistungszählerdaten 320 von einem entfernt angeordneten Knoten veranschaulicht. Wie dargestellt, beginnt das Verfahren 400 bei Schritt 402, in dem ein Ursprungsknoten einen DMA-Deskriptor an einen entfernt angeordneten Knoten sendet. In diesem Beispiel kann der DMA-Deskriptor einen RPUT-DMA-Deskriptor beinhalten, um Leistungszählerdaten an den Zielknoten zu senden. Bei dem Ursprungsknoten, dem entfernt angeordneten Knoten und dem Zielknoten kann es sich sämtlich um verschiedene Rechenknoten 112 in dem Rechenkern 101 handeln. Es ist jedoch zu beachten, dass der Ursprungsknoten und der Zielknoten tatsächlich identisch sein können. Der DMA-Deskriptor kann über MPI-Nachrichten oder mithilfe von ähnlichen Verfahren zum Übertragen von Nachrichten zwischen Knoten übertragen werden.
  • In Schritt 404 empfängt der entfernt angeordnete Knoten den DMA-Deskriptor in seiner Injektions-FIFO 318. Wie oben erörtert, verarbeitet die DMA-Steuereinheit 322 auf dem entfernt angeordneten Rechenknoten die DMA-Deskriptoren in der Injektions-FIFO 318 in der Reihenfolge, in der sie in die FIFO 318 eingestellt werden. In Schritt 406 führt die DMA-Steuereinheit 322 auf dem entfernt angeordneten Knoten den RPUT-DMA-Deskriptor aus und überträgt dabei die Leistungszählerdaten 320 an den Zielknoten. In Schritt 408 empfängt der Zielknoten die Leistungszählerdaten in einer designierten Empfangs-FIFO 324. Es kann auch eine „Direct-put“-Nachricht verwendet werden, um die Leistungszählerdaten direkt in einen vorgegebenen Arbeitsspeicherpuffer des Zielknotens einzufügen.
  • In Schritt 410 lesen und verarbeiten die Prozessorkerne 301 auf dem Zielknoten die in der Arbeitsspeicher-FIFO gespeicherten Leistungszählerdaten. Dies kann zum Beispiel die Folge davon sein, dass eine Anwendung 312, die auf dem Zielrechenknoten ausgeführt wird, die Leistungszählerdaten analysiert, um die Leistung des entfernt angeordneten Knotens zu überwachen und entsprechend zu reagieren. Die Anwendung 312 kann beispielsweise die Leistungszählerdaten analysieren, um zu ermitteln, ob einer der Zähler einen Schwellenwert überschreitet. In einem solchen Fall kann die Anwendung 312 schlussfolgern, dass auf dem entfernt angeordneten Knoten eine ungewöhnlich hohe Netzwerküberlastung auftritt, und entscheiden, alle künftigen von dem Zielknoten gesendeten Nachrichten um den entfernt angeordneten Knoten herum und durch einen weniger überlasteten Netzwerkpfad zu leiten. Alternativ kann die Anwendung 312 entscheiden, diese Netzwerküberlastung einem Hauptknoten zu „melden“, wie nachfolgend bei dem Verfahren 600 erörtert wird.
  • Zweckmäßigerweise werden die Verarbeitungskerne 301 auf dem entfernt angeordneten Knoten nicht beteiligt und werden folglich nicht durch die Abfrage von Leistungszählerdaten unterbrochen. Der Grund dafür ist, dass die DMA-Steuereinheit 322 den durch den DMA-Deskriptor beschriebenen DMA-Vorgang ausführt und die Leistungszählerdaten an den Zielknoten sendet - ohne dass ein Eingreifen durch die CPU-Kerne 301 erforderlich ist. Dies ist besonders vorteilhaft in einem Szenario, in dem die Verarbeitungskerne 301 auf einem bestimmten Rechenknoten 112 mit Arbeit überlastet sind. Hier sind die Leistungszählerdaten von großer Bedeutung, um zu erkennen, dass der jeweilige Knoten überlastet ist, und um festzustellen, wie er diese Arbeitslast verarbeitet (d.h. Zähler wie Cachespeicher-Fehltreffer). Wenn die Verarbeitungskerne 301 unterbrochen werden, um die Leistungszähler abzurufen, erhöht dies lediglich die Arbeitslast für die Verarbeitungskerne 301 auf dem überlasteten Knoten. Wenn beispielsweise ein Problem bei einem oder beiden Verarbeitungskernen 301 besteht, kann darüber hinaus der Versuch, Leistungszählerdaten mit normalen Mitteln abzurufen, fehlschlagen, da die problematischen Verarbeitungskerne 301 möglicherweise nicht in der Lage sind, die Anforderung zu bedienen. Durch Abfragen der Leistungszählerdaten mithilfe des Verfahrens 400 sind andere Knoten in der Lage, die Leistungszählerdaten abzurufen und zu analysieren, ohne die Verarbeitungskerne auf dem jeweiligen Knoten zu unterbrechen, und sie sind in der Lage, Leistungszählerdaten selbst dann abzurufen, wenn bei den Verarbeitungskernen auf dem jeweiligen Knoten Probleme aufgetreten sind oder sie ausgefallen sind.
  • 5 ist ein Ablaufplan, der ein Verfahren 500 zum Durchführen eines Fence-Vorgangs durch Abrufen von Leistungszählerdaten von einem entfernt angeordneten Knoten veranschaulicht. Bei einem Fence-Vorgang handelt es sich um einen Synchronisationsvorgang, der verwendet wird, um sicherzustellen, dass alle zuvor ausgeführten Vorgänge zwischen einem aktuellen Knoten und einem designierten Knoten abgeschlossen sind. Das Verfahren 500 veranschaulicht ein Beispiel mithilfe eines Netzwerks, das deterministische Leitweglenkung einsetzt (d.h. eine Nachricht, die zwischen zwei bestimmten Knoten gesendet worden ist, wird stets vor einer nachfolgenden Nachricht empfangen, die zwischen diesen beiden Koten gesendet worden ist). Wie dargestellt, beginnt das Verfahren 500 bei Schritt 502, in dem der Ursprungsknoten einen ersten DMA-Deskriptor an die Injektions-FIFO eines entfernt angeordneten Knotens sendet. Wie oben erörtert, wird die Injektions-FIFO 318 durch die DMA-Steuereinheit 322 des Zielknotens verarbeitet, und die DMA-Vorgänge, die durch die in der FIFO platzierten Deskriptoren beschrieben werden, werden in der Reihenfolge ausgeführt, in der sie empfangen werden. In diesem bestimmten Beispiel soll der erste DMA-Deskriptor, der in der Injektions-FIFO 318 platziert ist, bestimmte Daten an den Ursprungsknoten senden. Es ist vorgesehen, dass es sich bei dieser Übertragung um eine vorsorgliche Datenübertragung, eine Rendezvous-Datenübertragung oder ein beliebiges sonstiges, gleichwertiges Übertragungsverfahren handeln kann. In Schritt 504 sendet der Ursprungsknoten einen zweiten DMA-Deskriptor an die Injektions-FIFO 318 des entfernt angeordneten Knotens, wobei der zweite DMA-Deskriptor einen Spiegelungsanzeiger zurück an den Ursprungsknoten sendet. Bei dem Spiegelungsanzeiger handelt es sich um einen vorgegebenen Wert, der an einem vorgegebenen Ort auf dem Ursprungsknoten gespeichert ist. Dieser spezifische Wert und der Speicherort für den Spiegelungsanzeiger sind nicht von Bedeutung, solange der CPU des Ursprungsknotens bekannt ist, auf welchen Wert überwacht werden soll und wo der Anzeiger gesucht werden soll. Anders ausgedrückt, nicht der Inhalt des Spiegelungsanzeigers ist maßgebend, sondern vielmehr ist der Vorgang des Empfangens des Spiegelungsanzeigers durch den Ursprungsknoten von Bedeutung.
  • In Schritt 506 führt der entfernt angeordnete Knoten den DMA-Vorgang aus, der durch den ersten DMA-Deskriptor aus seiner Injektions-FIFO 318 beschrieben wird, und führt eine vorsorgliche Datenübertragung mit den angeforderten Daten zurück an den Ursprungsknoten durch. Anschließend führt der entfernt angeordnete Knoten in Schritt 508 den DMA-Vorgang aus, der durch den zweiten DMA-Deskriptor beschrieben wird, und führt einen zweiten RPUT mit dem Spiegelungsanzeiger zurück an den Ursprungsknoten durch. In Schritt 510 empfängt der Ursprungsknoten den Spiegelungsanzeiger und hat folglich Kenntnis darüber, dass der erste RPUT abgeschlossen ist. Mit anderen Worten, da das Netzwerk eine deterministische Leitweglenkung erzwingt und da der entfernt angeordnete Knoten DMA-Deskriptoren in seiner Injektions-FIFO in der Reihenfolge verarbeitet, in der sie empfangen werden, hat die CPU des Ursprungsknotens Kenntnis darüber, dass der erste RPUT abgeschlossen ist, wenn sie den Spiegelungsanzeiger aus dem zweiten RPUT-Vorgang empfängt. Folglich ist der Fence-Vorgang abgeschlossen, und so liest und verarbeitet die CPU des Ursprungsknotens in Schritt 512 die angeforderten Daten, die von dem entfernt angeordneten Knoten gesendet worden sind, in der Kenntnis, dass die Datenübertragung abgeschlossen ist.
  • Indem er den Fence-Vorgang auf diese Weise durchführt, ist es für den Ursprungsknoten nicht erforderlich, CPU- und Arbeitsspeicher-Ressourcen in Anspruch zu nehmen, um einen Zähler von gesendeten und empfangenen Paketen zu führen, um Fence-Vorgänge durchzuführen. Die Ressourcen, die zum Führen eines solchen Zählers zwischen zwei Knoten erforderlich sind, sind zwar recht gering, die Ressourcen, die erforderlich sind, um einen Zähler auf allen Knoten in dem Rechenkern 101 für jeden anderen Knoten in dem Kern 101 zu führen, können jedoch beträchtlich sein. In einem Blue Gene®-System, das 65.536 Knoten enthält, müsste zum Beispiel jeder Knoten einen Zähler für jeden der 65.535 anderen Knoten enthalten, was eine erhebliche Menge an Arbeitsspeicher auf dem Knoten in Anspruch nähme und außerdem erforderte, dass die Verarbeitungskerne 301 jedes Mal unterbrochen würden, wenn eine Nachricht an einen weiteren Knoten gesendet wird, um diese Zähler zu erhöhen. Durch Verwenden des oben erörterten Verfahrens 500 sind keine Zähler erforderlich, um nachzuverfolgen, wie viele Nachrichten an einen bestimmten Knoten gesendet worden sind und wie viele Nachrichten von diesem Knoten empfangen worden sind, sodass Arbeitsspeicherplatz auf jedem Rechenknoten 112 erhalten bleibt. Des Weiteren wird die Unterbrechung der Verarbeitungsknoten 301 auf ein Mindestmaß verringert, da der Fence-Vorgang im Verfahren 500 hauptsächlich aus DMA-Vorgängen besteht, die durch die DMA-Steuereinheit 322 verarbeitet werden.
  • 6 ist ein Ablaufplan, der ein Verfahren 600 zum nicht störenden Abrufen von Leistungszählerdaten von einem entfernt angeordneten Knoten und das Übergeben der Leistungszählerdaten an einen Zielknoten veranschaulicht. Wie dargestellt, beginnt das Verfahren bei Schritt 602, in dem der aktuelle Knoten einen DMA-Deskriptor an eine Injektions-FIFO 318 des Zielknotens sendet. In diesem Beispiel handelt es sich bei diesem DMA-Deskriptor um einen Remote-put-Deskriptor, der die Leistungszählerdaten 320 auf dem Zielknoten an den designierten nächsten Knoten in der Kette sendet. In Schritt 604 führt die DMA-Steuereinheit 322 auf dem Zielknoten den RPUT-Vorgang mit einem DMA-Deskriptor, der die Leistungszählerdaten 320 enthält, zum nächsten Knoten in der Kette (der nun als der neue aktuelle Knoten bezeichnet wird) durch. In Schritt 606 empfängt der neue aktuelle Knoten den DMA-Deskriptor, der die Leistungszählerdaten enthält, in seiner Injektions-FIFO 318. In Schritt 608 ermittelt der neue aktuelle Knoten, ob er der angegebene Zielknoten ist. Wenn er feststellt, dass er der Zielknoten ist, ist das Verfahren abgeschlossen und der Zielknoten hat die Leistungszählerdaten empfangen. Wenn der neue aktuelle Knoten feststellt, dass er nicht der Zielknoten ist, sendet er den DMA-Deskriptor, der die Leistungszählerdaten enthält, an die Injektions-FIFO 318 des nächsten Knotens in der Kette, und das Verfahren beginnt erneut bei Schritt 602. Durch Verwenden der DMA-Steuereinheiten 322 und der Injektions-FIFOs 318 auf diese Weise können die Rechenknoten 112 folglich Leistungszählerdaten an einen Zielknoten wie zum Beispiel einen Dienstknoten 102 mit minimaler Unterbrechung der Prozessorkerne 301 auf den Rechenknoten 112 weitergeben.
  • Ein solches Verfahren kann in einer Vielfalt unterschiedlicher Arten dazu verwendet werden, den Rechenkern 101 zu überwachen und Leistungszählerdaten an den Dienstknoten 102 oder einen weiteren designierten Knoten weiterzugeben. Die Knoten können beispielsweise einen Ansatz der „Nachbarschaftswache“ anwenden, in dem jeder Knoten nur seine unmittelbaren Nachbarn überwacht. Bei einem solchen Ansatz statt einer direkten Überwachung jedes einzelnen Rechenknotens 112 in dem Rechenkern 101 durch den Dienstknoten 102 können die Rechenknoten 112 stattdessen auf benachbarten Knoten erkannte Probleme an den Dienstknoten 102 melden. Wenn zum Beispiel ein bestimmter Knoten ein Problem bei einem seiner Nachbarn durch Abrufen und Untersuchen der Leistungszählerdaten dieses Nachbarn erkennt, kann der jeweilige Knoten mithilfe des Verfahrens 600 die Leistungszählerdaten des problematischen Nachbarn an den Dienstknoten 102 weitergeben. Dadurch, dass jeder Rechenknoten 112 seine Nachbarn überwacht und erkannte Probleme meldet, weist der Rechenkern 101 insgesamt eine bessere Leistung auf, da Verbindungskonflikte dadurch verringert werden, dass nicht jeder einzelne Knoten wiederholt ein Pingsignal mit seinen eigenen Leistungszählerdaten an den Hauptknoten absetzen muss.
  • Das Vorstehende gilt zwar für Ausführungsformen der vorliegenden Erfindung, andere und sonstige Ausführungsformen der Erfindung können jedoch entwickelt werden, ohne von deren grundlegendem Umfang abzuweichen, und deren Umfang wird durch die nachfolgenden Ansprüche bestimmt.

Claims (9)

  1. Verfahren zum Abfragen von Leistungszählerdaten auf einem parallelen Computersystem, das eine Vielzahl von Rechenknoten aufweist, wobei das Verfahren Folgendes umfasst: - Empfangen eines ersten Direktspeicherzugriffs- (DMA-) Deskriptors auf einem ersten Rechenknoten von einem zweiten Rechenknoten, wobei der erste DMA-Deskriptor Leistungszählerdaten identifiziert, die an einen dritten Rechenknoten gesendet werden sollen, wobei es sich bei dem zweiten Rechenknoten und dem dritten Rechenknoten um denselben Rechenknoten in dem parallelen Computersystem handelt; - Einstellen des ersten DMA-Deskriptors in eine Injektionswarteschlange auf dem ersten Rechenknoten; - Ausführen eines durch den ersten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten, um die Leistungszählerdaten zu ermitteln; - Senden der Leistungszählerdaten von dem ersten Rechenknoten an den dritten Rechenknoten, und - Ausführen eines Fence-Vorgangs für den zweiten Rechenknoten, wobei der Fence-Vorgang Folgendes umfasst: - Empfangen eines zweiten DMA-Deskriptors auf dem ersten Rechenknoten von dem Rechenknoten, wobei der DMA-Deskriptor eine Fence-Kennung enthält, die an den zweiten Rechenknoten übertragen werden soll, und wobei der zweite DMA-Deskriptor nach dem ersten DMA-Deskriptor empfangen wird; - Ausführen eines durch den zweiten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten; und - Übertragen der Fence-Kennung von dem ersten Rechenknoten zu dem zweiten Rechenknoten.
  2. Verfahren nach Anspruch 1, wobei es sich bei dem zweiten Rechenknoten und dem dritten Rechenknoten um denselben Rechenknoten in dem parallelen Computersystem handelt und das Verfahren des Weiteren Folgendes umfasst: Ausführen eines Fence-Vorgangs für den zweiten Rechenknoten, wobei der Fence-Vorgang Folgendes umfasst: Empfangen eines zweiten DMA-Deskriptors auf dem ersten Rechenknoten von dem Rechenknoten, wobei der DMA-Deskriptor eine Fence-Kennung enthält, die an den zweiten Rechenknoten übertragen werden soll, und wobei der zweite DMA-Deskriptor nach dem ersten DMA-Deskriptor empfangen wird; Ausführen eines durch den zweiten DMA-Deskriptor beschriebenen Vorgangs auf dem ersten Rechenknoten; und Übertragen der Fence-Kennung von dem ersten Rechenknoten zu dem zweiten Rechenknoten.
  3. Verfahren nach Anspruch 1, wobei die Rechenknoten in einem dreidimensionalen Torus miteinander verbunden sind.
  4. Verfahren nach Anspruch 1, wobei die Rechenknoten des parallelen Computersystems durch eine Zusammenstellung von Punkt-zu-Punkt-Verbindungen verbunden sind.
  5. Verfahren nach Anspruch 1, wobei die Leistungszählerdaten in einer Empfangs-FIFO auf dem dritten Rechenknoten empfangen werden.
  6. Verfahren nach Anspruch 1, wobei eine oder mehrere Anwendungen, die auf dem dritten Rechenknoten ausgeführt werden, die Leistungszählerdaten analysieren, um Leistungsprobleme bei dem ersten Rechenknoten zu erkennen.
  7. Verfahren nach Anspruch 6, das des Weiteren Folgendes umfasst: Erkennen eines Problems bei dem ersten Rechenknoten; und Weitergeben der Leistungszählerdaten an einen Hauptknoten, wobei der Hauptknoten dazu eingerichtet ist, die Leistung aller Rechenknoten in dem parallelen Computersystem zu überwachen.
  8. Computerprogramm, das Befehle zum Ausführen sämtlicher Schritte des Verfahrens nach einem der vorangehenden Ansprüche umfasst, wenn das Computerprogramm auf einem Computersystem ausgeführt wird.
  9. System, das ein Mittel umfasst, das zum Durchführen sämtlicher Schritte des Verfahrens nach einem der vorangehenden Ansprüche eingerichtet ist.
DE112011101321.3T 2010-04-15 2011-04-13 Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist Active DE112011101321B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/760,783 US8250164B2 (en) 2010-04-15 2010-04-15 Query performance data on parallel computer system having compute nodes
US12/760,783 2010-04-15
PCT/EP2011/055804 WO2011128369A1 (en) 2010-04-15 2011-04-13 Querying performance data on a parallel computer system having compute nodes

Publications (2)

Publication Number Publication Date
DE112011101321T5 DE112011101321T5 (de) 2013-01-31
DE112011101321B4 true DE112011101321B4 (de) 2019-10-24

Family

ID=43982227

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011101321.3T Active DE112011101321B4 (de) 2010-04-15 2011-04-13 Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist

Country Status (4)

Country Link
US (2) US8250164B2 (de)
DE (1) DE112011101321B4 (de)
GB (1) GB2492205B8 (de)
WO (1) WO2011128369A1 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110064153A (ko) * 2009-12-07 2011-06-15 삼성전자주식회사 금속 유기 전구체, 이의 제조방법, 및 이를 이용한 전도성 금속막 또는 패턴 형성방법
US8250164B2 (en) 2010-04-15 2012-08-21 International Business Machines Corporation Query performance data on parallel computer system having compute nodes
US8909716B2 (en) 2010-09-28 2014-12-09 International Business Machines Corporation Administering truncated receive functions in a parallel messaging interface
US9569398B2 (en) 2010-09-28 2017-02-14 International Business Machines Corporation Routing data communications packets in a parallel computer
US8527672B2 (en) 2010-11-05 2013-09-03 International Business Machines Corporation Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9075759B2 (en) 2010-11-05 2015-07-07 International Business Machines Corporation Fencing network direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9052974B2 (en) 2010-11-05 2015-06-09 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9069631B2 (en) 2010-11-05 2015-06-30 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8484658B2 (en) 2010-12-03 2013-07-09 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8490112B2 (en) 2010-12-03 2013-07-16 International Business Machines Corporation Data communications for a collective operation in a parallel active messaging interface of a parallel computer
US8572629B2 (en) 2010-12-09 2013-10-29 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8650262B2 (en) 2010-12-09 2014-02-11 International Business Machines Corporation Endpoint-based parallel data processing in a parallel active messaging interface of a parallel computer
US8732229B2 (en) * 2011-01-06 2014-05-20 International Business Machines Corporation Completion processing for data communications instructions
US8775531B2 (en) 2011-01-06 2014-07-08 International Business Machines Corporation Completion processing for data communications instructions
US8892850B2 (en) 2011-01-17 2014-11-18 International Business Machines Corporation Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer
US8584141B2 (en) 2011-01-17 2013-11-12 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8825983B2 (en) 2011-02-15 2014-09-02 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US20120331227A1 (en) * 2011-06-21 2012-12-27 Ramakrishna Saripalli Facilitating implementation, at least in part, of at least one cache management policy
US20120331153A1 (en) * 2011-06-22 2012-12-27 International Business Machines Corporation Establishing A Data Communications Connection Between A Lightweight Kernel In A Compute Node Of A Parallel Computer And An Input-Output ('I/O') Node Of The Parallel Computer
US9390369B1 (en) * 2011-09-21 2016-07-12 Brain Corporation Multithreaded apparatus and methods for implementing parallel networks
US8528004B2 (en) 2011-11-07 2013-09-03 International Business Machines Corporation Internode data communications in a parallel computer
US8495654B2 (en) 2011-11-07 2013-07-23 International Business Machines Corporation Intranode data communications in a parallel computer
US8732725B2 (en) 2011-11-09 2014-05-20 International Business Machines Corporation Managing internode data communications for an uninitialized process in a parallel computer
US9208432B2 (en) 2012-06-01 2015-12-08 Brain Corporation Neural network learning and collaboration apparatus and methods
US20140019570A1 (en) * 2012-07-12 2014-01-16 Raytheon Company Data buffer exchange
US9146886B2 (en) 2014-01-06 2015-09-29 International Business Machines Corporation Deterministic message processing in a direct memory access adapter
US9158718B2 (en) 2014-01-07 2015-10-13 International Business Machines Corporation Deterministic message processing in a direct memory access adapter
US20160092123A1 (en) * 2014-09-26 2016-03-31 Pankaj Kumar Memory write management in a computer system
US20160092118A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Memory write management in a computer system
US9715464B2 (en) 2015-03-27 2017-07-25 Microsoft Technology Licensing, Llc Direct memory access descriptor processing
CN105282017B (zh) * 2015-11-24 2018-07-06 无锡江南计算技术研究所 一种基于扁平化模型的通信实现方法
CN106776848B (zh) * 2016-11-04 2020-04-17 广州市诚毅科技软件开发有限公司 一种数据库查询方法及装置
EP4064069A1 (de) * 2021-03-24 2022-09-28 DB Pro Oy Verfahren, system und computerprogrammprodukt zum vorhersagen von datenbankabfrageleistungen
US20220358002A1 (en) * 2021-05-04 2022-11-10 Xilinx, Inc. Network attached mpi processing architecture in smartnics

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361385A (en) * 1992-08-26 1994-11-01 Reuven Bakalash Parallel computing system for volumetric modeling, data processing and visualization
US7418470B2 (en) * 2000-06-26 2008-08-26 Massively Parallel Technologies, Inc. Parallel processing systems and method
CN1322452C (zh) * 2001-02-24 2007-06-20 国际商业机器公司 环形和树形网络中的算术函数
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7430583B2 (en) * 2002-01-15 2008-09-30 International Business Machines Corporation Active control of collaborative devices
US7406473B1 (en) * 2002-01-30 2008-07-29 Red Hat, Inc. Distributed file system using disk servers, lock servers and file servers
US8553611B2 (en) * 2004-01-30 2013-10-08 Hewlett-Packard Development Company, L.P. Systems and methods for multi-access point transmission of data using a plurality of access points
US7430615B2 (en) * 2004-08-30 2008-09-30 International Business Machines Corporation RDMA server (OSI) global TCE tables
US7890686B2 (en) * 2005-10-17 2011-02-15 Src Computers, Inc. Dynamic priority conflict resolution in a multi-processor computer system having shared resources
US20080178177A1 (en) * 2007-01-19 2008-07-24 Charles Jens Archer Method and Apparatus for Operating a Massively Parallel Computer System to Utilize Idle Processor Capability at Process Synchronization Points
US7688737B2 (en) * 2007-03-05 2010-03-30 International Business Machines Corporation Latency hiding message passing protocol
US7944842B2 (en) * 2007-04-20 2011-05-17 International Business Machines Corporation Opportunistic queueing injection strategy for network load balancing
US20080275686A1 (en) * 2007-05-01 2008-11-06 Timothy John Mullins Envelope technique for exclusion of atoms in an hbond check
US8230432B2 (en) * 2007-05-24 2012-07-24 International Business Machines Corporation Defragmenting blocks in a clustered or distributed computing system
US20080306818A1 (en) * 2007-06-08 2008-12-11 Qurio Holdings, Inc. Multi-client streamer with late binding of ad content
US8296430B2 (en) * 2007-06-18 2012-10-23 International Business Machines Corporation Administering an epoch initiated for remote memory access
US7788334B2 (en) 2007-06-26 2010-08-31 International Business Machines Corporation Multiple node remote messaging
US7694035B2 (en) * 2007-06-26 2010-04-06 International Business Machines Corporation DMA shared byte counters in a parallel computer
US7805546B2 (en) * 2007-07-27 2010-09-28 International Business Machines Corporation Chaining direct memory access data transfer operations for compute nodes in a parallel computer
US10268741B2 (en) * 2007-08-03 2019-04-23 International Business Machines Corporation Multi-nodal compression techniques for an in-memory database
US8171047B2 (en) * 2007-08-07 2012-05-01 International Business Machines Corporation Query execution and optimization utilizing a combining network in a parallel computer system
US8370844B2 (en) * 2007-09-12 2013-02-05 International Business Machines Corporation Mechanism for process migration on a massively parallel computer
US7885969B2 (en) * 2007-09-17 2011-02-08 International Business Machines Corporation System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer
US7844620B2 (en) * 2007-11-16 2010-11-30 International Business Machines Corporation Real time data replication for query execution in a massively parallel computer
US20090198544A1 (en) * 2008-02-04 2009-08-06 Advanced Productivity Software, Inc. Systems and methods for facilitating data transactions in time recording systems
US8209299B2 (en) * 2008-04-28 2012-06-26 International Business Machines Corporation Selectively generating program objects on remote node of a multi-node computer system
US8112559B2 (en) * 2008-09-30 2012-02-07 International Business Machines Corporation Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment
US20100085871A1 (en) * 2008-10-02 2010-04-08 International Business Machines Corporation Resource leak recovery in a multi-node computer system
US8250164B2 (en) 2010-04-15 2012-08-21 International Business Machines Corporation Query performance data on parallel computer system having compute nodes

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SALAPURA, V. u.a. („Next-Generation Performance Counters: Towards Monitoring Over Thousand Concurrent Events", ISPASS 2008. IEEE International Symposium on Performance Analysis of Systems and software, April 2008, S. 139-146)
SALAPURA, V. u.a.: Next-Generation Performance Counters: Towards Monitoring Over Thousand Concurrent Events. In Performance Analysis of Systems and software, 2008. ISPASS 2008. IEEE International Symposium on, April 2008, S. 139-146 *
SMEDS, N („A PAPI Implementation for BlueGene", Applied Parallel Computing. State of the Art in Scientific Computing, Lecture Notes in Computer Science, Springer Berlin Heidelberg. 18. Juni 2006, S. 1036 - 1044)
SMEDS, N.: A PAPI Implementation for BlueGene. Applied Parallel Computing. State of the Art in Scientific Computing, Lecture Notes in Computer Science. Springer Berlin Heidelberg. 18. Juni 2006, S. 1036 - 1044 *

Also Published As

Publication number Publication date
GB2492205A (en) 2012-12-26
DE112011101321T5 (de) 2013-01-31
US8250164B2 (en) 2012-08-21
US8769034B2 (en) 2014-07-01
GB2492205B8 (en) 2018-06-20
GB2492205B (en) 2018-06-06
WO2011128369A1 (en) 2011-10-20
US20110258281A1 (en) 2011-10-20
GB201209506D0 (en) 2012-07-11
US20120265835A1 (en) 2012-10-18

Similar Documents

Publication Publication Date Title
DE112011101321B4 (de) Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
DE102010044531B4 (de) Autonome Speicherarchitektur
DE102018214774A1 (de) Technologien zum dynamischen Managen der Zuverlässigkeit disaggregierter Betriebsmittel in einem gemanagten Knoten
DE112020006967T5 (de) Performanceüberwachung für kurzlebige funktionen
DE112016004860T5 (de) Verteilte Regelbereitstellung in einer Extended Bridge
DE112013003180T5 (de) Verfahren, System und Gerät zum Verwalten von Server-Hardware-Resourcen in einer Cloud-Scheduling-Umgebung
DE102012224265A1 (de) Gemeinsame Nutzung dicht benachbarter Daten-Cachespeicher
DE112011101469T5 (de) Kompilieren von Software für ein hierarchisches verteiltes Verarbeitungssystem
DE102010044529A1 (de) Autonome Subsystem-Architektur
DE102020110143A1 (de) Standortbasierte virtualisierungs-workload-platzierung
DE112012003961T5 (de) Gleichzeitige Verarbeitung von eingereihten Nachrichten
CN102929769A (zh) 一种基于代理服务的虚拟机内部数据采集方法
US9223834B2 (en) Distributed multi-system management
DE102020130555A1 (de) Adaptiver datenversand basierend auf lastfunktionen
DE112010004809B4 (de) Mehrfachgranulare Datenstromverarbeitung
CN106375103B (zh) 一种告警数据采集和发送方法
CN109063216A (zh) 一种分布式垂直业务搜索爬虫框架
DE102020101084A1 (de) Verbesserte sicherheit für mehrknoten-rechenplattform
DE102021127273A1 (de) Arbeitsvorbereitung auf verarbeitungseinheiten
CN105637483B (zh) 线程迁移方法、装置和系统
DE102013202023A1 (de) Verarbeitung unerwarteter Nachrichten an einem Datenverarbeitungsknoten eines Parallelcomputers
DE202021004327U1 (de) Autoskalierung externer Funktionsanforderungen
DE112010004013T5 (de) Prozessintegrität in einem Mehrprozessorsystem
CN106850283A (zh) 一种基于事件驱动的云ac告警处理系统及方法

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final