DE112010005705T5 - Umplanen von Workload in einer hybriden Datenverarbeitungsumgebung - Google Patents

Umplanen von Workload in einer hybriden Datenverarbeitungsumgebung Download PDF

Info

Publication number
DE112010005705T5
DE112010005705T5 DE112010005705T DE112010005705T DE112010005705T5 DE 112010005705 T5 DE112010005705 T5 DE 112010005705T5 DE 112010005705 T DE112010005705 T DE 112010005705T DE 112010005705 T DE112010005705 T DE 112010005705T DE 112010005705 T5 DE112010005705 T5 DE 112010005705T5
Authority
DE
Germany
Prior art keywords
data
server system
parallel workload
workload
accelerator systems
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.)
Ceased
Application number
DE112010005705T
Other languages
English (en)
Inventor
Rajaram Krishnamurthy
Carl Joseph Parris
Benjamin Patrick Segal
Natarajan Krishnaswami
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 DE112010005705T5 publication Critical patent/DE112010005705T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ausführungsformen der vorliegenden Erfindung verwalten Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem. Ein Satz von Servicezielvereinbarungen (SLAs) für durchsatzstarke Datenverarbeitung wird abgerufen. Der Satz von SLAs ist mit einem hybriden Verarbeitungssystem verknüpft, das ein Serversystem und einen Satz von Beschleunigersystemen enthält, wobei jedes System eine andere Architektur hat. Ein erster Satz von auf dem Serversystem geplanten datenparallelen Workload-Tasks und ein zweiter Satz von mit dem Satz von Beschleunigersystemen geplanten datenparallelen Workload-Tasks werden identifiziert. Mindestens ein Teil entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks wird dynamisch auf ein zweites des Serversystems und des Satzes von Beschleunigersystemen umgeplant. Das dynamische Umplanen genügt dem Satz von SLAs für durchsatzstarke Datenverarbeitung im Wesentlichen.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein hybride Datenverarbeitungsumgebungen und betrifft insbesondere eine funktionierende durchsatzstarke Datenverarbeitung in einer hybriden Datenverarbeitungsumgebung.
  • HINTERGRUND DER ERFINDUNG
  • Heutige Computersysteme sind so weit fortgeschritten, dass manche Datenverarbeitungsumgebungen nun Kernkomponenten verschiedener Architekturen enthalten, welche zusammenarbeiten, um Datenverarbeitungsaufgaben zu erfüllen. Solche Datenverarbeitungsumgebungen werden gewöhnlich als ”hybride” Umgebungen bezeichnet, was andeutet, dass solche Umgebungen Hostcomputer und Beschleuniger mit verschiedenen Architekturen aufweisen. Obwohl hybride Datenverarbeitungsumgebungen rechenleistungsstärker und effizienter in der Datenverarbeitung als viele nicht-hybride Datenverarbeitungsumgebungen sind, stellen solche hybriden Datenverarbeitungsumgebungen gewöhnlich keine Fähigkeiten zu durchsatzstarker Datenverarbeitung bereit.
  • US-Patentanmeldungsveröffentlichung Nummer 2009/0064168, ”System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks By Modifying Tasks”, eingereicht am 5. März 2009, zeigt ein System und ein Verfahren zur Bereitstellung eines hardwaregestützten dynamischen Lastausgleichs von Nachrichtenübermittlungsschnittstellen-(MPI-, Message Passing Interface-)Tasks durch Verändern von Tasks. Mechanismen zum Einstellen des Ausgleichs von Verarbeitungs-Workloads der Tasks eines MPI-Jobs ausführenden Prozessoren werden bereitgestellt, um Wartezeiten zum Abwarten, bis alle Prozessoren eine Synchronisationsoperation aufrufen, zu minimieren. Jeder Prozessor verfügt über eine zugehörige, in Hardware realisierte MPI-Lastausgleichs-Steuereinheit. Die MPI-Lastausgleichs-Steuereinheit führt ein Verlaufsprotokoll, das ein Profil der Tasks hinsichtlich ihrer Aufrufe von Synchronisationsoperationen bereitstellt. Aus diesen Informationen kann ermittelt werden, welchen Prozessoren ihre Verarbeitungslasten erleichtert werden sollten und welche Prozessoren fähig sind, zusätzliche Verarbeitungslasten zu schultern, ohne den Gesamtbetrieb des Parallelausführungssystems merklich negativ zu beeinflussen. Somit können Operationen durchgeführt werden, um Workloads vom langsamsten Prozessor zu einem oder mehreren der schnelleren Prozessoren zu verschieben.
  • US-Patentschrift Nummer 7 694 306 , ”Balancing computational load across a plurality of processors”, eingereicht am 6. April 2010, zeigt, dass Rechenlast über eine Vielzahl von Prozessoren ausgeglichen wird. Quellcode-Subtasks werden zu Bytecode-Subtasks kompiliert, wodurch die Bytecode-Subtasks zur Laufzeit in prozessorspezifische Objektcode-Subtasks übersetzt werden. Die Auswahl des Prozessortyps beruht auf einem von drei Ansätzen, welche 1.) ein Brute-Force-Ansatz, 2.) ein übergeordneter Ansatz oder 3.) ein Prozessorverfügbarkeits-Ansatz sind. Jeder Objektcode-Subtask wird zur Ausführung in einen entsprechenden Prozessortyp geladen. In einer Ausführungsform speichert ein Compiler einen Zeiger in einer Bytecode-Datei, welcher auf den Ort eines Bytecode-Subtask verweist. In dieser Ausführungsform wird der Bytecode-Subtask in einer gemeinsam genutzten Bibliothek gespeichert, und zur Laufzeit verwendet ein Laufzeit-Ladeprogramm den Zeiger zum Identifizieren des Orts des Bytecode-Subtask, um den Bytecode-Subtask zu übersetzen.
  • Deshalb besteht in diesem Fachgebiet ein Bedarf, das obengenannte Problem zu lösen.
  • KURZBESCHREIBUNG DER ERFINDUNG
  • Im Licht eines ersten Aspekts gesehen, stellt die vorliegende Erfindung ein Verfahren zum Verwalten von Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem bereit. Das Verfahren enthält das Abrufen eines Satzes von Servicezielvereinbarungen (SLAs, Service-Level-Agreements) für durchsatzstarke Datenverarbeitung. Der Satz von SLAs für durchsatzstarke Datenverarbeitung ist mit einem hybriden Verarbeitungssystem verknüpft. Das hybride Verarbeitungssystem enthält mindestens ein Serversystem, das eine erste Architektur aufweist, und einen Satz von Beschleunigersystemen, die jeweils eine zweite Architektur aufweisen, welche sich von der ersten Architektur unterscheidet. Ein erster Satz von auf dem Serversystem geplanten datenparallelen Workload-Tasks und ein zweiter Satz von mit dem Satz von Beschleunigersystemen geplanten datenparallelen Workload-Tasks werden identifiziert. Es wird festgestellt, dass ein Satz von Ressourcen in einem ersten des Serversystems und des Satzes von Beschleunigersystemen zur Zeit verfügbar ist. Mindestens ein Teil entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks wird dynamisch auf ein zweites des Serversystems und des Satzes von Beschleunigersystemen umgeplant. Das dynamische Umplanen genügt dem Satz von SLAs für durchsatzstarke Datenverarbeitung im Wesentlichen.
  • Im Licht eines weiteren Aspekts gesehen, stellt die vorliegende Erfindung ein System zum Verwalten von Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem bereit. Das System weist einen Speicher und einen Prozessor, der datenaustauschfähig mit dem Speicher verbunden ist, auf. Ein Workload-Manager ist datenaustauschfähig mit dem Speicher und dem Prozessor verbunden. Der Workload-Manager ist dafür eingerichtet, ein Verfahren auszuführen. Das Verfahren enthält das Abrufen eines Satzes von Servicezielvereinbarungen (SLAs) für durchsatzstarke Datenverarbeitung. Der Satz von SLAs für durchsatzstarke Datenverarbeitung ist mit einem hybriden Verarbeitungssystem verknüpft. Das hybride Verarbeitungssystem enthält mindestens ein Serversystem, das eine erste Architektur aufweist, und einen Satz von Beschleunigersystemen, die jeweils eine zweite Architektur aufweisen, welche sich von der ersten Architektur unterscheidet. Ein erster Satz von auf dem Serversystem geplanten datenparallelen Workload-Tasks und ein zweiter Satz von mit dem Satz von Beschleunigersystemen geplanten datenparallelen Workload-Tasks werden identifiziert. Es wird festgestellt, dass ein Satz von Ressourcen in einem ersten des Serversystems und des Satzes von Beschleunigersystemen zur Zeit verfügbar ist. Mindestens ein Teil entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks wird dynamisch auf ein zweites des Serversystems und des Satzes von Beschleunigersystemen umgeplant. Das dynamische Umplanen genügt dem Satz von SLAs für durchsatzstarke Datenverarbeitung im Wesentlichen.
  • Im Licht eines weiteren Aspekts gesehen, stellt die vorliegende Erfindung ein Computerprogramm-Produkt zum Verwalten von Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem bereit. Das Computerprogramm-Produkt enthält ein Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren auszuführen. Das Verfahren enthält das Abrufen eines Satzes von Servicezielvereinbarungen (SLAs) für durchsatzstarke Datenverarbeitung. Der Satz von SLAs für durchsatzstarke Datenverarbeitung ist mit einem hybriden Verarbeitungssystem verknüpft. Das hybride Verarbeitungssystem enthält mindestens ein Serversystem, das eine erste Architektur aufweist, und einen Satz von Beschleunigersystemen, die jeweils eine zweite Architektur aufweisen, welche sich von der ersten Architektur unterscheidet. Ein erster Satz von auf dem Serversystem geplanten datenparallelen Workload-Tasks und ein zweiter Satz von mit dem Satz von Beschleunigersystemen geplanten datenparallelen Workload-Tasks werden identifiziert. Es wird festgestellt, dass ein Satz von Ressourcen in einem ersten des Serversystems und des Satzes von Beschleunigersystemen zur Zeit verfügbar ist. Mindestens ein Teil entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks wird dynamisch auf ein zweites des Serversystems und des Satzes von Beschleunigersystemen umgeplant. Das dynamische Umplanen genügt dem Satz von SLAs für durchsatzstarke Datenverarbeitung im Wesentlichen.
  • Im Licht eines dritten Aspekts gesehen, stellt die vorliegende Erfindung ein Computerprogramm bereit, welches auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, welches Teile von Software-Code aufweist, wenn das Programm auf einem Computer ausgeführt wird, um die Schritte der Erfindung durchzuführen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Nun wird die vorliegende Erfindung, nur beispielhaft, unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie sie die folgenden Figuren veranschaulichen:
  • 1 ist ein Blockschaubild, welches ein Beispiel einer Betriebsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 2 ist ein Blockschaubild, welches ein Beispiel des Verteilens von Workloads für durchsatzstarke Datenverarbeitung über ein Hybridsystem gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 ist ein Blockschaubild mit Zeitangaben, welches eine Workload-Verlagerung in einem Hybridsystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 4 ist ein Blockschaubild, welches ein Beispiel einer Workload-Warteschlange für ein Hybridsystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 5 ist ein Blockschaubild, welches eine Konfiguration eines Servers in einem Hybridsystem für durchsatzstarke Datenverarbeitung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 6 ist ein betriebsgemäßer Ablaufplan welcher ein Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einem Hybridsystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 7 ist ein betriebsgemäßer Ablaufplan, welcher ein weiteres Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einem Hybridsystem gemäß einer Datenzugriffskonfiguration einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 8 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einem Hybridsystem durch Umverteilen von Workloads gemäß einer weiteren Datenzugriffskonfiguration gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 9 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einem Hybridsystem durch Umverteilen von Workloads auf Grundlage von SLAs gemäß einer weiteren Datenzugriffskonfiguration gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 10 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel der Clusterbildung aus Workloads in einem Hybridsystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 11 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Verlagerns von Workloads in einem Hybridsystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 12 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Konfigurierens eines Serversystems in einer Systemumgebung zum Durchführen von Beschleuniger-Workloads gemäß einer Ausführungsform der vorliegenden Erfindung darstellt; und
  • 13 ist ein Blockschaubild, welches eine detaillierte Ansicht eines Informationsverarbeitungssystems gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Nach Bedarf werden hierin ausführliche Ausführungsformen der vorliegenden Erfindung offenbart; jedoch versteht es sich von selbst, dass die offenbarten Ausführungsformen lediglich beispielhaft für die Erfindung sind, welche in verschiedenen Formen verkörpert sein kann. Deshalb sind hierin offenbarte, bestimmte struktur- und funktionsbezogene Einzelheiten nicht als begrenzend, sondern lediglich als eine Grundlage für die Ansprüche und als eine repräsentative Grundlage zum Unterweisen eines Fachmanns, die vorliegende Erfindung in praktisch jeder beliebigen angemessen genau beschriebenen Struktur verschiedenartig einzusetzen, zu verstehen. Ferner sind die hierin verwendeten Begriffe und Sätze nicht begrenzend gemeint; vielmehr sollen sie eine verständliche Beschreibung der Erfindung bereitstellen.
  • Die Begriffe ”ein” oder ”eine”, wie hierin verwendet, sind als eins oder mehr als eins definiert. Der Begriff ”Vielzahl” wie hierin verwendet ist als zwei oder mehr als zwei definiert. Begriffe im Plural und im Singular bedeuten dasselbe, sofern nicht ausdrücklich anders angegeben. Der Begriff ”ein weiterer” wie hierin verwendet ist als mindestens ein zweiter oder mehr definiert. Die Begriffe ”einschließlich”, ”enthaltend” und/oder ”aufweisend” wie hierin verwendet sind als beinhaltend (d. h. offener Stil) definiert. Der Begriff ”verbunden” wie hierin verwendet ist als verbunden definiert, wenn auch nicht unbedingt direkt und nicht unbedingt mechanisch. Die Begriffe ”Programm”, ”Software-Anwendung” und dergleichen wie hierin verwendet sind als eine Folge von Anweisungen zur Ausführung auf einem Computersystem definiert. Ein Programm, ein Computerprogramm oder eine Software-Anwendung kann eine Subroutine, eine Funktion, eine Prozedur, eine Objektmethode, eine Objektausführung, eine ausführbare Anwendung, ein Applet, ein Servlet, einen Quellcode, einen Objektcode, eine gemeinsam genutzte Bibliothek/dynamische Ladebibliothek und/oder eine andere Folge von Anweisungen zur Ausführung auf einem Computersystem enthalten.
  • Betriebsumgebung
  • 1 zeigt ein Beispiel einer Betriebsumgebung 100, welche auf verschiedene bevorzugte Ausführungsformen der vorliegenden Erfindung anwendbar ist. Die Betriebsumgebung 100 ist in diesem Beispiel eine hybride Datenverarbeitungsumgebung. Eine ”hybride Datenverarbeitungsumgebung”, wie der Begriff hierin verwendet wird, ist insofern eine Datenverarbeitungsumgebung, als sie mit Computerspeicher betriebsfähig verbundene Computerprozessoren enthält, um Datenverarbeitung in Form der Ausführung von im Speicher gespeicherten und auf den Prozessoren ausgeführten Computerprogramm-Anweisungen zu realisieren.
  • Darüber hinaus weist die hybride Datenverarbeitungsumgebung 100 in dem Beispiel in 1 eine Host/Server-Architektur auf, die mit einem eine Beschleunigerarchitektur aufweisenden Beschleuniger zusammenarbeitet, wobei die Serverarchitektur und die Beschleunigerarchitektur verschiedene Architekturen sind. Die Host/Server- und die Beschleunigerarchitektur in diesem Beispiel sind durch architekturdefinierte Register gekennzeichnet, Register, die durch Computerprogramm-Anweisungen zugänglich sind, welche auf jeder Architektur ausgeführt werden, Register wie zum Beispiel ein Anweisungsregister, ein Programmbefehlszähler, Speicherindexregister, Stapelzeiger und dergleichen. Das heißt, die Anzahl, die Art, die Struktur und die Beziehungen zwischen den architekturdefinierten Registern der beiden Architekturen sind verschieden, so verschieden, dass zur Ausführung auf dem Hostcomputer einer hybriden Datenverarbeitungsumgebung kompilierte Computerprogramm-Anweisungen üblicherweise nicht nativ durch einen zugehörigen Beschleuniger der hybriden Datenverarbeitungsumgebung ausgeführt werden können. Zu Beispielen hybrider Datenverarbeitungsumgebungen zählen ein Datenverarbeitungssystem, welches wiederum einen oder mehrere Hostcomputer enthält, die jeweils einen IBM® System-z®-Prozessor aufweisen, und Beschleuniger, deren architekturdefinierte Register den IBM® POWER®-Anweisungssatz realisieren. Zur Ausführung auf den IBM System-z-Prozessoren in den Hostcomputern kompilierte Computerprogramm-Anweisungen können nicht nativ durch die IBM POWER-Prozessoren in den Beschleunigern ausgeführt werden.
  • Insbesondere zeigt 1 ein Hostsystem wie ein Serversystem 102, eine Vielzahl von Beschleunigersystemen 104 und einen oder mehrere Benutzerclients 106, welche über ein oder mehrere Netze 108 datenaustauschfähig verbunden sind. Das eine oder die mehreren Netze 108 können jede Art von drahtgebundenem und/oder drahtlosem Kommunikationsnetz sein. Zum Beispiel kann das Netz 108 ein Intranet, ein Extranet oder ein Verbundnetz wie das Internet oder eine Kombination daraus sein. Das Netz (die Netze) 108 kann bzw. können drahtlose, drahtgebundene und/oder Lichtwellenleiter-Verbindungen aufweisen. In einer Ausführungsform ist das Serversystem 102 eine beliebige Art von Serversystem wie, ohne darauf begrenzt zu sein, ein IBM System-z-Server. Die Beschleunigersysteme 104 sind in einer Ausführungsform Blade-Server wie, ohne darauf begrenzt zu sein, IBM System-p®- oder System-x®-Server. Der Benutzerclient 106 ist in einer Ausführungsform irgendein Informationsverarbeitungssystem wie, ohne darauf begrenzt zu sein, eine Workstation, ein Desktop-Computer, ein Notebook-Computer, eine drahtlose Kommunikationseinrichtung, eine Spielkonsole und dergleichen, welches einem Benutzer gestattet, mit dem Serversystem 102 und/oder den Beschleunigersystemen 104 zu interagieren. Der Benutzerclient 106 weist eine oder mehrere Schnittstellen 110 auf, welche einem Benutzer gestatten, mit dem Serversystem 102 und/oder den Beschleunigersystemen 104 zu interagieren. Es ist zu beachten, dass die oben gegebenen Beispiele des Serversystems 102, der Beschleunigersysteme 104 und des Benutzerclients 106 nur zur Veranschaulichung dienen und andere Arten von Systemen ebenso anwendbar sind. IBM, System z, POWER, System p und System x sind in vielen Ländern weltweit eingetragene Warenzeichen der International Business Machines Corporation.
  • Die Kombination des Serversystems 102 und der Beschleunigersysteme 104 wird hierin wegen der heterogenen Kombination aus den verschiedenen Systemarten des Servers 102 und der Beschleuniger 104 als ein Hybridserver/-system 112 in der hybriden Umgebung 100 bezeichnet. Zum Beispiel enthält das Serversystem 102 einen oder mehrere Prozessoren 114 (jeweils mit einem oder mehreren Kernen), welche über einen Hochgeschwindigkeits-Speicherbus (nicht gezeigt) betriebsfähig mit dem Computerspeicher, dem Direktzugriffsspeicher (nicht gezeigt) verbunden sind. Der Prozessor/die Prozessoren 114 enthält bzw. enthalten einen Satz von architekturdefinierten Registern (nicht gezeigt), welcher die Hostcomputer-Architektur definiert. Jeder Beschleuniger 104 enthält auch einen oder mehrere Prozessoren 116, die einen Satz von architekturdefinierten Registern (nicht gezeigt) aufweisen, welcher die Beschleunigerarchitektur definiert. Es ist zu beachten, dass jedes der Beschleunigersysteme 104 den gleichen oder einen anderen Prozessortyp enthalten kann.
  • Die architekturdefinierten Register der Prozessoren 116 (jeweils mit einem oder mehreren Kernen) jedes Beschleunigers unterscheiden sich von den architekturdefinierten Registern der Prozessoren 114 im Serversystem 102. Bei voneinander verschiedenen Architekturen wäre es ungewöhnlich, wenn auch möglich, dass ein Serversystem 102 und ein Beschleuniger 104 die gleichen Anweisungssätze unterstützen. An sich würde von zur Ausführung auf den Prozessoren 116 eines Beschleunigers 104 kompilierten Computerprogramm-Anweisungen gewöhnlich nicht erwartet, dass sie nativ auf den Prozessoren 114 des Serversystems 102 ausgeführt werden und umgekehrt. Zudem würde, wegen der typischen Unterschiede in Hardware-Architekturen zwischen Server- und Beschleunigerprozessoren, von zur Ausführung auf den Prozessoren 114 eines Serversystems 102 kompilierten Computerprogramm-Anweisungen gewöhnlich nicht erwartet, dass sie nativ auf den Prozessoren 116 eines Beschleunigers 104 ausgeführt werden, selbst wenn der Beschleuniger den Anweisungssatz des Servers unterstützte. Die Beschleunigerarchitektur ist bezüglich des Serversystems 104 für die Ausführungsgeschwindigkeit einer bestimmten Klasse von Datenverarbeitungsfunktionen optimiert. Das heißt, für die Funktion oder die Funktionen, für welche der Beschleuniger optimiert ist, wird die Ausführung dieser Funktionen auf dem Beschleuniger 104 gewöhnlich schneller vor sich gehen, als wenn sie auf den Prozessoren des Serversystems 102 ausgeführt würden.
  • In einer Ausführungsform enthält das Serversystem 102 unter anderem einen Workload-Manager 118, einen oder mehrere Prozessoren 114 und eine Vielzahl von in einer Datenbank oder einem Speicher 122 gespeicherten Servicezielvereinbarungen (SLAs) 120. Es ist zu beachten, dass die SLAs auch auf einem oder mehreren Informationsverarbeitungssystemen (nicht gezeigt), welche datenaustauschfähig mit dem Serversystem 102 verbunden sind, gespeichert sein können. Eine SLA ist in einer Ausführungsform eine durch einen Benutzer vorgenommene Festlegung von Servicezielen, welche von einer Workload erfüllt werden müssen. Ein Workload-Manager handelt Ziele aus und organisiert Workloads, um diese Serviceziele zu erfüllen. Ein Durchsatzdatenverarbeitungs-SLA-Datensatz kann mehrere Unterdatensätze für Leistung/Durchsatz-, Leistung/Antwortzeit-Stapelverarbeitungsfenster, Energie, Zuverlässigkeit und Verfügbarkeit haben. Aufgrund von Änderungen der Eingabedatenraten und -mengen oder anderer Ausführungsbedingungen können sich SLA-Datensatz-Werte während einer Workload-Ausführung dynamisch ändern.
  • Der Workload-Manager 118 ist so konfiguriert, dass er eine durchsatzstarke Datenverarbeitungsumgebung (HTC- Umgebung (high-throughput computing)) für den Hybridserver 112 bereitstellt. Diese durchsatzstarke Datenverarbeitungsumgebung kann (i) datenparallele und Vektorelemente; (ii) Stapelverarbeitungsfenster; und (iii) kontinuierlichen Rechendurchsatz (Operationen/Sekunde) über einen langen Zeitraum enthalten. In einer Ausführungsform nutzt der Hybridserver 112 ”Single Instruction, Multiple Data”-(SIMD-)Strukturen, welche die Arbeit, die eine Einzelanweisung leistet, steigern, so dass sie an mehreren Datenelementen gleichzeitig arbeitet, um Datenparallelität zu erreichen.
  • Die Prozessoren im Hybridserver 112, die SIMD enthalten, sind fähig, datenparallele Berechnungen einer gewissen Länge nativ in ihren SIMD-Einheiten durchzuführen. Bei Workloads, welche datenparallele Berechnungen mit langen Vektoren erfordern, können in Software, die Operationen an Vektoren gestattet, welche länger sind, als die nativen SIMD-Einheiten eines Prozessorkerns erlauben, SIMD-Einheiten aus mehreren Prozessorkernen ”gekoppelt” oder ”verkettet” werden. Die Verwendung dieser gekoppelten Konfiguration wird gewählt, wenn ”Aussteuerungsreserve” über mehrere Kerne im Serverprozessor verfügbar ist. Alternativ kann die Workload die datenparallele Berechnung in einer Schleife in einem einzigen Kern erledigen.
  • Der Workload-Manager 118 enthält einen SLA-Manager 124, eine Workload-Zuordnungsfunktion 126, eine Cluster-Planungsfunktion 128, einen Stapelverarbeitungsfenster-Manager 130, eine dynamische Workload-Neuzuordnungsfunktion 132, einen Workload-Mobilitäts-Manager 134 und eine Workload-Warteschlange 136. Der Workload-Manager 118 und jede dieser Komponenten werden nachfolgend ausführlicher erörtert. Der (die) Beschleuniger 104 weist bzw. weisen unter anderem einen oder mehrere Prozessoren 116, wie oben erörtert, und eine oder mehrere Workload-Warteschlangen 138 zum Einstellen verschiedener im Beschleuniger 104 durchzuführender Workloads auf. Der Beschleuniger wird nachfolgend ausführlicher erörtert.
  • Wie oben erörtert, ist das Hybridsystem 112 ein heterogenes System. Deshalb realisiert die hybride Datenverarbeitungsumgebung 100 in einer Ausführungsform eine plattformübergreifende Parallelprogrammierumgebung wie, ohne darauf begrenzt zu sein, eine OpenCL-(Open Compute Language-)Umgebung. Diese Art von Umgebung gestattet paralleles Programmieren über eine Anzahl von heterogenen Einrichtungen wie zentralen Verarbeitungseinheiten (CPUs), Grafikverarbeitungseinheiten (GPUs) und Beschleunigern. In anderen Worten, eine plattformübergreifende Parallelprogrammierumgebung gestattet, Programme über heterogene Komponenten auszuführen. In dieser Umgebung weist eine Workload mehrere Prozesse/Adressräume auf. Jeder Prozess kann mehrere Tasks ausführen, und jeder Task kann bestimmte rechenintensive Teile in ein Rechen-Kernel auslagern, welche Grundeinheiten von ausführbarem Code sind. Der Rechen-Kernel kann auf einem Rechenelement oder mehreren Rechenelementen wie einem Prozessorkern ausgeführt werden. Ein Rechen-Kernel kann entweder taskparallel bezüglich CPUs wie der im Serversystem 102 vorhandenen Prozessoren oder datenparallel bezüglich CPUs wie der in den Beschleunigern 104 vorhandenen Prozessoren sein. Das Hybridsystem 112 unterhält separate Rechen-Kernels für jede der verschiedenen Architekturen im Hybridsystem 112, wenn die Rechen-Kernels in einer Sprache wie C oder C++ geschrieben und für den nativen Anweisungssatz kompiliert sind. Wenn die Rechen-Kernels in einer Sprache wie Java® oder OpenCL geschrieben sind, braucht nur ein Kernel unterhalten zu werden, da Java und OpenCL Unterstützung für die portierbare Ausführung von Rechen-Kernels über verschiedene Architekturen bereitstellen. Workloads werden in die Workload-Warteschlangen 136, 138 des Servers 102 beziehungsweise der Beschleuniger 104 gestellt. Java ist ein eingetragenes Warenzeichen von Oracle und/oder seinen Tochtergesellschaften. Weitere Namen können Warenzeichen ihrer jeweiligen Eigentümer in den Vereinigten Staaten und/oder in anderen Ländern sein.
  • Der Workload-Manager 118 sendet diese Rechen-Kernels an die Beschleuniger 104. Alternativ kann ein OpenCL-Laufzeitprozess auf dem Server diese Kernels an die Beschleuniger senden, wenn ein diese Kernel-Funktionen aufrufender Prozess gestartet wird. Die Beschleuniger können sich auch entscheiden, OpenCL-Kernels in ihrem lokalen tertiären Speicher zu speichern. Diese Kernels können aufgerufen werden, wenn ein aufrufender Prozess auf dem Server ausgeführt wird. Diese Rechen-Kernels werden dann auf den Beschleunigern 104 gestartet. Der Server sendet Daten an diese Rechen-Kernels und berechnet auf Grundlage der Daten ein Ergebnis. Diese Ergebnisse werden dann von den Beschleunigern 104 an das Serversystem 102 gesendet. Es ist zu beachten, dass, auch wenn die folgende Erörterung verschiedene Ausführungsformen bezüglich dieser plattformübergreifenden Parallelprogrammierumgebung erörtern mag, eine oder mehrere bevorzugte Ausführungsformen der vorliegenden Erfindung genauso auch auf nicht-plattformübergreifende Parallelprogrammierumgebungen anwendbar sind.
  • Wie oben erörtert, stellen herkömmliche hybride Datenverarbeitungsumgebungen gewöhnlich keine vereinheitlichte Spezifikation und Verwaltung von Anforderungen an durchsatzstarke Datenverarbeitung über das gesamte hybride Datenverarbeitungssystem bereit. Zum Beispiel sind viele in einer hybriden Datenverarbeitungsumgebung realisierte Serversysteme nicht dafür konfiguriert, datenparallele Operationen über einen langen Zeitraum durchzuführen. Außerdem planen herkömmliche hybride Datenverarbeitungsumgebungen gewöhnlich weniger rechenintensive Workloads wie Onlinetransaktionsverarbeitungs-Workloads auf einem Serversystem und rechenintensivere Workloads auf einem Beschleuniger (auf Beschleunigern). Jedoch überwinden verschiedene bevorzugte Ausführungsformen der vorliegenden Erfindung diese Probleme durch Unterstützen von Durchsatzdatenverarbeitungs-SLAs, ersatzweiser Ausführung zwischen dem Server 102 und den Beschleunigern 104, querverbundene Warteschlangen über Netzverbindungen und kombiniertes Stehlen von Daten/Workload auf Grundlage von Leistungs-/Energie-Kompromissen, wie nachfolgend noch ausführlicher erörtert werden wird. Verschiedene Ausführungsformen maximieren ferner den Durchsatz und minimieren zudem die Energiebilanz (wenn ein Mikroprozessor ohne Pipeline-Sperren (MIPS)/Watt oder Gleitkomma-Operationen pro Sekunde (FLOPS)/Watt eines Serversystems kleiner als ein vergleichbares Beschleunigersystem ist), indem rechenintensive Workload-Komponenten zusammen mit einem Beschleuniger (mit Beschleunigern) auf das Serversystem gelegt werden.
  • Durchsatzstarke Datenverarbeitung in einer hybriden Datenverarbeitungsumgebung
  • In einer Ausführungsform stellt der Workload-Manager 118 durch Unterstützung von SLAs 120 und Workload-Verwaltung eine Durchsatzdatenverarbeitungsumgebung für das Hybridsystem 112 bereit. Der Workload-Manager 118 stellt SLA-Unterstützung für datenparallele Operationen, z. B. Vektoroperationen/Sekunde; elastische Stapelverarbeitungsfenster; Unterstützung sowohl für Serversystem- als auch für Beschleunigerprozessoren; Workload-Cluster-Planung; und Ressourcengarantien bezüglich Ein-/Ausgabe-, Speicher- und Prozessorkomponenten bereit. Der Workload-Manager 118 ist über die Workload-Zuordnungsfunktion 126 fähig, Workloads über Serversystem- und Beschleunigerressourcen zu verwalten/zuzuordnen, um den Anforderungen der SLAs 120 zu genügen.
  • Zum Beispiel ruft der SLA-Manager 124 eine SLA 120 aus einem Speicherbereich 122 ab und ermittelt, dass die SLA 120 10.000 Operationen pro Sekunde über eine Zeitdauer von zwei Tagen verlangt. In diesem Beispiel sind die Kernels in den Beschleunigern 104, als ein Aggregat, möglicherweise nur fähig, 5.000 Operationen pro Sekunde durchzuführen, was der SLA 120 nicht genügen würde. Deshalb plant der Workload-Manager 118 einen Teil 202, 204 der Beschleuniger-Workload (z. B. Tasks) als einen oder mehrere Rechen-Kernels 206, 208 in den Beschleunigerprozessoren 116 und einen übrigen Teil 210, 212 der Workload als einen oder mehrere Rechen-Kernels 214, 216 in den Serversystem-Prozessoren 114, damit die SLA 120 von 10.000 Operationen pro Sekunde erreicht werden kann. Die Prozessoren 114 im Serversystem 102 können als ”Ersatzprozessoren” bezeichnet werden, da sie Prozessoren sind, welche datenparallele Datenverarbeitung von Beschleuniger-Workloads durchführen, um den Beschleunigerprozessor 116 zu ergänzen. Die Nutzung der Serversystemressourcen zur Ergänzung der Beschleunigerressourcen kann als ”Ersatzausführung” bezeichnet werden. Wie aus 2 ersichtlich, ist der Workload-Manager 118 fähig, Ressourcen im Serversystem 104 zu nutzen, um, zwecks Erfüllung der SLA-Anforderungen, die Beschleunigerressourcen zu ergänzen.
  • Außerdem stellt der Workload-Manager 118 Ressourcengarantien bereit. Zum Beispiel wenn eine SLA 120 10.000 Operationen pro Sekunde verlangt, stellt der Workload-Manager 118 sicher, dass das Hybridsystem 112 diese Dauerrate bereitstellt. Jedoch kann diese SLA 120 sich wegen (zum Beispiel) zusätzlicher ankommender Daten von 10.000 Operationen pro Sekunde auf 15.000 Operationen pro Sekunde ändern. Deshalb ordnet der Workload-Manager 118 in diesem Beispiel dem Serversystem 102 und/oder den Beschleunigern 104 zusätzliche Kernels 206, 208, 214, 216 dynamisch zu, damit zusätzliche Beschleuniger-Workloads ausgeführt werden können, um 15.000 Operationen pro Sekunde zu unterstützen. In anderen Worten, der Workload-Manager 118 stellt Ressourcengarantien bereit, so dass bei einer Änderung der Durchsatzdatenverarbeitungsraten der Workload-Manager 118 zusätzliche Ressourcen zuordnet, um die Durchsatzdatenverarbeitungsrate bereitzustellen. Zusätzlich kann der Workload-Manager einen Agenten auf den Beschleunigern ausführen, welcher mittels Hardware- und Software-Zählern die effektive Rechen-Durchsatzrate, die Eingabe-/Ausgabedatenrate und die Speicherbandbreite misst.
  • Wie oben erörtert, führt das Hybridsystem 112 datenparallele Operationen durch. In anderen Worten, Daten können über mehrere Prozessoren oder Datenverarbeitungsknoten innerhalb des Hybridsystems 112 verteilt werden. In manchen Fällen können diese datenparallelen Operationen Daten aus anderen Operationen erfordern. Zum Beispiel könnte eine erste Workload-Gruppe eine Multiplikation von Vektoren durchführen und kann eine zweite Gruppe eine Subtraktion von Vektoren durchführen und das Ergebnis der ersten Gruppe benötigen. Deshalb identifiziert der Workload-Manager 118 über die Workload-Cluster-Planungsfunktion 128 abhängige Workload-Gruppen und stellt diese abhängigen Gruppen in einem Cluster zusammen, so dass sie gleichzeitig auf einem Satz von Serversystem-Prozessoren 114 und Beschleunigerprozessoren 116 geplant werden können. In anderen Worten, eine Vielzahl von Workload-Gruppen befindet sich innerhalb eines einzigen Clusters und bildet einen Satz von gleichartigen datenparallelen Workloads (z. B. führen diese gleichartige datenparallele Operationen durch) mit Abhängigkeiten zwischen Workloads und Workload-Gruppen. Zum Beispiel können die in 2 gezeigten Workloads 202, 204, 210, 212 sich alle innerhalb eines Workload-Clusters befinden. Deshalb kann ein Ergebnis einer ersten Workload-Gruppe aus einem ersten Zyklus vor dem Starten des zweiten Zyklus an eine zweite Workload-Gruppe im selben Cluster gesendet werden. Es ist zu beachten, dass die Workloads innerhalb eines Clusters gemischt werden können und nicht gleichartig sein müssen, aber sie werden nach wie vor auf einmal oder gleichzeitig geplant. Der Workload-Manager 118 kann dann über die Cluster-Planungsfunktion 128 Workloads innerhalb eines Clusters zeitlich abstimmen, wenn sie Abhängigkeiten aufweisen, sowie Workload-Cluster zeitlich abstimmen, wenn sie Abhängigkeiten untereinander aufweisen.
  • Darüber hinaus unterstützt der Workload-Manager 134 über den Stapelverarbeitungsfenster-Manager 130 elastische Stapelverarbeitungsfenster. Ein Stapelverarbeitungsfenster ist ein Zeitfenster, welches angibt, wann eine Stapelverarbeitungs-Workload abgeschlossen werden kann. Dies ist ein Attribut einer SLA (Servicezielvereinbarung). Eine Stapelverarbeitungsfenster-Spezifikation wird vom Workload-Manager verwendet, um Ressourcen so zuzuordnen, dass die Workload innerhalb des Stapelverarbeitungsfensters abgeschlossen werden kann. Im Verlauf der Workload-Ausführung kann es erforderlich sein, dass eine Workload vor oder nach der ursprünglichen Stapeltermin-Spezifikation abgeschlossen wird. Eine solche Stapelverarbeitungsfenster-Spezifikation wird als ein elastisches Stapelverarbeitungsfenster bezeichnet. Ein Stapelverarbeitungsfenster kann auf Grundlage der Geschäftsprozessanforderungen oder Datenverarbeitungsanforderungen während der Ausführung mit der Zeit kleiner oder größer werden. Der Workload-Manager 134 weist über den Stapelverarbeitungsfenster-Manager 130 zum Beispiel einem Workload-Cluster mehr Ressourcen zu, um einem kleiner werdenden Stapelverarbeitungsfenster gerecht zu werden. Dieser Prozess kann das Hinzufügen oder Entfernen zusätzlicher Beschleuniger während der Verarbeitung und/oder das Hinzufügen/Entfernen von Serversystem-Ersatzprozessoren während der Verarbeitung enthalten. Jeder zusätzliche Beschleuniger kann Rechen-Kernels ausführen, welche gestatten, das verkürzte Stapelzeitfenster einzuhalten. Wenn die Stapelverarbeitungsfenster-Spezifikation gelockert wird, kann der Workload-Manager 134 Beschleuniger und zugehörige Kernels entfernen, so dass diese von anderen Workloads wiederverwendet werden können. Die Workload kann unter Verwendung des optimierten Satzes von Beschleunigerressourcen innerhalb des gelockerten Stapelverarbeitungsfensters abgeschlossen werden.
  • Nachdem die Workload(s) über das Hybridsystem 112 geplant wurde(n), gestattet der Workload-Manager 118 über den Workload-Mobilitäts-Manager 134 heterogene Mobilität zwischen dem Serversystem 102 und den Beschleunigern 104. In anderen Worten, Workloads können von einem (mit einer ersten Architektur realisierten) Beschleunigerprozessor 116 zu einem (mit einer zweiten Architektur, welche sich von der ersten Architektur unterscheidet, realisierten) Ersatzprozessor 114 im Serversystem 102 verschoben werden. Zum Beispiel zeigt 3, dass den Beschleunigerprozessoren 116 zum Zeitpunkt T1 eine Vielzahl von Workloads 302, 304 zugeordnet werden. Der Workload-Manager 118 ermittelt, dass eine oder mehrere Workloads 304 auf das Serversystem 102 verlagert werden müssen. Zum Beispiel kann die Workload 304 bestimmte Daten vom Serversystem 102 benötigen, aber eine SLA 120 gibt an, dass diese Daten aus Sicherheitsgründen nicht vom Serversystem 102 wegbewegt werden können. Deshalb verlagert der Workload-Manager 118 die Workload 304 zum Zeitpunkt T2 vom Beschleuniger 104 auf einen Prozessorkern (oder Beschleuniger) 310 im Serversystem 102, wo die Workload 304 ihre Operationen mit den erforderlichen Daten im Serversystem 102 durchführen kann.
  • Heterogene Mobilität kann auf verschiedene Weisen durchgeführt werden. Zum Beispiel soll ein erstes Verfahren eine architekturunabhängige Zustandsprüfung eines Programmhaltepunktes durchführen, wenn eine Mobilitätsunterbrechung empfangen wird. Wenn der Code der Workload, die gerade verlagert wird, einen Steuerungsablauf enthält, werden alle Variablen im Code mit etwaigen, dem unterbrochenen Zustand entsprechenden Quellcode-Zeilennummern gesichert. Diese werden dann neu in den neuen Prozessor geladen, wenn die Workload verlagert wird. Wenn der Code Datenfluss enthält, können Daten aus der Workload von dem Server/Beschleuniger, von welchem die Workload weg verlagert wird, zu dem Server/Beschleuniger, zu welchem die Workload hin verlagert wird, gesendet werden. In diesem ersten Verfahren liegen zwei Kopien von ausführbaren Dateien in jeder der verschiedenen Architekturen.
  • In einem zweiten Verfahren kann die ausführbare Datei in dem Prozessor, von dem weg verlagert wird, gestoppt und in dem Prozessor, zu dem hin verlagert wird, neu gestartet werden. Zum Beispiel wird die Wiederherstellungseinheit (nicht gezeigt) des Prozessors, von dem weg verlagert wird (entweder im Serversystem 102 oder im Beschleuniger 104), verwendet, um den Ausführungszustand dieses Prozessors, von dem weg verlagert wird, zu sichern. Eine Wiederherstellungseinheit oder R-Einheit in System-z- und System-p-Prozessoren speichert den gesamten Architekturzustand des Prozessors. Eine Zuordnungstabelle verknüpft den Registerzustand mit Zwischendarstellungs-(IR-, Intermediate Representation-)Strukturen und -Symbolen und Quellcodeniveau-Strukturen und -Symbolen. Wenn die Workload auf den anderen Prozessor verlagert wird, kann der Ausführungszustand der Wiederherstellungseinheit unter Verwendung der Zuordnungstabelle decodiert und in den neuen Prozessor geladen werden. Diese Ausführungsformen gestatten, Workloads über physische Maschinen verschiedener Architekturen zu verlagern. Der Workload-Manager 118 verschiebt Workloads an Orte, wo der Datenaustausch am effizientesten, sichersten ist und/oder wo die Daten verfügbar sind.
  • Entscheidungen, eine Workload von einem Beschleuniger 104 auf das Serversystem 102 zu verlagern oder umgekehrt, können auf Grundlage von Leistungs- oder Energieanforderungen wie durch eine SLA 120 angegeben oder von naturgegebener Interaktionsaffinität (Datenaustauscheffizienz und -sicherheit) erfolgen. Außerdem kann die Verlagerung von der Art der ausgeführt werdenden Workload abhängen. Zum Beispiel ist eine Art von Workload eine Durchsatzdatenverarbeitungsstapel-Workload (z. B. Tasks festlegen/erweitern, variable Zuweisung von Eingabedaten mit einem Schwerpunkt auf datenparallelen Operationen) und ist eine weitere Art von Workload eine Workload mit lang laufenden Berechnungen (mit hauptsächlich skalaren Operationen).
  • Was Durchsatzdatenverarbeitungsstapel-Workloads betrifft, können diese Workloads Serversystem-Prozessoren 114 und/oder Beschleuniger-Prozessoren 116 zugeordnet werden. Der Mobilitäts-Manager 134 überwacht Leistungsmesswerte und/oder Energiemesswerte bezüglich der Workload, um zu ermitteln, ob diese Messwerte über oder unter einer jeweiligen gegebenen Schwelle liegen. Wenn der Workload-Mobilitäts-Manager 134 ermittelt, dass die gegebene Schwelle nicht erreicht wird oder alternativ, dass sie überschritten wird, verlagert der Mobilitäts-Manager 134 mindestens einen Teil der Workload von ihrem gegenwärtigen System (Server 102 oder Beschleuniger 104) auf das andere System (Server 102 oder Beschleuniger 104). Dies ermöglicht dem Hybridsystem 112, ein Leistungs- und/oder Energiemesswerte-Niveau wie durch die entsprechende SLA 120 angegeben zu erreichen. Es ist zu beachten, dass Durchsatzdatenverarbeitungsstapel-Workloads mit einer Stapelzeiffenster- und Energiefenster-Spezifikation initialisiert werden können. Eine Stapelzeiffenster-Spezifikation kann vorschreiben, dass eine Durchsatzdatenverarbeitungs-Workload z. B. innerhalb von vier Stunden abgeschlossen werden muss. Eine Energiefenster-Spezifikation kann vorschreiben, dass eine Workload nicht mehr als 400 Wattstunden Energie verbrauchen darf. Der Workload-Manager 134 berücksichtigt sowohl Stapelzeiffenster- als auch Energiefenster-Spezifikationen, um eine Workload auszuführen. Eine Workload könnte auf einem Beschleuniger ausgeführt werden, was eine verkürzte Ausführungszeit von z. B. 2 Stunden, aber einen Energieverbrauch von 300 Wattstunden zur Folge hätte. Der Workload-Manager 134 kann entscheiden, die Workload auf den Server zu verschieben (in der Annahme, dass der Server energieeffizient ist), wenn er abschätzen kann, dass das Stapelverarbeitungsfenster unter annehmbarer Einhaltung des Energiefensters eingehalten werden kann. Eine SLA kann auch Felder zur Priorisierung zwischen Stapelverarbeitungsfenstern und Energiefenstern enthalten. Außerdem wird für solche Workloads die Mobilität erst nach Task-Abschluss abgeschlossen und der Zustand nicht aufrechterhalten.
  • Was Workloads mit lang laufenden Berechnungen betrifft, können diese Workloads anfängliche Startdaten enthalten und es wird keine Workload-Mobilität durchgeführt, solange nicht die Ausführungsbedingungen, z. B. Umschaltpunkte, erfüllt sind. Diese Workloads können mit einer Stapelzeitfenster- oder Energiefenster-Spezifikation initialisiert werden, so dass diese Workloads erst dann verlagert werden, wenn diese Fenster erreicht sind. Jedoch müssen vor dem Verlagern der Workload möglicherweise Programmhaltepunkte gesetzt werden. Dieser Workload-Typ unterstützt möglicherweise nur begrenzte Programmhaltepunkt-Orte, wo Mobilität betrieben werden kann.
  • Wie oben erörtert, werden rechenintensive Workloads in herkömmlichen hybriden Datenverarbeitungsumgebungen gewöhnlich nur auf Beschleunigern und nicht auf den Serversystemen geplant. Jedoch nutzt das Hybridsystem 112 verschiedener bevorzugter Ausführungsformen der vorliegenden Erfindung die Tatsache aus, dass die Serversystem-Prozessoren 114 in vielen Fällen über die Kapazität verfügen, die Beschleunigerprozessoren 116 zu ergänzen. Zum Beispiel kann ein Serversystem Prozessor 114 zusätzliche Ressourcen oder Datenverarbeitungsoperationen in Form von zugeteilten ”ruhenden” MIPS (Millionen Anweisungen pro Sekunde), welche vorab erworbene MIPS sind, die zur Zeit nicht verwendet werden; ungenutzte Kapazität für Gleitkomma-Operationen; oder ungenutzte Prozessorkapazität bei ”Blockierung” eines Prozessors, um eine bestimmte E/A abzuschließen, enthalten. Deshalb kann der Workload-Manager 118 diese Serversystem-”Aussteuerungsreserve” verwenden, um die datenparallelen Beschleuniger-Workloads ersatzweise auszuführen. In anderen Worten, der Workload-Manager 118 ordnet über die dynamische Workload-Neuzuordnungsfunktion 132 vorher geplante Workloads auf dem Beschleuniger 104 dem Serversystem 102 neu zu. Die Serversystem-Prozessoren 114 dienen als Ersatzprozessoren, um diese neu zugeordneten Workloads parallel zu den auf den Beschleunigerprozessoren 116 verbleibenden Workloads auszuführen. In anderen Worten, ungenutzte Kapazität von Serverprozessoren kann verwendet werden, um Beschleuniger-Kernels oder Workloads auszuführen.
  • Zusätzlich können das Serversystem 102 und die Beschleuniger 104 Workloads voneinander ”stehlen”. Zum Beispiel ist jede der Workload-Warteschlangen 136, 138 des Serversystems 102 und der Beschleuniger 104 querverbunden. In anderen Worten, das Serversystem 102 kann auf die Workload-Warteschlange 138 des Beschleunigers 104 zugreifen, und der Beschleuniger 104 kann auf die Workload-Warteschlange 136 des Serversystems 102 zugreifen. Das Serversystem 102 und die Beschleuniger 104 übernehmen dem anderen System zugeordnete Workloads, weil diese Warteschlangen 136, 138 in einem Speicherbereich liegen, welcher vom Serversystem 104 und vom Beschleuniger 104 gemeinsam genutzt wird. Dieser Speicherbereich liegt für jede Workload-Warteschlange auf dem Serversystem 102 und den Beschleunigern 104.
  • Wie in 4 gezeigt, können diese Warteschlangen 136, 138 eine ”laufende” Warteschlange 404, 406 und eine ”binnen kurzem laufende” Warteschlange 408, 410 enthalten. Die ”laufende” Warteschlange zeigt an, welche Workloads zur Zeit im jeweiligen System 102, 104 laufen. Die ”binnen kurzem laufende” Warteschlange 408, 410 zeigt an, welche Workloads zur Zeit nicht laufen, aber in der auf ihre Ausführung wartenden Warteschlange stehen. Wenn ein Prozessor 114 im Serversystem 112 seine zugeteilte Workload erledigt hat und feststellt, dass die Beschleuniger-Workload-Warteschlange 138 Workloads enthält, welche auf ihre Ausführung warten, kann das Serversystem 114 dann über die dynamische Workload-Neuzuordnungsfunktion 132 Arbeit aus der Beschleuniger-Workload-Warteschlange 138 übernehmen und diese Workload auf dem Serversystem 102 ausführen. Der Beschleuniger 104 kann ebenso eine entsprechende Operation durchführen, wenn der Workload-Manager 118 Workloads aus der Serversystem-Workload-Warteschlange 136 übernimmt und sie dem Beschleuniger 104 dynamisch neu zuordnet. Außerdem kann der Beschleuniger 104 diese Workloads zurücknehmen, wenn die Workload in der Serversystem-Workload-Warteschlange 136 eine Beschleuniger-Workload ist und diese Workloads nicht effizient ausgeführt werden. Das System 102, 104, welchem die Tasks abgenommen wurden, kann diese Tasks zurückfordern, sobald seine Leistungs-/Energiemesswerte über einer gegebenen Schwelle liegen.
  • In einer weiteren Ausführungsform kann der Workload-Manager 118 auf Grundlage von Terminen/Leistungs- und Energieanforderungen Workloads über die dynamische Workload-Neuzuordnungsfunktion 132 umverteilen. Zum Beispiel kann eine SLA 120 Task-Termin-Anforderungen, Leistungsanforderungen und Energieanforderungen enthalten. Die dynamische Workload-Neuzuordnungsfunktion 132 kann aktuelle Workloads im Serversystem 102 und im Beschleuniger 104 überwachen und ermitteln, ob diese Anforderungen erfüllt werden. Wenn die dynamische Workload-Neuzuordnungsfunktion 132 feststellt, dass eine oder mehrere dieser Anforderungen für eine gegebene Workload nicht erfüllt werden, verlagert die dynamische Workload-Neuzuordnungsfunktion 132 die gegebene Workload dynamisch auf das andere System (d. h. entweder das Serversystem 102 oder den Beschleuniger 104), damit die SLA-Anforderungen erfüllt werden können. In anderen Worten, Workloads werden dynamisch umverteilt, um den SLAs der Workload zu genügen. Etwaige Änderungen der SLAs lösen die dynamische Verteilung der Workload über das Hybridsystem 112 aus.
  • Der Workload-Manager 118 kann oben erörterte Aspekte des ”Stehlens” und Umverteilens von Workloads auch kombinieren. Da die Workloads datenparallel sind, ist das Serversystem 102 oder der Beschleuniger 104 zum Beispiel fähig, nur einen Teil der Workload oder der mit der Workload verknüpften Daten zu ”stehlen”. Entsprechende Funktionen ausführende Kernels können auf dem Host oder auf dem Beschleuniger laufen. Der Server oder der Beschleuniger kann Eingabedaten (auch als Problem-Eingabedaten bekannt) anstelle des gesamten Kernels von dem Server oder aus der ”binnen kurzem laufenden” Warteschlange des Beschleunigers ”stehlen”. Dies ist möglich, da der die Problem-Eingabedaten ”stehlende” Server oder Beschleuniger eine Kopie der gleichen Funktion ausführt. Ein Server oder Beschleuniger kann auch Datenteile aus Kernels, die zur Zeit ausgeführt werden, stehlen. Damit dies möglich ist, setzt der Kernel ”assist_flag”-Felder (im Eintrag der ”laufenden” Warteschlange) auf <yes> und er stellt Orte von Daten als eine Sammlung von (Startadresse, Endadresse)-Tupeln bereit. Der den Datenteil stehlende Kernel kann seine Kennung und seinen Ort bereitstellen, so dass er an jeder etwaigen Synchronisationsaktivität, welche der ”bestohlene” Kernel verlangen könnte, teilnehmen kann. Dies ist vorteilhaft, da das System möglicherweise nicht fähig ist, mit der gesamten Workload fertigzuwerden. Jedoch muss das Serversystem 102 oder der Beschleuniger 104 sich nach wie vor an die Anforderungen der SLAs 120 halten. Betrachten wir zum Beispiel eine SLA, welche verlangt, dass das Serversystem 102 und/oder der Beschleuniger 104 eine bestimmte Energieanforderung erfüllen. Das Serversystem 102 und der Beschleuniger 104 können über die ”Aussteuerungsreserve” verfügen, um eine Workload oder einen Teil der Workload zu ”stehlen”, aber wenn das Serversystem 102 oder der Beschleuniger 104 nicht fähig ist, die Energieanforderung der SLA zu erfüllen, hindert der Workload-Manager 118 das Serversystem 102 und den Beschleuniger 104 daran, die Workload zu übernehmen. Deshalb können ”Stehl”-Schwellen auf Grundlage von Leistungs- und/oder Energiemesswerten verwendet werden, um das Stehlen von Workloads entweder zu erlauben oder zu verweigern. Wie zu erkennen ist, kann ”Stehlen” genutzt werden, um von einer SLA 120 vorgegebene Termine und Energieziele einzuhalten bzw. zu erfüllen. Workloads oder Teile von Workloads und/oder entsprechende Daten werden gestohlen, um Durchsatzdatenverarbeitungs-SLAs zu unterhalten. Wenn die Kosten des Stehlens eines Task einer Workload über das Netz 108 das Leistungsattribut der Durchsatzdatenverarbeitungs-SLA verringern würden, kann der Workload-Manager 118 verhindern, dass dieser Task gestohlen wird.
  • 5 veranschaulicht eine Konfiguration des Hybridsystems 112 zum Umverteilen zugeordneter Workloads zwischen dem Serversystem 102 und den Beschleunigern 104. Insbesondere zeigt 5 Serversystem-Prozessoren 502, 504, 506, welche aufrufende plattformübergreifende Parallelprogrammier-OpenCL-Adressräume enthalten, und Serversystem-Prozessoren 508, 510, 512. Die Serversystem-Prozessoren 508, 510, 512 enthalten jeweils einen oder mehrere Rechen-Kernels 514, 516, 518. Die Beschleuniger 104 enthalten jeweils eine oder mehrere OpenCL-Einrichtungen wie Rechen-Kernels 520, 522, 524, und jede dieser Einrichtungen kann einen oder mehrere Rechen-Kernels ausführen. Im Gegensatz zu Beschleunigern, die über eine Verbindung angeschlossen sind, laufen Pseudo-OpenCL-Einrichtungen direkt auf Serverprozessoren. Pseudo-OpenCL-Einrichtungen können direkt auf 502, 504 und 506 laufen, dem aufrufenden Adressraum benachbart. Ein Server kann Pseudo-OpenCL-Einrichtungen realisieren, um Kernels zusammen mit auf Beschleunigereinrichtungen laufenden Kernels auszuführen. Dies gestattet, einen höheren Durchsatz zu erreichen. Ein Server kann sich auf Grundlage von SLA-Leistungs- und Energieattributen für eine Mischung aus Pseudo-OpenCL-Einrichtungen und Beschleuniger-OpenCL-Einrichtungen entscheiden. Wenn ein Server energieeffizienter als Beschleuniger ist, kann der Workload-Manager mehr Pseudo-OpenCL-Einrichtungen auf dem Server realisieren, um Energieziele zu erreichen. Eine strenge Leistungs-SLA kann die Ausführung von Kernels direkt auf den Beschleunigern, ohne jede Nutzung von Pseudo-OpenCL-Kernels, verlangen. Ein Workload-Manager kann auch beschließen, OpenCL-Kernels auf Pseudo-OpenCL-Einrichtungen nur zu starten, wenn ”Aussteuerungsreserve” (in Form von MIPS oder FLOPS) verfügbar ist.
  • Die Pseudo-Einrichtungen 508, 510, 512 werden neben dem Aufrufer-Stapel für plattformübergreifendes Parallelprogrammieren 515 ausgeführt und stellen sich dem Aufrufer-Stapel 515 als normale Einrichtungen dar, werden aber auf dem Serversystem 102 ausgeführt. Der Aufrufer-Stapel 515 unterhält eine Warteschlange 136, 138 für jede Einrichtung 514, 516, 518, 520, 522, 524. Der Aufrufer-Stapel 515 kann Eingabedaten zwischen Pseudo-Einrichtungen 508, 510, 512 und normalen Einrichtungen 502, 504, 506 auf Grundlage von Eingaben von Workload-Verwaltungsauslösern (z. B. Leistungsmesswerten, Energiemesswerten und dergleichen) umverteilen, wie oben erörtert. Zum Beispiel können zum Durchführen einer Workload an die Beschleuniger 104 gerichtete OpenCL-Aufrufe 517 durch die pseudo-plattformübergreifenden Parallelprogrammiereinrichtungen 514, 516, 518 im Serversystem 102 befriedigt werden. Entsprechend können, wenn heterogene Tasks über Pseudo-Einrichtungen 514, 516, 518 und plattformübergreifende Beschleuniger-Parallelprogrammiereinrichtungen 520, 522, 524 ausgeführt werden, Tasks und Datenelemente auf Grundlage von Workload-Verwaltungsauslösern umverteilt werden, wie oben erörtert. Eine Kernel-Planungsfunktion 519 plant eine physische Beschleuniger-Rechenressource (Prozessoren 502, 504, 506) oder Pseudo-Beschleuniger-Rechenressource (z. B. Prozessoren/Kernels 508/514, 510/516, 512/518) im Serversystem 102 oder Beschleuniger, um dem Kernel-Aufruf zu genügen.
  • Darüber hinaus gestattet die Konfiguration des Hybridsystems 112 ein einfacheres und effizienteres Testen und Bereinigen des Hybridsystems. Zum Beispiel, da das Hybridsystem 112 plattformübergreifende Parallelprogrammier-OpenCL-Einrichtungen (d. h. Rechen-Kernels) enthält, welche lokal (d. h. im Serversystem 102) und entfernt (d. h. in den Beschleunigern 104) angeordnet sind. Das Testen dieses Systems kann wegen der beteiligten Vernetzungselemente 108 beschwerlich sein. Jedoch überwindet die in 5 gezeigte Konfiguration diese Probleme. Die fernen Beschleuniger-OpenCL-Einrichtungen werden direkt auf dem Server als Pseudo-OpenCL-Einrichtungen ausgeführt. Dies könnte eine schlechtere Leistung zur Folge haben, aber alle OpenCL-Einrichtungen können in einem vereinheitlichten, gemeinsam genutzten Hauptspeicher-Image des Servers ausgeführt werden. Netztransaktionen zu fernen Beschleunigern werden als gemeinsame Speicheroperationen in der vereinheitlichten, gemeinsam genutzten Speicherstruktur des Servers ausgeführt. Indem die Vernetzungsaspekte beseitigt werden und alles lokal im Serversystem 102 ausgeführt wird, wird das Testen und Bereinigen erleichtert und effizienter gemacht.
  • Wie der Fachmann erkennen wird, können Aspekte der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogramm-Produkt verkörpert sein. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständig auf Hardware beruhenden Ausführungsform, einer vollständig auf Software beruhenden Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Software- und Hardware-Aspekte, die hierin alle allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden können, kombinierenden Ausführungsform annehmen. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computerprogramm-Produkts annehmen, das in einem oder mehreren computerlesbaren Medien, auf denen computerlesbarer Programmcode enthalten ist, verkörpert ist.
  • Jede beliebige Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Zu einem computerlesbaren Speichermedium können zum Beispiel, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-System, eine elektronische, magnetische, optische, elektromagnetische, Infrarot- oder Halbleiter-Vorrichtung oder -Einheit oder irgendeine geeignete Kombination der Vorerwähnten gehören. Zu spezielleren Beispielen (eine nichterschöpfende Liste) des computerlesbaren Speichermediums würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM, Random Access Memory), ein Festwertspeicher (ROM, Read-Only Memory), ein löschbarer programmierbarer Festwertspeicher (EPROM, Erasable Programmable Read-Only Memory, oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disc-Festwertspeicher (CD-ROM), eine Einheit zur optischen Speicherung, eine Einheit zur magnetischen Speicherung oder irgendeine geeignete Kombination der Vorerwähnten. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium irgendein materielles Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit ein bzw. einem Befehlsausführungssystem, eine bzw. einer Befehlsausführungsvorrichtung oder eine bzw. einer Befehlsausführungseinheit enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal zum Beispiel im Basisband oder als Teil einer Trägerwelle mit darin verkörpertem computerlesbarem Programmcode enthalten. Ein solches verbreitetes Signal kann jede beliebige aus einer Vielfalt von Formen annehmen, darunter elektromagnetische, optische oder irgendeine geeignete Kombination daraus, ohne darauf beschränkt zu sein. Ein computerlesbares Signalmedium kann jedes beliebige computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann.
  • Auf einem computerlesbaren Medium enthaltener Programmcode kann mittels irgendeines geeigneten Mediums, darunter drahtlos, drahtgebunden, Lichtwellenleiter, HF usw., ohne darauf beschränkt zu sein, oder irgendeiner geeigneten Kombination der Vorenwähnten übertragen werden.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in irgendeiner Kombination einer oder mehrerer Programmiersprachen, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ oder dergleichen und herkömmliche verfahrensorientierte Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen, geschrieben sein. 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 letzteren Szenario kann der entfernt angeordnete Computer über jede Art von Netzwerk, darunter ein lokales Netz (LAN, Local Area Network) oder ein weiträumiges Netz (WAN, Wide Area Network), mit dem Computer des Benutzers verbunden sein oder kann die Verbindung zu einem externen Computer hergestellt sein (zum Beispiel mittels eines Internet-Diensteanbieters über das Internet).
  • Nachfolgend werden Aspekte verschiedener bevorzugter Ausführungsformen der vorliegenden Erfindung anhand von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogramm-Produkten gemäß bevorzugten Ausführungsformen der vorliegenden Erfindung beschrieben. Es versteht sich von selbst, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogrammbefehle realisiert werden kann. Diese Computerprogrammbefehle können an einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung gegeben werden, um eine Maschine zu produzieren, so dass die Befehle, welche über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Realisierung der im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktionen/Vorgänge schaffen.
  • Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Weise zu funktionieren, so dass die im computerlesbaren Medium gespeicherten Befehle ein Erzeugnis produzieren, das Befehle enthält, welche die bzw. den im Block oder in den Blöcken von Ablaufplan und/oder Blockschaubildern angegebene(n) Funktion/Vorgang ausführen.
  • Die Computerprogrammbefehle können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu veranlassen, dass eine Reihe von Arbeitsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder den anderen Einheiten ausgeführt werden, um einen computer-realisierten Prozess zu produzieren, so dass die Befehle, welche auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Ausführen der im Block oder in den Blöcken von Ablaufplan und/oder Blockschaubildern angegebenen Funktionen/Vorgänge schaffen.
  • Betriebsgemäße Ablaufpläne
  • In den 6 bis 12 werden Architektur, Funktionalität und Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogramm-Produkten gemäß verschiedenen bevorzugten Ausführungsformen der vorliegenden Erfindung durch Ablaufpläne und Blockschaubilder veranschaulicht. In dieser Hinsicht kann jeder Block im Ablaufplan oder in den Blockschaubildern ein Codemodul, einen Codeabschnitt oder einen Codeteil darstellen, welches bzw. welcher einen oder mehrere ausführbare Befehle zum Realisieren der angegebenen logischen Verknüpfung(en) enthält. Es sollte auch bemerkt werden, dass bei manchen alternativen Ausführungen die im Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten können. Zum Beispiel können zwei aufeinanderfolgend gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder können die Blöcke manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach erforderlicher Funktionalität. Es wird auch bemerkt werden, dass jeder Block der Blockschaubilder und/oder des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder im Ablaufplan durch spezielle, auf Hardware beruhende Systeme, welche die angegebenen Funktionen oder Vorgänge ausführen, oder Kombinationen von Spezial-Hardware und Computerbefehlen realisiert werden können.
  • 6 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einer hybriden Datenverarbeitungsumgebung wie oben erörtert veranschaulicht. Der Betriebsablauf in 6 beginnt in Schritt 602 und verläuft direkt zu Schritt 604. Der Workload-Manager 118 analysiert in Schritt 604 einen Satz von zu einem Hybridsystem 112 gehörigen SLAs für durchsatzstarke Datenverarbeitung 120. Der Workload-Manager 118 überwacht in Schritt 606 einen ersten Satz von Ressourcen wie, ohne darauf begrenzt zu sein, Rechen-Kernels. Der Workload-Manager 118 überwacht in Schritt 606 einen zweiten Satz von Ressourcen wie, ohne darauf begrenzt zu sein, Rechen-Kernels. Der Workload-Manager 118 plant in Schritt 610, auf Grundlage des Überwachens, dynamisch einen Satz von parallelen Workload-Tasks über mindestens eine Ressource in dem ersten Satz von Ressourcen und mindestens eine Ressource in dem zweiten Satz von Ressourcen, wodurch er dem Satz von SLAs für durchsatzstarke Datenverarbeitung 120 im Wesentlichen genügt. Der Steuerungsablauf endet dann in Schritt 612.
  • 7 ist ein betriebsgemäßer Ablaufplan, welcher ein weiteres Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einer hybriden Datenverarbeitungsumgebung wie oben erörtert veranschaulicht. Der Betriebsablauf in 7 beginnt in Schritt 702 und verläuft direkt zu Schritt 704. Der Workload-Manager 118 ruft in Schritt 704 einen Satz von zu einem Hybridsystem 112 gehörigen SLAs für durchsatzstarke Datenverarbeitung 120 ab. Der Workload-Manager 118 unterhält in Schritt 706 einen ersten Satz von Warteschlangen 136, welcher zu einem ersten Satz von auf einem Serversystem 102 geplanten datenparallelen Workload-Tasks gehört. Der Workload-Manager 118 unterhält in Schritt 708 einen zweiten Satz von Warteschlangen 138, welcher zu einem zweiten Satz von auf einem Satz von Beschleunigersystemen 104 geplanten datenparallelen Workload-Tasks gehört. Der Workload-Manager 118 ermittelt in Schritt 710, dass ein Satz von Ressourcen entweder im Serversystem 102 oder im Satz von Beschleunigersystemen 104 verfügbar ist. Der Workload-Manager 118 plant in Schritt 712, in Erwiderung auf das Ermitteln, mindestens einen Teil entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks dynamisch um, wodurch er dem Satz von SLAs für durchsatzstarke Datenverarbeitung 120 im Wesentlichen genügt. Es ist zu beachten, dass die Workload wie oben erörtert gestohlen werden kann, statt dynamisch umgeplant zu werden. Der Steuerungsablauf endet dann in Schritt 714.
  • 8 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einer hybriden Datenverarbeitungsumgebung durch Umverteilen von Workloads, wie oben erörtert, veranschaulicht. Der Betriebsablauf in 8 beginnt in Schritt 802 und verläuft direkt zu Schritt 804. Der Workload-Manager 118 überwacht in Schritt 804 einen Satz von sowohl auf einem Serversystem 102 als auch auf einem Beschleunigersystem 104 geplanten Workloads. Der Workload-Manager 118 ermittelt in Schritt 806, ob mindestens eine der Workloads auf einem der Systeme 102, 104 eine Schwelle der SLA-Grenzen höchster Priorität überschritten hat. Es ist zu beachten, dass für eine Workload mit Durchsatz-SLA, Energie-SLA und Stapelverarbeitungsfenster-SLA Priorisierung möglich ist. SLA-Grenzen höchster Priorität bezieht sich auf die SLA der höchsten Priorität von den obenerwähnten drei SLA-Arten. Wenn das Ergebnis dieser Ermittlung negativ ist, kehrt der Steuerungsablauf zu Schritt 804 zurück. Wenn das Ergebnis dieser Ermittlung positiv ist, ermittelt der Workload-Manager 118 in Schritt 808, ob es wahrscheinlich ist, dass die Workload auf einem zweiten System, welches über die Ressourcenkapazität für eine zusätzliche Workload verfügt, SLA-Grenzen höchster Priorität erreicht. Wenn das Ergebnis dieser Ermittlung negativ ist, kehrt der Steuerungsablauf zu Schritt 806 zurück. Wenn das Ergebnis dieser Ermittlung positiv ist, ordnet der Workload-Manager 118 in Schritt 810 die mindestens eine Workload dynamisch dem zweiten System 102, 104 neu zu. Der Steuerungsablauf endet dann in Schritt 812.
  • 9 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Bereitstellens durchsatzstarker Datenverarbeitung in einer hybriden Datenverarbeitungsumgebung durch Umverteilen von Workloads auf Grundlage von SLAs, wie oben erörtert, veranschaulicht. Der Betriebsablauf in 9 beginnt in Schritt 902 und verläuft direkt zu Schritt 904. Der Workload-Manager 118 überwacht in Schritt 904 einen Satz von sowohl auf dem Serversystem 102 als auch auf dem Beschleunigersystem 104 geplanten Workloads. Der Workload-Manager 118 ermittelt in Schritt 906, dass eine Ressource in einem ersten der Systeme 102, 104 über die Kapazität für mindestens eine zusätzliche Workload verfügt. Der Workload-Manager 118 ermittelt in Schritt 908, ob das Neuzuordnen einer zusätzlichen Workload aus einem zweiten der Systeme 102, 104 gegen eine SLA-Anforderung verstoßen würde. Wenn das Ergebnis dieser Ermittlung positiv ist, endet der Steuerungsablauf in Schritt 910. Wenn das Ergebnis dieser Ermittlung negativ ist, ordnet der Workload-Manager 118 in Schritt 912 eine zur Zeit auf einem zweiten der Systeme 102, 104 geplante Workload dynamisch der Ressource im ersten der Systeme 102, 104 neu zu. Der Steuerungsablauf endet dann in Schritt 914.
  • 10 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel der Clusterbildung aus Workloads in einer hybriden Datenverarbeitungsumgebung wie oben erörtert veranschaulicht. Der Betriebsablauf in 10 beginnt in Schritt 1002 und verläuft direkt zu Schritt 1004. Der Workload-Manager 118 analysiert in Schritt 1004 eine Vielzahl von Workloads. Der Workload-Manager 118 identifiziert in Schritt 1006 einen Satz von Workloads in der Vielzahl von Workloads, welche im Wesentlichen gleichartige datenparallele Operationen durchführen. Der Workload-Manager 118 gruppiert in Schritt 1008 den Satz von Workloads zu einem einzigen Workload-Cluster. Der Workload-Manager 118 identifiziert in Schritt 1010 Workloads innerhalb des Clusters, welche voneinander abhängig sind. Der Workload-Manager 118 plant in Schritt 1012 gleichzeitig die Workloads innerhalb des Clusters und stimmt Workloads, die voneinander abhängig sind, zeitlich ab. Der Steuerungsablauf endet dann in Schritt 1014.
  • 11 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Verlagerns von Workloads in einer hybriden Datenverarbeitungsumgebung wie oben erörtert. Der Betriebsablauf in 11 beginnt in Schritt 1102 und verläuft direkt zu Schritt 1104. Der Workload-Manager 118 überwacht in Schritt 1104 einen Satz von auf einem Beschleuniger 104 geplanten Workloads. Der Workload-Manager 118 identifiziert in Schritt 1106 einen Satz von Ausführungsbedingungen für einen mit dem Satz von Workloads verknüpften Workload-Typ. Alternativ können ebenso SLA-Anforderungsschwellen wie, ohne darauf begrenzt zu sein, Leistungsschwellen und/oder Energieschwellen identifiziert werden. Der Workload-Manager 118 in Schritt 1108 ermittelt, ob eine Ausführungsbedingung eingetreten ist (und/oder eine Schwelle erreicht wurde). Wenn das Ergebnis dieser Ermittlung negativ ist, fährt der Workload-Manager fort, zu ermitteln, ob eine Bedingung eingetreten ist oder eine Schwelle erreicht wurde. Wenn das Ergebnis dieser Ermittlung positiv ist, sichert der Workload-Manager 118 in Schritt 1110 Workload-Daten, die benötigt werden, um die mit der Bedingung und/oder Schwelle verknüpfte Workload auf das Serversystem 102 zu verlagern. Der Workload-Manager 118 verlagert dann in Schritt 1112 die Workload auf das Serversystem 102 und setzt die Ausführung der Workload unter Verwendung der gesicherten Workload-Daten fort. Der Steuerungsablauf endet dann in Schritt 1114.
  • 12 ist ein betriebsgemäßer Ablaufplan, welcher ein Beispiel des Konfigurierens eines Serversystems in einer hybriden Datenverarbeitungsumgebung zum Durchführen von Beschleuniger-Workloads wie oben erörtert veranschaulicht. Der Betriebsablauf in 12 beginnt in Schritt 1202 und verläuft direkt zu Schritt 1204. Der Workload-Manager 118 ordnet in Schritt 1204 eine Vielzahl von Pseudo-Beschleunigerressourcen 508, 510, 512 im Serversystem 102 zu. Die Mischung und die Ordinalität von Pseudo-Beschleunigerressourcen und physischen Beschleunigerressourcen wird aus Durchsatzdatenverarbeitung, Energie-SLAs und Stapelverarbeitungsfenster-SLAs abgeleitet. Ein Task ruft in Schritt 1206 einen Rechen-Kernel im Beschleunigersystem 104 oder im Pseudo-Beschleunigersystem auf. Die Kernel-Planungsfunktion 519 plant in Schritt 1208 eine physische Beschleuniger-Rechenressource oder Pseudo-Beschleuniger-Rechenressource im Serversystem 102 oder Beschleuniger, um dem Kernel-Aufruf zu genügen. Der Steuerungsablauf endet dann in Schritt 1210.
  • Informationsverarbeitungssystem
  • 13 ist ein Blockschaubild, welches eine ausführlichere Ansicht eines Informationsverarbeitungssystems 1300 zeigt, das in der Betriebsumgebung 100 verwendet werden kann. Das Informationsverarbeitungssystem 1300 beruht auf einem passend konfigurierten Verarbeitungssystem, welches dafür eingerichtet ist, eine oder mehrere bevorzugte Ausführungsformen der vorliegenden Erfindung zu realisieren. Entsprechend kann jedes beliebige passend konfigurierte Verarbeitungssystem von bevorzugten Ausführungsformen der vorliegenden Erfindung als das Informationsverarbeitungssystem 1300 verwendet werden. Es ist zu beachten, dass das Informationsverarbeitungssystem 1300 entweder das Serversystem 102 oder das Beschleunigersystem 104 mit seinen jeweiligen Komponenten wie in 1 gezeigt sein kann.
  • Das Informationsverarbeitungssystem 1300 enthält einen Computer 1302. Der Computer 1302 hat einen Prozessor (Prozessoren) 1304 (wie Prozessoren 114 oder 116), welcher bzw. welche mit einem Hauptspeicher 1306, einer Massenspeicher-Schnittstelle 1308 und einer Netzadapter-Hardware 1310 verbunden ist bzw. sind. Ein Systembus 1312 verbindet diese Systemkomponenten untereinander. Der Hauptspeicher 1306 enthält in einer Ausführungsform entweder die Komponenten des Serversystems 102 wie den Workload-Manager 118 (und seine Komponenten), SLAs 120 und Workload-Warteschlange 136 oder die Komponenten des Beschleunigers 104 wie die oben erörterte Workload-Warteschlange 138.
  • Obwohl sie als gleichzeitig im Hauptspeicher 1306 resident dargestellt sind, ist es klar, dass es nicht erforderlich ist, dass jeweilige Komponenten des Hauptspeichers 1306 jederzeit oder sogar gleichzeitig vollständig im Hauptspeicher 1306 resident sind. In einer Ausführungsform nutzt das Informationsverarbeitungssystem 1300 herkömmliche Mechanismen zur virtuellen Adressierung, um Programmen zu gestatten, sich zu verhalten, als ob sie anstelle des Zugriffs auf mehrere kleine Speicherentitäten wie den Hauptspeicher 1306 und die Datenspeichereinrichtung 1316 Zugriff auf eine einzige große Speicherentität hätten, welche hierin als Computersystemspeicher bezeichnet wird. Es ist zu beachten, dass der Begriff ”Computersystemspeicher” hierin verwendet wird, um den gesamten virtuellen Speicher des Informationsverarbeitungssystems 1300 generisch zu bezeichnen.
  • Die Massenspeicher-Schnittstelle 1308 wird verwendet, um Massenspeicher-Einrichtungen wie Massenspeicher-Einrichtung 1314 mit dem Informationsverarbeitungssystem 1300 zu verbinden. Eine bestimmte Art von Datenspeichereinrichtung ist ein optisches Laufwerk wie ein CD-/Digital Video Disc-(DVD-)Laufwerk, welches verwendet werden kann, um Daten auf einem computerlesbaren Medium oder Speicherprodukt wie (ohne darauf begrenzt zu sein) einer CD/DVD 1316 zu speichern und von diesem zu lesen. Eine weitere Art von Datenspeichereinrichtung ist eine Datenspeichereinrichtung, welche dafür konfiguriert ist, zum Beispiel(NTFS-)Dateisystem-Operationen zu unterstützen.
  • Obwohl nur eine CPU 1304 für Computer 1302 dargestellt ist, können Computersysteme mit mehreren CPUs ebenso wirksam verwendet werden. Bevorzugte Ausführungsformen der vorliegenden Erfindung enthalten ferner Schnittstellen, die jeweils separate, voll programmierte Mikroprozessoren aufweisen, welche verwendet werden, um die Verarbeitung aus der CPU 1304 auszulagern. Ein im Hauptspeicher enthaltenes Betriebssystem (nicht gezeigt) ist ein geeignetes Multitasking-Betriebssystem wie die Betriebssysteme Linux®, UNIX®, Microsoft® Windows XP und Microsoft® Windows Server 2003. Linux ist ein eingetragenes Warenzeichen von Linus Torvalds in den Vereinigten Staaten und/oder in anderen Ländern. UNIX ist ein eingetragenes Warenzeichen von The Open Group in den Vereinigten Staaten und anderen Ländern. Microsoft und Windows und das Windows-Logo sind Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und/oder in anderen Ländern. Bevorzugte Ausführungsformen der vorliegenden Erfindung sind fähig, irgendein anderes geeignetes Betriebssystem zu verwenden. Einige bevorzugte Ausführungsformen der vorliegenden Erfindung verwenden Architekturen wie einen objektorientierten Bezugsmechanismus, welcher gestattet, Anweisungen der Komponenten des Betriebssystems (nicht gezeigt) auf irgendeinem innerhalb des Informationsverarbeitungssystems 1300 vorhandenen Prozessor auszuführen. Die Netzadapter-Hardware 1310 wird verwendet, um eine Schnittstelle zu einem Netz 108 bereitzustellen. Bevorzugte Ausführungsformen der vorliegenden Erfindung sind fähig, dafür eingerichtet zu werden, mit beliebigen Datenaustauschverbindungen einschließlich der heutigen analogen und/oder digitalen Techniken oder über einen zukünftigen Vernetzungsmechanismus zu arbeiten.
  • Obwohl die beispielhaften bevorzugten Ausführungsformen der vorliegenden Erfindung im Kontext eines voll funktionsfähigen Computersystems beschrieben werden, wird der Fachmann erkennen, dass verschiedene Ausführungsformen fähig sind, als ein Programmprodukt auf CD oder DVD, z. B. CD 1316, CD-ROM oder auf einer anderen Form von Aufzeichnungsmedium oder über eine beliebige Art von elektronischem Übertragungsmechanismus vertrieben zu werden.
  • Nicht-begrenzende Beispiele
  • Obwohl bestimmte bevorzugte Ausführungsformen der vorliegenden Erfindung offenbart wurden, wird der Fachmann verstehen, dass Änderungen an den bestimmten Ausführungsformen vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen. Der Umfang der Erfindung soll deshalb nicht auf die bestimmten Ausführungsformen beschränkt werden, und die beigefügten Ansprüche sollen jegliche derartigen Anwendungen, Modifikationen und Ausführungsformen innerhalb des Umfangs der vorliegenden Erfindung einschließen.
  • Obwohl verschiedene beispielhafte Ausführungsformen der vorliegenden Erfindung im Kontext eines voll funktionsfähigen Computersystems erörtert wurden, wird der Fachmann erkennen, dass verschiedene Ausführungsformen fähig sind, als ein computerlesbares Speichermedium oder ein Programmprodukt auf CD oder DVD, z. B. CD, CD-ROM oder auf einer anderen Form von Aufzeichnungsmedium und/oder gemäß alternativen Ausführungsformen über eine beliebige Art von elektronischem Übertragungsmechanismus vertrieben zu werden.
  • Um jeden Zweifel zu vermeiden, ist zu beachten, dass der Ausdruck „aufweist” oder „enthält”, wie er hierin überall in der Beschreibung und in den Ansprüchen verwendet wird, nicht „besteht nur aus” bedeutet.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 7694306 [0004]

Claims (19)

  1. Verfahren mit einem Informationsverarbeitungssystem zum Verwalten von Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem, welches Verfahren die folgenden Schritte aufweist: Abrufen eines Satzes von Servicezielvereinbarungen (SLAs) für durchsatzstarke Datenverarbeitung, wobei der Satz von SLAs für durchsatzstarke Datenverarbeitung mit einem hybriden Verarbeitungssystem verknüpft ist, welches mindestens ein Serversystem, das eine erste Architektur aufweist, und einen Satz von Beschleunigersystemen, die jeweils eine zweite Architektur aufweisen, welche sich von der ersten Architektur unterscheidet, enthält; Identifizieren eines ersten Satzes von auf dem Serversystem geplanten datenparallelen Workload-Tasks und eines zweiten Satzes von mit dem Satz von Beschleunigersystemen geplanten datenparallelen Workload-Tasks; Ermitteln, dass ein Satz von Ressourcen in einem ersten des Serversystems und des Satzes von Beschleunigersystemen zur Zeit verfügbar ist; und dynamisches Umplanen, in Erwiderung auf den Schritt des Ermittelns, mindestens eines Teils entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks auf ein zweites des mindestens einen Serversystems und des Satzes von Beschleunigersystemen, wobei das dynamische Umplanen dem Satz von SLAs für durchsatzstarke Datenverarbeitung im Wesentlichen genügt.
  2. Verfahren nach Anspruch 1, welches außerdem den folgenden Schritt aufweist: Unterhalten eines Satzes von Warteschlangen, welche zu dem ersten Satz von datenparallelen Workload-Tasks und dem zweiten Satz von datenparallelen Workload-Tasks gehören, wobei jeder Task im ersten Satz von datenparallelen Workload-Tasks und im zweiten Satz von datenparallelen Workload-Tasks mit einem Eintrag in dem Satz von Warteschlangen verknüpft ist.
  3. Verfahren nach Anspruch 2, welches außerdem den folgenden Schritt aufweist: Zuordnen des Satzes von Warteschlangen zu einem Speicher, welcher von dem mindestens einen Serversystem und dem Satz von Beschleunigersystemen gemeinsam genutzt wird.
  4. Verfahren nach Anspruch 2 oder 3, bei welchem der Schritt des dynamischen Umplanens außerdem die folgenden Schritte aufweist: Überwachen des Satzes von Warteschlangen; Ermitteln, in Erwiderung auf den Schritt des Überwachens, dass eine erste Warteschlange in dem Satz von Warteschlangen mindestens einen datenparallelen Workload-Task in dem ersten Satz von datenparallelen Workload-Tasks enthält, welcher auf seine Ausführung wartet; Ermitteln, dass der Satz von Ressourcen zur Zeit in dem Satz von Beschleunigersystemen verfügbar ist; und Umplanen der mindestens einen datenparallelen Workload-Task im ersten Satz von datenparallelen Workload-Tasks auf den Satz von Beschleunigersystemen in Erwiderung auf das Ermitteln, dass der Satz von Ressourcen zur Zeit in dem Satz von Beschleunigersystemen verfügbar ist.
  5. Verfahren nach einem der Ansprüche 2 bis 4, bei welchem der Schritt des dynamischen Umplanens außerdem aufweist: Überwachen des Satzes von Warteschlangen; Ermitteln, in Erwiderung auf den Schritt des Überwachens, dass eine zweite Warteschlange in dem Satz von Warteschlangen mindestens einen datenparallelen Workload-Task in dem zweiten Satz von datenparallelen Workload-Tasks enthält, welcher auf seine Ausführung wartet; und Ermitteln, dass der Satz von Ressourcen zur Zeit in dem mindestens einen Serversystem verfügbar ist; Umplanen mindestens eines Teils eines Satzes von Eingabedaten, welche zu dem mindestens einen datenparallelen Workload-Task in dem zweiten Satz von datenparallelen Workload-Tasks gehören, auf das mindestens eine Serversystem in Erwiderung auf das Ermitteln, dass der Satz von Ressourcen zur Zeit in dem mindestens einen Serversystem verfügbar ist.
  6. Verfahren nach einem der vorangehenden Ansprüche, wobei das erste des mindestens einen Serversystems und des Satzes von Beschleunigersystemen das mindestens eine Serversystem ist und wobei das zweite des mindestens einen Serversystems und des Satzes von Beschleunigersystemen der Satz von Beschleunigersystemen ist.
  7. Verfahren nach einem der vorangehenden Ansprüche, wobei das erste des mindestens einen Serversystems und des Satzes von Beschleunigersystemen der Satz von Beschleunigersystemen ist und wobei das zweite des mindestens einen Serversystems und des Satzes von Beschleunigersystemen das mindestens eine Serversystem ist.
  8. Verfahren nach einem der vorangehenden Ansprüche, wobei das erste des mindestens einen Serversystems und des Satzes von Beschleunigersystemen das mindestens eine Serversystem ist und wobei der Schritt des Ermittelns, dass der Satz von Ressourcen zur Zeit verfügbar ist, außerdem den folgenden Schritt aufweist: Ermitteln, dass das mindestens eine Serversystem einen Satz von verfügbaren Datenverarbeitungsoperationen aufweist.
  9. Verfahren nach Anspruch 8, wobei der Satz von verfügbaren Datenverarbeitungsoperationen mindestens aus einem der folgenden Punkte besteht: vorab erworbene Millionen-Anweisungen-pro-Sekunde-Operationen; ungenutzte Gleitkomma-Operationen; und ungenutzte Prozessorkapazität aufgrund eines Eingabe-/Ausgabe-Blockierungszustands.
  10. Verfahren nach einem der vorangehenden Ansprüche, wobei der Schritt des dynamischen Umplanens außerdem die folgenden Schritte aufweist: Vergleichen einer Leistung/Durchsatz-Anforderung wie in dem Satz von SLAs für durchsatzstarke Datenverarbeitung angegeben mit einer aktuellen, zum ersten Satz von datenparallelen Workload-Tasks und/oder zum zweiten Satz von datenparallelen Workload-Tasks gehörenden Leistung/Durchsatzrate; und Ermitteln, in Erwiderung auf den Schritt des Vergleichens, dass die aktuelle Leistung/Durchsatzrate des hybriden Verarbeitungssystems unter einer gegebenen Schwelle liegt, wobei der Schritt des dynamischen Umplanens in Erwiderung auf das Ermitteln, dass die aktuelle Leistung/Durchsatzrate des hybriden Verarbeitungssystems unter einer gegebenen Schwelle liegt, erfolgt und die aktuelle Leistung/Durchsatzrate erhöht, um der gegebenen Schwelle mindestens im Wesentlichen zu genügen.
  11. System zum Verwalten von Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem, welches System aufweist: einen Speicher; einen Prozessor, welcher datenaustauschfähig mit dem Speicher verbunden ist; und einen Workload-Manager, welcher datenaustauschfähig mit dem Speicher und dem Prozessor verbunden ist, welcher Workload-Manager aufweist: eine Abrufkomponente zum Abrufen eines Satzes von Servicezielvereinbarungen (SLAs) für durchsatzstarke Datenverarbeitung, wobei der Satz von SLAs für durchsatzstarke Datenverarbeitung mit einem hybriden Verarbeitungssystem verknüpft ist, welches mindestens ein Serversystem, das eine erste Architektur aufweist, und einen Satz von Beschleunigersystemen, die jeweils eine zweite Architektur aufweisen, welche sich von der ersten Architektur unterscheidet, enthält; eine Identifizierungskomponente zum Identifizieren eines ersten Satzes von auf dem mindestens einen Serversystem geplanten datenparallelen Workload-Tasks und eines zweiten Satzes von mit dem Satz von Beschleunigersystemen geplanten datenparallelen Workload-Tasks; eine Ermittlungskomponente zum Ermitteln, dass ein Satz von Ressourcen in einem ersten des mindestens einen Serversystems und des Satzes von Beschleunigersystemen zur Zeit verfügbar ist; und eine Umplanungskomponente zum dynamischen Umplanen, in Erwiderung auf das Ermitteln durch die Ermittlungskomponente, mindestens eines Teils entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks auf ein zweites des mindestens einen Serversystems und des Satzes von Beschleunigersystemen, wobei das dynamische Umplanen dem Satz von SLAs für durchsatzstarke Datenverarbeitung im Wesentlichen genügt.
  12. System zum Verwalten von Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem, welches System aufweist: einen Speicher; einen Prozessor, welcher datenaustauschfähig mit dem Speicher verbunden ist; und einen Workload-Manager, welcher datenaustauschfähig mit dem Speicher und dem Prozessor verbunden ist, welcher Workload-Manager dafür eingerichtet ist, ein Verfahren durchzuführen, welches aufweist: Abrufen eines Satzes von Servicezielvereinbarungen (SLAs) für durchsatzstarke Datenverarbeitung, wobei der Satz von SLAs für durchsatzstarke Datenverarbeitung mit einem hybriden Verarbeitungssystem verknüpft ist, welches mindestens ein Serversystem, das eine erste Architektur aufweist, und einen Satz von Beschleunigersystemen, die jeweils eine zweite Architektur aufweisen, welche sich von der ersten Architektur unterscheidet, enthält; Identifizieren eines ersten Satzes von auf dem mindestens einen Serversystem geplanten datenparallelen Workload-Tasks und eines zweiten Satzes von mit dem Satz von Beschleunigersystemen geplanten datenparallelen Workload-Tasks; Ermitteln, dass ein Satz von Ressourcen in einem ersten des mindestens einen Serversystems und des Satzes von Beschleunigersystemen zur Zeit verfügbar ist; und dynamisches Umplanen, in Erwiderung auf das Ermitteln, mindestens eines Teils entweder des ersten Satzes von datenparallelen Workload-Tasks oder des zweiten Satzes von datenparallelen Workload-Tasks auf ein zweites des mindestens einen Serversystems und des Satzes von Beschleunigersystemen, wobei das dynamische Umplanen dem Satz von SLAs für durchsatzstarke Datenverarbeitung im Wesentlichen genügt.
  13. System nach Anspruch 12, wobei das Verfahren außerdem aufweist: Unterhalten eines Satzes von Warteschlangen, welche zu dem ersten Satz von datenparallelen Workload-Tasks und dem zweiten Satz von datenparallelen Workload-Tasks gehören, wobei jeder Task im ersten Satz von datenparallelen Workload-Tasks und im zweiten Satz von datenparallelen Workload-Tasks mit einem Eintrag in dem Satz von Warteschlangen verknüpft ist; und Zuordnen des Satzes von Warteschlangen zu einem Speicher, welcher von dem mindestens einen Serversystem und dem Satz von Beschleunigersystemen gemeinsam genutzt wird.
  14. System nach Anspruch 13, bei welchem das dynamische Umplanen außerdem aufweist: Überwachen des Satzes von Warteschlangen; Ermitteln, auf Grundlage des Überwachens, dass eine erste Warteschlange in dem Satz von Warteschlangen mindestens eine datenparallele Workload-Task in dem ersten Satz von datenparallelen Workload-Tasks enthält, welcher auf seine Ausführung wartet; Ermitteln, dass der Satz von Ressourcen zur Zeit in dem Satz von Beschleunigersystemen verfügbar ist; und Umplanen mindestens eines Teils eines Satzes von Eingabedaten, welche zu dem mindestens einen datenparallelen Workload-Task in dem ersten Satz von datenparallelen Workload-Tasks gehören, auf den Satz von Beschleunigersystemen in Erwiderung auf das Ermitteln, dass der Satz von Ressourcen zur Zeit in dem Satz von Beschleunigersystemen verfügbar ist.
  15. System nach Anspruch 14 oder 15, bei welchem das dynamische Umplanen ferner aufweist: Überwachen des Satzes von Warteschlangen; Ermitteln, in Erwiderung auf das Überwachen, dass eine zweite Warteschlange in dem Satz von Warteschlangen mindestens einen datenparallelen Workload-Task in dem zweiten Satz von datenparallelen Workload-Tasks enthält, welcher auf seine Ausführung wartet; Ermitteln, dass der Satz von Ressourcen zur Zeit in dem mindestens einen Serversystem verfügbar ist; und Umplanen der mindestens einen datenparallelen Workload-Task im zweiten Satz von datenparallelen Workload-Tasks auf das mindestens eine Serversystem in Erwiderung auf das Ermitteln, dass der Satz von Ressourcen zur Zeit in dem mindestens einen Serversystem verfügbar ist.
  16. System nach einem der Ansprüche 12 bis 15, wobei das erste des mindestens einen Serversystems und des Satzes von Beschleunigersystemen das mindestens eine Serversystem ist und wobei der Workload-Manager außerdem fähig ist, zu ermitteln, dass das mindestens eine Serversystem einen Satz von verfügbaren Datenverarbeitungsoperationen aufweist.
  17. System nach einem der Ansprüche 12 bis 16, wobei das dynamische Umplanen ferner aufweist: Vergleichen einer Leistung/Durchsatz-Anforderung wie in dem Satz von SLAs für durchsatzstarke Datenverarbeitung angegeben mit einer aktuellen, zum ersten Satz von datenparallelen Workload-Tasks und/oder zum zweiten Satz von datenparallelen Workload-Tasks gehörenden Leistung/Durchsatzrate; und Ermitteln, in Erwiderung auf das Vergleichen, dass die aktuelle Leistung/Durchsatzrate des hybriden Verarbeitungssystems unter einer gegebenen Schwelle liegt, wobei das dynamische Umplanen in Erwiderung auf das Ermitteln, dass die aktuelle Leistung/Durchsatzrate des hybriden Verarbeitungssystems unter einer gegebenen Schwelle liegt, erfolgt und die aktuelle Leistung/Durchsatzrate erhöht, um der gegebenen Schwelle mindestens im Wesentlichen zu genügen.
  18. Computerprogramm-Produkt zum Verwalten von Workloads in einer durchsatzstarken Datenverarbeitungsumgebung für ein hybrides Verarbeitungssystem, welches Computerprogramm-Produkt aufweist: ein computerlesbares Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren gemäß einem der Ansprüche 1 bis 10 auszuführen.
  19. Computerprogramm, welches auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, welches Teile von Software-Code aufweist, wenn das Programm auf einem Computer ausgeführt wird, um das Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.
DE112010005705T 2010-08-31 2010-11-08 Umplanen von Workload in einer hybriden Datenverarbeitungsumgebung Ceased DE112010005705T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/872,793 2010-08-31
US12/872,793 US8914805B2 (en) 2010-08-31 2010-08-31 Rescheduling workload in a hybrid computing environment
PCT/EP2010/067050 WO2012028213A1 (en) 2010-08-31 2010-11-08 Re-scheduling workload in a hybrid computing environment

Publications (1)

Publication Number Publication Date
DE112010005705T5 true DE112010005705T5 (de) 2013-05-02

Family

ID=43982175

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010005705T Ceased DE112010005705T5 (de) 2010-08-31 2010-11-08 Umplanen von Workload in einer hybriden Datenverarbeitungsumgebung

Country Status (5)

Country Link
US (1) US8914805B2 (de)
CN (1) CN103069390B (de)
DE (1) DE112010005705T5 (de)
GB (1) GB2496813B (de)
WO (1) WO2012028213A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464104B2 (en) * 2010-09-10 2013-06-11 International Business Machines Corporation Mobility of versioned workload partitions
US9250962B2 (en) * 2011-01-10 2016-02-02 International Business Machines Corporation Optimizing energy use in a data center by workload scheduling and management
US20120324456A1 (en) * 2011-06-16 2012-12-20 Microsoft Corporation Managing nodes in a high-performance computing system using a node registrar
US8793766B2 (en) * 2012-03-13 2014-07-29 International Business Machines Corporation Method and apparatus for security-aware elasticity of application and services
US9081610B2 (en) 2012-06-18 2015-07-14 Hitachi, Ltd. Method and apparatus to maximize return on investment in hybrid cloud environment
WO2014082094A1 (en) * 2012-11-26 2014-05-30 Stowe Jason A Transparently routing job submissions between disparate environments
US10474502B2 (en) * 2013-01-14 2019-11-12 Microsoft Technology Licensing, Llc Multi-tenant license enforcement across job requests
US9086925B2 (en) * 2013-01-18 2015-07-21 Nec Laboratories America, Inc. Methods of processing core selection for applications on manycore processors
US9367357B2 (en) * 2013-01-18 2016-06-14 Nec Corporation Simultaneous scheduling of processes and offloading computation on many-core coprocessors
EP2972907B1 (de) * 2013-03-15 2019-09-25 Intel Corporation Arbeitsdiebstahl in heterogenen computersystemen
US9223816B2 (en) * 2013-05-22 2015-12-29 International Business Machines Corporation Opening a data set
US10275276B2 (en) 2013-08-19 2019-04-30 International Business Machines Corporation Migrating jobs from a source server from which data is migrated to a target server to which the data is migrated
US9456071B2 (en) * 2013-11-12 2016-09-27 At&T Intellectual Property I, L.P. Extensible kernel for adaptive application enhancement
US9270659B2 (en) 2013-11-12 2016-02-23 At&T Intellectual Property I, L.P. Open connection manager virtualization at system-on-chip
US20150145871A1 (en) * 2013-11-22 2015-05-28 Nvidia Corporation System, method, and computer program product to enable the yielding of threads in a graphics processing unit to transfer control to a host processor
US9652294B2 (en) 2013-11-25 2017-05-16 International Business Machines Corporation Cross-platform workload processing
US9626226B2 (en) 2013-11-25 2017-04-18 International Business Machines Corporation Cross-platform workload processing
US10719562B2 (en) * 2013-12-13 2020-07-21 BloomReach Inc. Distributed and fast data storage layer for large scale web data services
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US10455041B2 (en) 2014-02-20 2019-10-22 Rovio Entertainment Stateful service with partial replication
EP2911057A1 (de) * 2014-02-20 2015-08-26 Rovio Entertainment Ltd Zustandsbehafteter Dienst mit partieller Vervielfältigung
US10509686B2 (en) * 2014-03-26 2019-12-17 Unisys Corporation Distributable computational units in a continuous computing fabric environment
US9800651B2 (en) 2014-04-04 2017-10-24 Ca, Inc. Application-specific assessment of cloud hosting suitability
US10218645B2 (en) * 2014-04-08 2019-02-26 Mellanox Technologies, Ltd. Low-latency processing in a network node
US9280383B2 (en) * 2014-06-12 2016-03-08 International Business Machines Corporation Checkpointing for a hybrid computing node
US9400687B2 (en) 2014-12-11 2016-07-26 International Business Machines Corporation Method and system for dynamic pool reallocation
US9904574B2 (en) * 2014-12-23 2018-02-27 Successfactors, Inc Parallel computing without requiring antecedent code deployment
US9606836B2 (en) * 2015-06-09 2017-03-28 Microsoft Technology Licensing, Llc Independently networkable hardware accelerators for increased workflow optimization
US20160378551A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Adaptive hardware acceleration based on runtime power efficiency determinations
US10768935B2 (en) * 2015-10-29 2020-09-08 Intel Corporation Boosting local memory performance in processor graphics
MX2018006538A (es) * 2015-11-30 2019-01-10 Nextracker Inc Sistemas y metodos para programar y ejecutar automaticamente pruebas in situ de sistemas electricos y mecanicos.
CN105760220B (zh) * 2016-01-29 2019-05-17 湖南大学 一种基于混合内存的任务与数据调度方法和装置
US10268523B2 (en) * 2016-03-11 2019-04-23 City University Of Hong Kong System and method for operating a server farm
US10063493B2 (en) * 2016-05-16 2018-08-28 International Business Machines Corporation Application-based elastic resource provisioning in disaggregated computing systems
US10338970B2 (en) 2016-09-20 2019-07-02 International Business Machines Corporation Multi-platform scheduler for permanent and transient applications
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
US10326696B2 (en) 2017-01-02 2019-06-18 Microsoft Technology Licensing, Llc Transmission of messages by acceleration components configured to accelerate a service
US10320677B2 (en) * 2017-01-02 2019-06-11 Microsoft Technology Licensing, Llc Flow control and congestion management for acceleration components configured to accelerate a service
US10740146B2 (en) 2017-02-10 2020-08-11 Xilinx, Inc. Migrating virtual machines between compute systems by transmitting programmable logic accelerator state
US20180287949A1 (en) * 2017-03-29 2018-10-04 Intel Corporation Throttling, sub-node composition, and balanced processing in rack scale architecture
CN110326021A (zh) * 2017-04-01 2019-10-11 英特尔公司 用于图形处理器上的加速计算的执行单元共享混合技术
EP3642765A4 (de) 2017-06-19 2021-04-07 Rigetti & Co., Inc. Verteiltes quantencomputersystem
US20190068466A1 (en) * 2017-08-30 2019-02-28 Intel Corporation Technologies for auto-discovery of fault domains
TWI658365B (zh) * 2017-10-30 2019-05-01 緯創資通股份有限公司 連接模組
US10620991B1 (en) * 2018-01-31 2020-04-14 VirtuStream IP Holding Company Workload migration in multi-cloud environments
US11010145B1 (en) 2018-02-21 2021-05-18 Rigetti & Co, Inc. Retargetable compilation for quantum computing systems
US10877766B2 (en) * 2018-05-24 2020-12-29 Xilinx, Inc. Embedded scheduling of hardware resources for hardware acceleration
US10831627B2 (en) 2018-07-23 2020-11-10 International Business Machines Corporation Accelerator monitoring and testing
US10817339B2 (en) * 2018-08-09 2020-10-27 International Business Machines Corporation Accelerator validation and reporting
US10942824B2 (en) * 2018-10-08 2021-03-09 Hewlett Packard Enterprise Development Lp Programming model and framework for providing resilient parallel tasks
US10705993B2 (en) 2018-11-19 2020-07-07 Xilinx, Inc. Programming and controlling compute units in an integrated circuit
US11271994B2 (en) * 2018-12-28 2022-03-08 Intel Corporation Technologies for providing selective offload of execution to the edge
US11494237B2 (en) 2019-06-26 2022-11-08 Microsoft Technology Licensing, Llc Managing workloads of a deep neural network processor
US11675630B2 (en) * 2019-08-15 2023-06-13 Intel Corporation Methods and apparatus to configure heterogenous components in an accelerator
CN113760472A (zh) * 2020-06-03 2021-12-07 北京沃东天骏信息技术有限公司 推数任务调度的方法和装置
US11386034B2 (en) 2020-10-30 2022-07-12 Xilinx, Inc. High throughput circuit architecture for hardware acceleration
CN112738199B (zh) * 2020-12-25 2023-02-17 新东方教育科技集团有限公司 调度方法和调度系统
KR20220107621A (ko) * 2021-01-25 2022-08-02 삼성전자주식회사 가속기 자원 관리 방법 및 장치
CN115437739A (zh) * 2021-06-02 2022-12-06 伊姆西Ip控股有限责任公司 虚拟化系统的资源管理方法、电子设备和计算机程序产品
RU2769967C1 (ru) * 2021-06-08 2022-04-11 Федеральное государственное бюджетное образовательное учреждение высшего образования «Юго-Западный государственный университет» Устройство поиска нижней оценки размещения в гибридных многопроцессорных системах при направленной передаче информации

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694306B2 (en) 2003-09-25 2010-04-06 International Business Machines Corporation Balancing computational load across a plurality of processors

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5031089A (en) * 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
US6609131B1 (en) 1999-09-27 2003-08-19 Oracle International Corporation Parallel partition-wise joins
US6823351B1 (en) 2000-05-15 2004-11-23 Sun Microsystems, Inc. Work-stealing queues for parallel garbage collection
US7565651B1 (en) 2000-05-25 2009-07-21 Oracle International Corporation Parallel task scheduling system for computers
EP1248431B1 (de) * 2001-03-27 2007-10-31 Sony Deutschland GmbH Verfahren um End-to-End Quality of Service Verhandlungen für verteilte Multimedia Anwendungen zu erzielen
EP1338956A1 (de) * 2002-02-20 2003-08-27 STMicroelectronics S.A. Elektronische Datenverarbeitungsvorrichtung, insbesondere Audioprozessor für einen Audio/Videodekoder
US7322034B2 (en) 2002-06-14 2008-01-22 Hewlett-Packard Development Company, L.P. Method and system for dynamically allocating computer system resources
US7167916B2 (en) 2002-08-30 2007-01-23 Unisys Corporation Computer OS dispatcher operation with virtual switching queue and IP queues
KR100593090B1 (ko) * 2003-12-11 2006-06-26 엘지전자 주식회사 진공 청소기의 집진 유니트
US7694298B2 (en) 2004-12-10 2010-04-06 Intel Corporation Method and apparatus for providing virtual server blades
US7797704B2 (en) 2005-03-30 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for performing work by one of plural threads using a lockable resource
WO2008127622A2 (en) * 2007-04-11 2008-10-23 Apple Inc. Data parallel computing on multiple processors
US8286196B2 (en) * 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US8108633B2 (en) * 2007-04-11 2012-01-31 Apple Inc. Shared stream memory on multiple processors
US8312464B2 (en) 2007-08-28 2012-11-13 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks by modifying tasks
US8607237B2 (en) 2008-06-02 2013-12-10 Microsoft Corporation Collection with local lists for a multi-processor system
US8103480B2 (en) * 2008-10-31 2012-01-24 Hewlett-Packard Development Company, L.P. Evaluating service level agreement violations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694306B2 (en) 2003-09-25 2010-04-06 International Business Machines Corporation Balancing computational load across a plurality of processors

Also Published As

Publication number Publication date
WO2012028213A1 (en) 2012-03-08
CN103069390B (zh) 2017-02-22
GB201303478D0 (en) 2013-04-10
GB2496813A (en) 2013-05-22
GB2496813B (en) 2017-12-06
US8914805B2 (en) 2014-12-16
US20120054771A1 (en) 2012-03-01
CN103069390A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
DE112010005705T5 (de) Umplanen von Workload in einer hybriden Datenverarbeitungsumgebung
Gounaris et al. A methodology for spark parameter tuning
Warneke et al. Exploiting dynamic resource allocation for efficient parallel data processing in the cloud
US8069446B2 (en) Parallel programming and execution systems and techniques
Ousterhout et al. Monotasks: Architecting for performance clarity in data analytics frameworks
DE112012003716B4 (de) Erzeugen von kompiliertem Code, der Registeraktivität angibt
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
US8595732B2 (en) Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme
DE102013205572B4 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
Iordache et al. Resilin: Elastic mapreduce over multiple clouds
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
US20150052530A1 (en) Task-based modeling for parallel data integration
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE102020108374A1 (de) Verfahren und vorrichtung zur laufzeitmehrfachplanung von software, die in einem heterogenen system ausgeführt wird
US20240111586A1 (en) Multi-policy intelligent scheduling method and apparatus oriented to heterogeneous computing power
CN109240825A (zh) 弹性任务调度方法、装置、设备及计算机可读存储介质
Liew et al. Towards optimising distributed data streaming graphs using parallel streams
US20160313924A1 (en) Tracking ownership of memory in a data processing system through use of a memory monitor
DE112021005927T5 (de) Patchen von arbeitsabläufen
US10599479B2 (en) Resource sharing management of a field programmable device
WO2022266263A1 (en) Allocating of computing resources for applications
US20210182412A1 (en) System and method for managing data object creation
Mian et al. Managing data-intensive workloads in a cloud
Ari et al. Hybrid job scheduling for improved cluster utilization

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final