DE102015118705A1 - Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren - Google Patents

Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren Download PDF

Info

Publication number
DE102015118705A1
DE102015118705A1 DE102015118705.1A DE102015118705A DE102015118705A1 DE 102015118705 A1 DE102015118705 A1 DE 102015118705A1 DE 102015118705 A DE102015118705 A DE 102015118705A DE 102015118705 A1 DE102015118705 A1 DE 102015118705A1
Authority
DE
Germany
Prior art keywords
task
request
computing device
firmware environment
determining
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.)
Withdrawn
Application number
DE102015118705.1A
Other languages
English (en)
Inventor
Igor Ljubuncic
Raphael Sack
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102015118705A1 publication Critical patent/DE102015118705A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

Technologien für Datenzentrums-Leistungsmanagement beinhalten eine Anzahl von Computerknoten, die über ein Netzwerk in Kommunikation stehen. Jeder Computerknoten erstellt eine Firmware-Umgebung, die die Leistungsaufnahme des Computerknotens überwacht und, falls die Leistungsaufnahme ein optimales Niveau überschreitet, eine Anforderung rundsendet, Tasks an die anderen Knoten abzuladen. Die Firmware-Umgebung eines empfangenden Computerknotens fängt die Anforderung ab und bestimmt, basierend auf der Anforderung, Leistungs-Anforderungen und/oder Rechen-Anforderungen für die Tasks. Die Firmware-Umgebung bestimmt, basierend auf den Anforderungen und den verfügbaren Ressourcen des Computerknotens, ob die abgeladene Task akzeptiert werden soll. Falls akzeptiert, lädt der anfordernde Computerknoten eine oder mehrere Tasks zu den empfangenden Knoten ab. Die Firmware-Umgebung kann durch eine Manageability-Engine des Computerknotens erstellt werden. Die Leistungsaufnahme kann auf Komponentenbasis überwacht werden. Rechen-Anfordungen können Prozessor-Anforderungen oder andere Anforderungen beinhalten. Andere Ausführungsformen werden beschrieben und beansprucht.

Description

  • HINTERGRUND
  • Leistungsaufnahme und thermischer Wirkungsgrad liefern wesentliche Beiträge zu Gesamtnutzung und -effizienz eines Datenzentrums. In typischen Datenzentren wird das Einplanen von Rechenarbeit entlang zweier Hauptachsen durchgeführt: Leistung und Rechenleistung. Leistungsbasiertes Management wird typischerweise auf der Ebene von Chassis/Gehäuse/Schaltschrank durchgeführt. Leistungsbetrachtungen werden typischerweise im voraus durchgeführt, zum Beispiel während der Ausbauphase des Datenzentrums. Leistung wird typischerweise unter indirekter Verwendung von Hardware- und/oder Firmware-Eigenschaften (z.B. Frequenzskalierung, Schlafzustände usw.) auf einer Pro-Host-Ebene gemanaged. Im Gegensatz dazu wird die Ressourcenplanung von Prozessoren, Speicher, Speicherung, E/A oder sonstiger Rechenleistung manchmal unter Verwendung einer zentralisierten Stapel-/Gitter-/Cloud-Scheduler-Entität typischerweise auf der System- oder Datenzentrumsebene durchgeführt. Rechenressourcen-Planung kann zum Beispiel dynamisch unter Verwendung von Betriebssystem-Metriken durchgeführt werden. Gewisse Drittprodukte stellen möglicherweise zentralisiertes Überwachen von Nutzungs-Metriken für ein Datenzentrum auf Betriebssystem-Ebene bereit.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die hierin beschriebenen Konzepte sind in den beiliegenden Figuren lediglich beispielhaft und nicht beschränkend veranschaulicht. Aus Gründen der Einfachheit und Klarheit sind Elemente, die in den Figuren veranschaulicht werden, nicht notwendigerweise maßstabsgetreu gezeichnet. Wo es als angebracht angesehen wurde, werden Bezugszeichen unter den Figuren wiederholt, um entsprechende oder analoge Elemente zu kennzeichnen.
  • 1 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform eines Systems für leistungsbasierte Task-Planung.
  • 2 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform, die von einem Computerknoten der 1 erstellt wird.
  • 3 ist ein vereinfachtes Flussdiagramm von mindestens einer Ausführungsform für leistungsbasierte Task-Planung, die von dem Computerknoten der 1 und 2 ausgeführt werden kann.
  • 4 ist ein vereinfachtes Flussdiagramm von mindestens einer Ausführungsform für Task-Abladen, das von dem Computerknoten der 1 und 2 ausgeführt werden kann.
  • 5 ist ein vereinfachtes Flussdiagramm von mindestens einer Ausführungsform für Annehmen abgeladener Tasks, das von dem Computerknoten der 1 und 2 ausgeführt werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Obwohl die Konzepte der vorliegenden Offenbarung für vielfältige Modifikationen und alternative Formen geeignet sind, so wurden spezifische Ausführungsformen davon in den Zeichnungen beispielhaft gezeigt und werden hier ausführlich beschrieben werden. Es versteht sich allerdings, dass es nicht beabsichtigt ist, die Konzepten der vorliegenden Offenbarung auf die bestimmten offenbarten Formen zu beschränken; eher besteht im Gegenteil die Absicht, alle Modifikationen, Äquivalente und Alternativen, die konsistent zur vorliegenden Offenbarung und den angehängten Ansprüchen sind, abzudecken.
  • Bezugnahme in der Beschreibung auf „eine Ausführungsform“, „Ausführungsform“, „eine veranschaulichende Ausführungsform“ usw. gibt an, dass die beschriebene Ausführungsform ein besonderes Merkmal, eine besondere Struktur oder ein Charakteristikum beinhalten kann, wobei allerdings jede Ausführungsform dieses besondere Merkmal, die besondere Struktur oder das Charakteristikum möglicherweise enthält oder nicht notwendigerweise enthält. Darüberhinaus beziehen sich derartige Phrasen nicht notwendigerweise auf dieselbe Ausführungsform. Wenn ein besonderes Merkmal, eine besondere Struktur oder ein Charakteristikum in Verbindung mit einer Ausführungsform beschrieben wird, wird außerdem unterstellt, dass es im Kenntnisbereich einer Fachperson liegt, ein derartiges Merkmal, eine derartige Struktur oder ein Charakteristikum in Verbindung mit anderen Ausführungsformen zustandezubringen, ob es nun explizit beschrieben wurde oder nicht. Zusätzlich sollte zur Kenntnis genommen werden, dass Einträge in einer Liste der Form von “mindestens einer von A, B und C” (A); (B); (C): (A und B); (A und C); (B und C); oder (A, B, und C). Gleichermaßen können Einträge in einer Liste der Form von “mindestens einer von A, B oder C” (A); (B); (C): (A und B); (A und C); (B und C); oder (A, B, und C).
  • Die offenbarten Ausführungsformen können in manchen Fällen in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert sein. Die offenbarten Ausführungsformen können ebenfalls als Anweisungen implementiert sein, die von einem oder mehreren vergänglichen oder nichtvergänglichen maschinenlesbaren (z.B. computerlesbaren) Speichermedien getragen oder in diesen gespeichert werden, die von einem oder mehreren Prozessoren ausgelesen und ausgeführt werden können. Ein maschinenlesbares Speichermedium kann als eine beliebige Speichervorrichtung, ein Speichermechanismus oder eine andere physische Struktur zum Speichern oder Übertragen von Informationen in einer von einer Maschine lesbaren Form (z.B. einem flüchtigen oder nichtflüchtigen Speicher, einer Medien-Disc oder einer anderen Medien-Vorrichtung) realisiert sein.
  • In den Zeichnungen sind in speziellen Anordnungen und/oder Abfolgen möglicherweise gewisse strukturelle oder methodische Merkmale gezeigt. Allerdings sollte zur Kenntnis genommen werden, dass derartige spezielle Anordnungen und/oder Abfolgen möglicherweise nicht nötig sind. Vielmehr sind in einigen Ausführungsformen derartige Merkmale möglicherweise auf andere Weise und/oder in anderer Reihenfolge angeordnet als in den veranschaulichenden Figuren gezeigt. Zusätzlich ist das Einschließen eines strukturellen oder methodischen Merkmals in einer speziellen Figur nicht dafür gedacht, darauf zu schließen, dass ein derartiges Merkmal in allen Ausführungsformen erforderlich ist und in gewissen Ausführungsformen möglicherweise nicht enthalten oder mit anderen Merkmalen kombiniert sein kann.
  • Mit Bezug auf 1 beinhaltet in einer beispielhaften Ausführungsform ein System 100 für leistungsbasierte Task-Planung zwei oder mehr Computerknoten 102, die über ein Netzwerk 104 in Kommunikation stehen. Im Gebrauch kann jeder Computerknoten 102, wie unten genauer beschrieben ist, eine oder mehrere Tasks, wie etwa Anwendungen, Skripte, Jobs oder andere Arbeitslasten ausführen. Eine Firmware-Umgebung von jedem Computerknoten 102 überwacht die Leistungsaufnahme des entsprechenden Computerknotens 102 und, sendet möglicherweise, falls die Leistungsaufnahme ein optimales Niveau überschreitet, eine Anforderung über das Netzwerk 104 an andere ferne Computerknoten 102 in dem System 100 rund, eine Task abzuladen. Die Task-Ablade-Anforderung kann zum Beispiel die Leistungs-Anforderungen für die abgeladene Task sowie eine oder mehrere Rechen-Anforderungen (wie etwa Prozessor-Anforderungen, Speicher-Anfordungen, Speicherungs-Anforderungen und/oder E/A-Anforderungen) beinhalten. Die Firmware-Umgebung des fernen Computerknotens 102 kann die Task-Ablade-Anforderung abfangen und kann, basierend auf den Anforderungen der Anforderung und der verfügbaren Leistung und der Rechenressourcen des entsprechenden Computerknotens 102 bestimmen, ob sie die abgeladene Task akzeptieren soll. Demnach können die Tasks, basierend auf Echtzeit-Leistungsaufnahmedaten und Rechennutzungs-Metriken, unter Verwendung von Firmware-Fähigkeiten des Computerknotens 102 unter den Computerknoten 102 des Systems 100 verteilt werden. Das System 100 kann, basierend auf sowohl der Leistungsaufnahme als auch der Rechennutzung über das Datenzentrum, den Leistungswirkungsgrad und/oder die Nutzung eines Datenzentrums durch Task-Planung verbessern. Zusätzlich kann das System 100 Task-Planung unter Verwendung nativer Hardware- und Firmware-Ressourcen des Computerknotens 102 durchführen, ohne spezialisierte Betriebssystem-Werkzeuge oder Drittwerkzeuge zu benötigen. Demnach kann Task-Planung nicht auf Computerknoten 102 eingeschränkt sein, die von einem speziellen Lieferanten hergestellt werden. Zusätzlich oder alternativ kann das System 100, obwohl als dezentralisierte Planung unter mehreren Computerknoten 102 durchführend veranschaulicht, in manchen Ausführungsformen einen zentralisierten Manager beinhalten, um Tasks unter den Computerknoten 102 auf ähnliche Weise zu planen.
  • Jeder Computerknoten 102 kann als ein beliebiger Typ einer Rechen- oder Computervorrichtung realisiert sein, die dazu in der Lage ist, die hier beschriebenen Funktionen durchzuführen, einschließlich unter anderem ein Computer, ein Mehrprozessor-System, ein Server, ein Schaltschrank-Server, ein Blade-Server, ein Laptop-Computer, ein Notebook-Computer, eine Netz-Vorrichtung, eine Web-Vorrichtung, ein verteiltes Computer-System, ein prozessorbasiertes System und/oder ein Unterhaltungselektronik-Gerät. Wie in 1 gezeigt, beinhaltet jeder Computerknoten 102 veranschaulichend einen Processor 120, ein Eingabe-/Ausgabe-Subsystem 122, einen Speicher 124, eine Datenspeicherungs-Vorrichtung 126 und Kommunikations-Schaltungen 128. Natürlich kann der Computerknoten 102 in anderen Ausführungsformen andere oder zusätzliche Komponenten beinhalten, wie etwa die, die sich gewöhnlich in einer Server-Vorrichtung (z.B. verschiedene Eingabe-/Ausgabe-Vorrichtungen) finden. Zusätzlich können in manchen Ausführungsformen eine oder mehrere der veranschaulichenden Komponenten in einer anderen Komponente verbaut sein oder anderweitig einen Teil davon bilden. Zum Beispiel kann in manchen Ausführungsformen der Speicher 124, oder Teile davon, in einem oder mehreren Prozessoren 120 verbaut sein.
  • Der Prozessor 120 kann als irgendein Prozessortyp realisiert sein, der dazu in der Lage ist, die hier beschriebenen Funktionen durchzuführen. Der Prozessor 120 kann zum Beispiel als ein Einzel- oder Multi-Kern-Prozessor, als ein digitaler Signalprozessor, Mikrocontroller oder anderer Prozessor oder Verarbeitungs-/Steuerungs-Schaltung realisiert sein. Gleichermaßen kann der Speicher 124 als irgendein Typ flüchtigen oder nichtflüchtigen Speichers oder einer Datenspeicherung, die in der Lage ist, die hier beschriebenen Funktionen durchzuführen, realisiert sein. Im Betrieb kann der Speicher 124 vielfältige Daten und Software, die während des Betriebs des Computerknotens 102 verwendet werden, wie etwa Betriebssysteme, Anwendungen, Programme, Bibliotheken und Treiber speichern. Der Speicher 124 ist kommunizierend über das E/A-Subsystem 122 mit dem Prozessor 120 gekoppelt, das als Schaltungen und/oder Komponenten realisiert sein kann, um Eingabe-/Ausgabe-Operationen mit dem Prozessor 120, dem Speicher 124 und anderen Komponenten des Computerknotens 102 zu erleichtern. Das E/A-Subsystem 122 kann zum Beispiel als Speichersteuerungs-Hubs, Eingabe-/Ausgabesteuerungs-Hubs, Firmware-Vorrichtungen, Kommunikations-Verbindungen (d.h. Punkt-zu-Punkt-Verbindungen, Bus-Verbindungen, Drähte, Kabel, Lichtleiter, Spuren auf gedruckten Leiterplatten usw.) und/oder anderen Komponenten und Subsystemen realisiert sein oder diese sonstwie beinhalten, um die Eingabe-/Ausgabe-Operationen zu erleichtern. In manchen Ausführungsformen kann das E/A-Subsystem 122 einen Teil eines Systems-auf-Chip (SoC) bilden und zusammen mit den Prozessoren 120, dem Speicher 124 und anderen Komponenten des Computerknotens 102 auf einem einzigen integrierten Schaltungs-Chip verbaut sein.
  • Die Datenspeicherungs-Vorrichtung 126 kann als ein beliebiger Typ von Vorrichtung oder Vorrichtungen realisiert sein, die zum Kurz- oder Langfrist-Speichern von Daten ausgelegt sind, wie zum Beispiel Speicher-Vorrichtungen und Schaltungen, Speicherkarten, Festplatten, Solid-State-Drives oder andere Datenspeicher-Vorrichtungen. Die Datenspeicherungs-Vorrichtung 126 kann Betriebssystem- oder Anwendungsdaten speichern, die verwendet werden, eine oder mehrere Tasks auf dem Computerknoten 102 auszuführen. Zusätzlich kann die Datenspeicherungs-Vorrichtung 126 in einigen Ausführungsformen ein Firmware-Laufwerk oder einen anderen Speicherort beinhalten, der eine Firmware-Umgebung, wie etwa eine UEFI-Firmware-Partition, beinhaltet oder erstellt.
  • Die Kommunikations-Schaltungen 128 des Computerknotens 102 können als beliebige Kommunikations-Schaltungen, -Vorrichtung oder deren Ansammlung realisiert sein, die in der Lage sind, Kommunikation über das Netzwerk 104 zwischen den Computerknoten 102 und/oder anderen fernen Vorrichtungen zu ermöglichen. Die Kommunikations-Schaltungen 128 können dafür ausgelegt sein, eine oder mehrere beliebige Kommunikations-Technologien (z.B. drahtgebundene oder drahtlose Kommunikation) und damit assoziierte Protokolle (z.B. InfiniBand®, Ethernet, Bluetooth®, Wi-Fi®, WiMAX usw.) zu verwenden, um solche Kommunikation auszuüben. Die Kommunikations-Schaltungen 128 können einen oder mehrere Netzwerk-Adapter und/oder Netzwerk-Anschlüsse beinhalten, die gleichzeitig verwendet werden können, um Daten über das Netzwerk 104 zu übertragen.
  • In manchen Ausführungsformen kann der Computerknoten 102 eine Manageability-Engine 130 beinhalten. Die Manageability-Engine 130 ist als eine Vorrichtung realisiert, die eine Fern-Konfiguration, -Steuerung und/oder ein Fern-Management des Computerknotens 102 bereitstellt. Die Manageability-Engine 130 kann einen Außer-der-Reihe-Prozessor beinhalten, der als ein Prozessor, Mikrocontroller oder als eine sonstige Steuer-Schaltung vom Haupt-Prozessor 120 des Computerknotens 102 abgetrennt und unterscheidbar ist. Derart ist die Manageability-Engine 130 zum vom Zustand des Rests des Computerknotens 102 unabhängigen Betrieb in der Lage. Das heißt, dass die Manageability-Engine 130 ohne Rücksicht auf den Betriebszustand des Prozessors 120 zum Betrieb in der Lage ist, einschließlich dann, wenn der Computerknoten 102 ausgeschaltet ist, wenn der Computerknoten 102 eine Pre-Boot-Firmware-Umgebung ausführt, wenn ein Betriebssystem des Computerknotens 102 aktiv ist und wenn das Betriebssystem gecrasht oder sonstwie inaktiv ist. Die Manageability-Engine 130 kann eine Firmware-Umgebung erstellen, die von der vom Prozessor 120 erstellten Software-Umgebung abgetrennt und unterscheidbar ist. Die Manageability-Engine 130 ist auch zum Kommunizieren unabhängig vom Zustand des Computerknotens 102 unter Verwendung der Kommunikations-Schaltungen 128 in der Lage, was auch als "Außer-der-Reihe"-Kommunikation bekannt ist. In manchen Ausführungsformen kann die Manageability-Engine 130 einen dedizierten Netzadapter für eine solche Außer-der-Reihe-Kommunikation zusätzlich zu oder anstelle von einer Verbindung über die Kommunikations-Schaltungen 128 beinhalten. In manchen Ausführungsformen kann die Manageability-Engine 130 in das E/A-Subsystem 122 eingebaut sein oder sonstwie einen Teil davon bilden.
  • Wie unten ausführlicher besprochen werden wird, können die Computerknoten 102 dafür ausgelegt sein, über das Netzwerk 104 Daten untereinander und/oder mit anderen Vorrichtungen des Systems 100 zu übertragen und zu empfangen. Das Netzwerk 104 kann als eine beliebige Anzahl von verschiedenen drahtgebundenen und/oder drahtlosen Netzwerken realisiert sein. Das Netzwerk 104 kann zum Beispiel als ein geschaltetes Geflecht-Netzwerk, als ein drahtgebundenes oder drahtloses Lokal-Netzwerk (LAN) als drahtgebundenes oder drahtloses Weitbereichs-Netzwerk (WAN), ein Mobilfunk-Netz und/oder ein öffentlich zugängliches, globales Netz, wie etwa das Internet, realisiert sein oder solches sonstwie beinhalten. Als solches kann das Netzwerk 104 eine beliebige Anzahl von zusätzlichen Vorrichtungen beinhalten, wie etwa zusätzliche Computer, Router und Schalter, um eine Kommunikation zwischen diesen Vorrichtungen des Systems 100 zu erleichtern.
  • Nunmehr mit Bezugnahme auf die 2 kann jeder Computerknoten 102 in einer veranschaulichenden Ausführungsform während des Betriebs eine Umgebung 200 erstellen. Die veranschaulichende Umgebung 200 beinhaltet ein Betriebssystem 202 und eine Firmware-Umgebung 208. Das Betriebssystem 202 erstellt ein Task-Ausführungs-Modul 204 und ein Task-Ablade-Modul 206, und die Firmware-Umgebung 208 erstellt ein Leistungs-Management-Modul 210, ein Ablade-Anforderungs-Modul 212, ein Ablade-Akzeptanz-Modul 214 und ein Außer-der-Reihe(OOB)-Kommunikations-Modul 216. Die verschiedenen Module der Umgebung 200 können als Hardware, Software, Firmware oder als eine Kombination davon realisiert sein. Zum Beispiel kann jedes der Module, Logik und anderen Komponenten der Umgebung 200 einen Teil des Prozessors 120, der Manageability-Engine 130 oder andere Hardware-Komponenten des Computerknotens 102 bilden oder sonstwie durch diese erstellt werden. Als solches können eines oder mehrere der Module der Umgebung 200 in manchen Ausführungsformen als ein Schaltkreis oder eine Sammlung elektrischer Vorrichtungen (z.B. ein Task-Ausführungs-Schaltkreis, ein Task-Ablade-Schaltkreis, ein Leistungs-Management-Schaltkreis usw.) realisiert sein.
  • Das Betriebssystem 202 kann als ein beliebiges Betriebssystem, ein Virtuelle-Maschine-Monitor, ein Hypervisor oder andere Steuerungs-Struktur des Computerknotens 102 realisiert sein. Zum Beispiel kann das Betriebssystem 202 als Microsoft® WindowsTM oder Linux® realisiert sein. Das Betriebssystem 202 kann Anwendungen, Prozesse und andere Rechenjobs auf dem Computerknoten 102 ausführen und sonstwie managen. Das Betriebssystem 202 kann auch dynamische Nutzungs-Informationen über den Computerknoten 102 bereitstellen, wie etwa Prozessor-Ausnutzung, Speicher-Ausnutzung, Speicherungs-Ausnutzung oder E/A-Ausnutzung. Die Nutzungs-Informationen können dem Computerknoten 102 als Ganzes, auf einer Per-Task- oder Per-Job-Basis oder auf eine beliebige andere Weise zugeführt werden. Wie oben beschrieben kann das Betriebssystem 202 das Task-Ausführungs-Modul 204 und das Task-Ablade-Modul 206 erstellen.
  • Das Task-Ausführungs-Modul 204 ist dafür ausgelegt, eine oder mehrere Tasks innerhalb des Betriebssystems 202 auszuführen. Jede Task kann als eine beliebige Anwendung, ein Skript, ein Job oder andere von dem Computerknoten 102 auszuführende Arbeitslast realisiert sein. Das Task-Ausführungs-Modul 204 kann eine Warteschlange oder andere Struktur erstellen, um die Tasks vor deren Ausführung zu speichern und zu organisieren.
  • Das Task-Ablade-Modul 206 ist dafür ausgelegt, eine oder mehrere Tasks an einen fernen Computerknoten 102 abzuladen, um ausgeführt zu werden und um abgeladene Tasks, die von einem fernen Computerknoten 102 akzeptiert wurden, auszuführen. Der Computerknoten 102 kann zum Beispiel mit dem Task-Ausführungs-Modul 204 koordinieren, um von dem Computerknoten 102 auszuführende Tasks hinzuzufügen und/oder zu entfernen, und kann Tasks mit fernen Computerknoten 102 übertragen und/oder empfangen. Das Task-Ablade-Modul 206 kann Tasks als Reaktion auf Befehle, die von der Firmware-Umgebung 208, zum Beispiel von dem Ablade-Anforderungs-Modul 212 und/oder dem Ablade-Akzeptanz-Modul 214 empfangen wurden, abladen und/oder empfangen, wie unten weiter beschrieben wird.
  • Die Firmaware-Umgebung 208 kann als eine beliebige Ausführungs-Umgebung des Computerknotens 102 realisiert sein, die von dem Betriebssystem 202 unabhängig ist. Zum Beispiel kann die Firmware-Umgebung 208 durch die Manageability-Engine 130 und/oder den Prozessor 120 erstellt werden. Die Firmware-Umgebung 208 befindet sich typischerweise auf einem tieferen Abstraktionsniveau oder weist ansonsten im Vergleich zu dem Betriebssystem 202 engeren Zugriff auf Hardware des Computerknotens 102 auf. Das Betriebssystem 202 kann mit der Firmware-Umgebung 208 über einen oder mehrere Betriebssystem-Treiber interagieren. Zum Beispiel kann das Betriebssystem 202 einen Betriebssystem-Treiber verwenden, um mit einem UEFI-BIOS des Computerknotens 102 zu interagieren. Das UEFI-BIOS kann die Firmware-Umgebung 208 erstellen und/oder kann mit der von der Manageability-Engine 130 erstellten Firmware-Umgebung 208 kommunizieren. Da die Firmware-Umgebung 208 vom Betriebssystem 202 unabhängig ist, können einige oder alle Operationen, die von Modulen der Firmware-Umgebung 208 durchgeführt werden, ohne Einbeziehung des Betriebssystems 202 durchgeführt werden.
  • Das Leistungs-Management-Modul 210 ist dafür ausgelegt, die aktuelle Leistungsaufnahme des Computerknotens 102 zu bestimmen und zu bestimmen, ob die Leistungsaufnahme ein optimales Niveau überschreitet. Das Leistungs-Management-Modul 210 kann zum Beispiel die aktuelle Leistungsaufnahme des Computerknotens 102 mit einem Schwellen-Leistungsaufnahme-Wert vergleichen. Das Leistungs-Management-Modul 210 kann die aktuelle Leistungsaufnahme einzelner Komponenten des Computerknotens 102, wie etwa des Prozessors 120, des Speichers 124, der Datenspeicherungs-Vorrichtung 126 und/oder der Kommunikations-Schaltungen 128 überwachen.
  • Das Ablade-Anforderungs-Modul 212 ist dafür ausgelegt, unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung eine Task-Ablade-Anforderung an eine definierte Netzwerk-Umgebung rundzusenden, nach dem Bestimmen, dass die aktuelle Leistungsaufnahme des Computerknotens 102 das optimale Niveau überschreitet. Das Ablade-Anforderungs-Modul 212 ist auch dafür ausgelegt, eine Leistungs-Anforderung für eine abzuladende Task zu bestimmen, wenn die Leistungsaufnahme des Computerknotens 102 das optimale Niveau überschreitet. Das Ablade-Anforderungs-Modul 212 kann auch zusätzlich zu den Leistungs-Anforderungen eine oder mehrere Rechen-Anforderungen für die abzuladende Task bestimmen, zum Beispiel unter Verwendung von Metriken des Betriebssystems 202, die mit der Task assoziiert sind. Die Task-Ablade-Anforderungen sind in der Task-Ablade-Anforderungs-Rundesndung an die fernen Computerknoten 102 enthalten. Das Ablade-Anforderungs-Modul 212 kann, als Reaktion auf das Empfangen einer Task-Akzeptanz von einer fernen Rechen-Vorrichtung 102, das Betriebssystem 202 veranlassen, eine Task abzuladen. Das Ablade-Anforderungs-Modul 212 kann zum Beispiel einen Befehl von der Firmware-Umgebung 208 an das Betriebssystem 202 senden. Die Task-Ablade-Anforderung kann an einen oder mehrere Computerknoten 102, die auch jeweils das Ablade-Akzeptanz-Modul 214 beinhalten, rundgesendet werden.
  • Das Ablade-Akzeptanz-Modul 214 ist dafür ausgelegt, eine Task-Ablade-Anforderung von einem fernen Computerknoten 102 zu empfangen und eine Leistungs-Anforderung und jegliche Rechen-Anforderungen zu bestimmen, die mit der Task-Ablade-Anforderung assoziiert sind. Das Ablade-Akzeptanz-Modul 214 ist dafür ausgelegt, basierend auf den Anforderungen der Task-Ablade-Anforderung und auf verfügbaren Ressourcen des Computerknotens 102 (einschließlich Leistungsressourcen und/oder Rechenressourcen) zu bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll. Das Ablade-Akzeptanz-Modul 214 ist dafür ausgelegt, eine Task-Ablade-Akzeptanz an den fernen Computerknoten 102 zu senden und als Antwort eine abgeladene Task von dem fernen Computerknoten 102 zu empfangen.
  • Das OOB-Kommunikations-Modul 216 ist dafür ausgelegt, Daten unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung, wie etwa eine Außer-der-Reihe-Netzwerk-Fähigkeit der Manageability-Engine 130, zu senden und zu empfangen. Das OOB-Kommunikations-Modul 216 kann Task-Ablade-Anforderungen, Task-Ablade-Akzeptanzen, abgeladene Tasks und/oder Daten mit einem oder mehreren fernen Computerknoten 102 senden und/oder empfangen.
  • Wie in 3 gezeigt, kann jeder Computerknoten 102 im Gebrauch ein Verfahren 300 für leistungsbasierte Task-Planung ausführen. Das Verfahren 300 beginnt mit dem Block 302, in dem der Computerknoten 102 eine Liste von auszuführenden Tasks empfängt. Jede Task kann als eine beliebige Anwendung, ein Skript, ein Job oder andere von dem Computerknoten 102 auszuführende Arbeitslast realisiert sein. Die Taskliste kann von einem Datenzentrum-Manager, einem Cloud-Betriebssystem, einem System-Administrator oder einer beliebigen anderen Quelle erzeugt oder sonstwie abgeliefert werden. Es sei angemerkt, dass die Taskliste in manchen Ausführungsformen an einen beliebigen Computerknoten 102 in einem Datenzentrum abgeliefert werden kann und dass die Tasks während der Ausführung auf die unten beschriebene Weise innerhalb des Datenzentrums verteilt werden können.
  • In Block 304 beginnt der Computerknoten 102 mit dem Ausführen der vorher empfangenen Tasks. Der Computerknoten 102 kann die Tasks zum Beispiel durch Ausführen von einer oder mehreren Anwendungen, Prozessen, Skripts, Jobs oder anderen Programmen innerhalb des Betriebssystems 202 ausführen. Nach dem Anfangen mit dem Ausführen der Tasks, geht das Verfahren 300 gleichzeitig zu Block 306, 308 weiter. Während die Blöcke 306, 308 ausgeführt werden, kann der Computerknoten 102 damit weitermachen, die eine oder die mehreren der Tasks auszuführen.
  • In Block 306 überwacht der Computerknoten 102 unter Verwendung der Firmware-Umgebung 208 die Leistungsaufnahme des Computerknotens 102 und lädt möglicherweise eine oder mehrere Tasks an ferne Computerknoten 102 ab. Der Computerknoten 102 kann zum Beispiel Tasks abladen, falls die aktuelle Leistungsaufnahme des Computerknotens 102 eine vordefinierte Schwelle überschreitet. Die Leistungsaufnahme-Überwachung und das Task-Abladen, die von der Firmware-Umgebung 208 ausgeführt werden, können gegenüber dem Betriebssystem 202 transparent sein und/oder gegenüber den Tasks, die von dem Betriebssystem 202 ausgeführt werden. Eine Ausführungsform eines Verfahrens zum Überwachen von Leistungsaufnahme und Task-Abladen wird unten im Zusammenhang mit der 4 beschrieben.
  • In Block 308 überwacht der Computerknoten 102 unter Verwendung der Firmware-Umgebung 208 auf Task-Ablade-Anforderungen empfangen von fernen Computerknoten 102. Der Computerknoten 102 kann die Ablade-Anforderungen bewerten, um zu bestimmen, ob Leistungsressourcen und/oder Rechenressourcen verfügbar sind, um die abgeladene Task auszuführen. Wenn dem so ist, dann kann der Computerknoten 102 die abgeladene Task zur Ausführung akzeptieren. Eine Ausführungsform eines Verfahrens zum Annehmen von abgeladenen Tasks wird unten im Zusammenhang mit der 5 beschrieben.
  • Nach dem Ausführen der Blöcke 306, 308 springt das Verfahren 300 in einer Schleife zurück zu Block 304, um mit dem Ausführen von Tasks weiterzumachen. Der Computerknoten 102 kann damit anfangen, abgeladene Tasks, die von fernen Computerknoten 102 empfangen wurden, auszuführen und kann damit aufhören, Tasks auszuführen, die zu fernen Computerknoten 102 abgeladen wurden. Obwohl als die Blöcke 306, 308 gleichzeitg durchführend und dann in der Schleife zurück zu Block 304 springend veranschaulicht, versteht sich zusätzlich, dass der Computerknoten 102 diese Operationen in manchen Ausführungsformen in beliebiger Reihenfolge ausführen kann, einschließlich gleichzeitig, nacheinander, kontinuierlich, periodisch oder auf eine verschachtelte Weise. Zum Beispiel können die Blöcke 306, 308 durch die Manageability-Engine 130 gleichzeitig mit dem Block 304, der durch den Prozessor 120 ausgeführt wird, ausgeführt werden.
  • Wie in 4 gezeigt, kann jeder Computerknoten 102 im Gebrauch ein Verfahren 400 zum Überwachen der Leistungsaufnahme und zum Task-Abladen ausführen. Das Verfahren 400 wird von der Firmware-Umgebung 208 ausgeführt; zum Beispiel durch den Prozessor 120 in einer UEFI-BIOS-Firmware-Umgebung, durch die Manageability-Engine 130 oder durch eine beliebige Firmware-Komponente des Computerknotens 102. Das Verfahren 400 beginnt mit dem Block 402, in dem der Computerknoten 102 die Leistungsaufnahme des Computerknotens 102 überwacht. Der Computerknoten 102 kann zum Beispiel, den Stromverbrauch (z.B. den Strom in Ampère oder Leistung in Watt), die Temperatur, die aufgewendete Kühlkapazität oder eine andere Größe, die die Leistungsaufnahme durch den Computerknoten 102 angibt, überwachen. In manchen Ausführungsformen kann der Computerknoten 102 in Block 404 die Leistungsaufnahme pro Komponente von einer oder mehreren Komponenten des Computerknotens 102 bestimmen. Zum Beispiel kann der Computerknoten 102 die Leistungsaufnahme des Prozessors 120, des E/A-Subsystems 122, des Speichers 124, der Datenspeicherungs-Vorrichtung 126, der Kommunikations-Schaltungen 128 und/oder anderer Komponenten, wie etwa einer System-Stromversorgung, bestimmen.
  • In Block 406 bestimmt der Computerknoten 102, ob die Leistungsaufnahme des Computerknotens 102 über einem optimalen Niveau liegt. Der Computerknoten 102 kann eine beliebige passende Technik anwenden, um zu bestimmen, ob die aktuelle Leistungsaufnahme das optimale Niveau überschreitet. Der Computerknoten 102 kann zum Beispiel bestimmen, ob die Leistungsaufnahme einen vorbestimmten Schwellenwert überschreitet. Falls er nicht über dem optimalen Niveau liegt, schleift das Verfahren 400 zurück zum Block 402, um mit dem Überwachen der Leistungsaufnahme weiterzumachen. Falls die Leistungsaufnahme über dem optimalen Niveau liegt, zieht das Verfahren 400 zum Block 408 weiter.
  • In Block 408 bestimmt der Computerknoten 102 eine Leistungs-Anforderung, die mit einer Task assoziiert ist, die möglicherweise zu einem fernen Computerknoten 102 abgeladen wird. Die Leistungs-Anforderung kann die zum Ausführen der abgeladenen Task nötige Leistungsmenge angeben. Zum Beispiel kann die Leistungs-Anforderung eine bestimmte Wattzahl oder eine relative Leistungs-Anforderung (z.B. hoch, niedrig oder einen anderen Relativwert) spezifizieren. In manchen Ausführungsformen kann der Computerknoten 102 in Block 410 eine oder mehrere zusätzliche Rechen-Anforderungen der abgeladenen Task bestimmen. Die Rechen-Anforderungen können zum Beispiel als Prozessornutzungs-Anforderungen, Speicher-Anforderungen, Speicherungs-Anforderungen, E/A-Anforderungen und/oder eine beliebige andere Rechenressource, die von der abgeladenen Task benötigt wird, realisiert sein. Die Firmware-Umgebung 208 des Computerknotens 102 kann eine oder mehrere der Rechen-Anforderungen durch Kommunizieren mit dem Betriebssystem 202 bestimmen. Zum Beispiel kann die Firmware-Umgebung 208 mit dem Betriebssystem 202 kommunizieren, um die Prozessor-Nutzung, die Speicher-Nutzung, die Speicherungs-Nutzung, die E/A-Nutzung oder andere Anforderungen der abgeladenen Task zu bestimmen.
  • In Block 412 sendet der Computerknoten 102 unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung des Computerknotens 102 eine Task-Ablade-Anforderung rund. Der Computerknoten 102 kann zum Beispiel die Task-Ablade-Anforderung unter Verwendung einer Außer-der-Reihe-Netzwerk-Fähigkeit der Manageability-Engine 130 rundsenden. Die Task-Ablade-Anforderung kann ie Leistungs-Anforderungen der abgeladenen Task sowie eine oder mehrere Rechen-Anforderungen (z.B. Prozessor-Anforderungen, Speicher-Anfordungen, Speicherungs-Anforderungen oder E/A-Anforderungen) beinhalten. Die Task-Ablade-Anforderung kann an alle fernen Computerknoten 102 in einer definierten Umgebung, wie etwa einem Datenzentrum, rundgesendet werden. Die Task-Ablade-Anforderung kann zum Beispiel an alle fernen Computerknoten 102 in einem bestimmten Netzwerk oder Sub-Netzwerk, an eine vordefinierte Sammlung von fernen Computerknoten 102 oder an eine beliebige andere definierte Umgebung rundgesendet werden. In der veranschaulichenden Ausführungsform wird die Task-Ablade-Anforderung unter Verwendung des einfachen Netzwerk-Management-Protokolls (SNMP) rundgesendet. Allerdings kann jegliches passende Netzwerk-Protokoll verwendet werden, das Transport der Task-Ablade-Anforderung einschließlich einer Nutzlast (z.B. der Leistungs-Anforderungen und der Rechen-Anforderungen) bereitstellt.
  • In Block 414 empfängt der Computerknoten 102 eine Task-Ablade-Akzeptanz von einem oder mehreren fernen Computerknoten 102. Die Task-Ablade-Akzeptanz gibt an, dass der sendende ferne Computerknoten 102 über Kapazität zum Empfangen der abgeladenen Task verfügt. Zum Beispiel kann der Computerknoten 102 über Leistungs-Kapazität oder thermische Kapazität verfügen, um die abgeladene Task auszuführen. In manchen Ausführungsformen kann der Computerknoten 102 auch über Rechen-Kapazität für die Rechen-Anforderungen (Prozessor-Kapazität, Speicher-Kapazität, Speicherungs-Kapazität oder E/A-Kapazität) verfügen. Falls Task-Ablade-Akzeptanzen von mehr als einem fernen Computerknoten 102 empfangen werden, kann der Computerknoten 102 einen beliebigen passenden Algorithmus verwenden, um einen fernen Computerknoten 102 zu identifizieren, um die abgeladene Task zu empfangen. Zum Beispiel kann der Computerknoten 102 in manchen Ausführungsformen den ersten fernen Computerknoten 102 auswählen, der mit einer Task-Ablade-Akzeptanz antwortet. Zusätzlich oder alternativ kann der Computerknoten 102 in manchen Ausführungsformen eine oder mehrere Metriken bewerten, die von den fernen Computerknoten 102 geliefert werden. Zum Beispiel kann der Computerknoten 102 den fernen Computerknoten 102 mit der meisten verfügbaren Leistungs-Kapazität und/oder Rechen-Kapazität auswählen.
  • In Block 416 befiehlt der Computerknoten 102 dem Betriebssystem 202, die Task zu dem fernen in Block 414 identifizierten Computerknoten 102 abzuladen. Die Firmware-Umgebung 208 kann den Befehl, die Task abzuladen, an das Betriebssystem 202 senden oder sonstwie kommunizieren. In manchen Ausführungsformen kann der Computerknoten 102 in Block 418 den Befehl unter Verwendung einer lokalen Konsole der Manageability-Engine 130 ausgeben.
  • In Block 420 lädt der Computerknoten 102 die Task bei dem fernen Computerknoten 102 ab. Das Betriebssystem 202 kann die Task zum Beispiel durch Entfernen der Task aus einer Task-Warteschlange und Senden der Task an den fernen Computerknoten 102 abladen. In manchen Ausführungsformen kann der Computerknoten 102 in Block 422 die Task durch Senden eines Task-Befehlsstrings an den fernen Computerknoten 102 abladen. Der Computerknoten 102 kann zum Beispiel einen Befehlsstring an eine ferne Konsole der Manageability-Engine 130 des fernen Computerknotens 102 senden. Nach dem Abladen der Task schleift das Verfahren 400 zurück zum Block 402, um mit dem Überwachen der Leistungsaufnahme weiterzumachen.
  • Wie in 5 gezeigt, kann jeder Computerknoten 102 im Gebrauch ein Verfahren 500 zum Annehmen abgeladener Tasks ausführen. Das Verfahren 500 wird von der Firmware-Umgebung 208 ausgeführt; zum Beispiel durch den Prozessor 120 in einer UEFI-BIOS-Firmware-Umgebung, durch die Manageability-Engine 130 oder durch eine beliebige Firmware-Komponente des Computerknotens 102. Das Verfahren 500 beginnt mit Block 502, in dem der Computerknoten 102 hinsichtlich Task-Ablade-Anforderungs-Rundsendungen von einem fernen Computerknoten 102 ausschaut. Der Computerknoten 102 kann einen Netzwerk-Hörer einrichten und versuchen beliebige Task-Ablade-Anforderungs-Rundsendungen über das Netzwerk 104 abzufangen. Wie oben im Zusammenhang mit der 4 beschrieben kann die Task-Ablade-Anforderung durch den fernen Computerknoten 102 als Antwort darauf, dass die Leistungsaufnahme des fernen Computerknotens 102 ein optimales Niveau überschreitet, rundgesendet werden. Die Task-Ablade-Anforderung kann eine Leistungs-Anforderung für die abzuladende Task beinhalten und kann in manchen Ausführungsformen eine oder mehrere zusätzliche Rechen-Anforderungen (z.B. Prozessor-Anforderungen, Speicher-Anforderungen, Speicherungs-Anforderungen oder E/A-Anforderungen) beinhalten. Die Task-Ablade-Anforderung kann unter Verwendung des einfachen Netzwerk-Management-Protokolls (SNMP) oder eines beliebigen anderen passenden Netzwerk-Protokolls rundgesendet werden.
  • In Block 504 bestimmt der Computerknoten 102, ob eine Task-Ablade-Anforderung abgefangen wurde. Falls nicht, schleift das Verfahren 500 zurück zum Block 502, um mit dem Überwachen der Task-Ablade-Anforderungen weiterzumachen. Falls eine Task-Ablade-Anforderung abgefangen wurde, geht das Verfahren 500 zum Block 506 weiter.
  • In Block 506 berechnet der Computerknoten 102 eine oder mehrere Anforderungen der abgeladenen Task. Die Task-Ablade-Anforderungen können beliebige Rechen-Ressourcen, kompatible Hardware, kompatible Hardware-Merkmale, kompatible Software-Umgebungen oder andere Voraussetzungen, die für den Computerknoten 102 benötigt werden, um die abgeladene Task auszuführen, beschreiben. In manchen Ausführungsformen kann der Computerknoten 102 in Block 508 Leistungs-Anforderungen der abgeladenen Task berechnen. Zum Beispiel kann der Computerknoten 102 eine Strommenge, die zum Ausführen der abgeladenen Task benötigt wird, berechnen, vorhersagen oder sonstwie bestimmen. Gleichermaßen kann der Computerknoten 102 die thermische Last, Kühl-Anforderungen oder sonstige andere Größen berechnen, die die Strommenge angeben, die vom Ausführen der abgeladenen Task gebraucht wird. In manchen Ausführungsformen kann der Computerknoten 102 in Block 510 eine oder mehrere Rechen-Anforderungen der abgeladenen Task berechnen. Zum Beispiel kann der Computerknoten 102 Prozessor-Anforderungen, Speicher-Anforderungen, Speicherungs-Anforderungen oder E/A-Anforderungen des Computerknotens 102 berechnen oder sonstwie vorhersagen.
  • In Block 512 bestimmt der Computerknoten 102, basierend auf den Task-Ablade-Anforderungen und den verfügbaren Ressourcen des Computerknotens 102, ob die abgeladene Task akzeptiert werden soll. Zum Beispiel kann der Computerknoten 102 bestimmen, ob Leistungs-Kapazität für die Leistungs-Anforderungen der abgeladenen Task vorhanden ist. Als ein weiteres Beispiel kann der Computerknoten 102 auch berücksichtigen, ob Rechen-Kapazität für eine oder mehrere Rechen-Anforderungen vorhanden ist. Zum Beispiel kann der Computerknoten 102 zusätzlich zum Berücksichtigen der Leistungs-Kapazität bestimmen, ob Prozessor-Kapazität für die Prozessor-Anforderungen der abgeladenen Task vorhanden ist. Der Computerknoten 102 kann bestimmen, eine Task-Ablade-Anforderung nicht zu akzeptieren, falls zwar Leistungs-Kapazität verfügbar aber keine ausreichende Prozessor-Kapazität für die abgeladene Task verfügbar ist. Stattdessen kann der Computerknoten 102 eine Task-Ablade-Anforderung für eine speichergerichtete Task, eine E/A-gerichtete Task oder einer andere Task mit geringeren Prozessor-Anforderungen akzeptieren. Der Computerknoten 102 kann ähnliche Bestimmungen für beliebige andere Anforderungen der abgeladenen Task vornehmen. In Block 514 bestimmt der Computerknoten 102, ob die abgeladene Task akzeptiert werden wird. Falls nicht, schleift das Verfahren 500 zurück zum Block 502, um mit dem Überwachen der Ablade-Anforderungen weiterzumachen. Falls die Ablade-Anforderung akzeptiert wird, geht das Verfahren 500 zum Block 516 weiter.
  • In Block 516 überträgt der Computerknoten 102 eine Task-Ablade-Akzeptanz an den fernen Computerknoten 102. Die Task-Ablade-Akzeptanz gibt an, dass der Computerknoten 102, basierend auf den Task-Ablade-Anforderungen, über Kapazität verfügt, die abgeladene Task auszuführen. Die Task-Ablade-Akzeptanz kann unter Verwendung einer Außer-der-Reihe-Netzwerk-Fähigkeit des Computerknotens 102, wie etwa einer Außer-der-Reihe-Netzwerk-Fähigkeit der Manageability-Engine 130, übertragen werden. In manchen Ausführungsformen kann die Task-Ablade-Akzeptanz auch eine oder mehrere Metriken bezüglich des Computerknotens 102, wie etwa Leistungsaufnahme-Metriken, Prozessor-Auslastungs-Metriken, Speicherungs-Auslastungs-Metriken, E/A-Metriken oder andere Metriken, beinhalten. Wie oben im Zusammenhang mit der 4 beschrieben, kann der ferne Computerknoten 102 beliebige Techniken verwenden, um zu bestimmen, ob die Task als Antwort auf das Empfangen der Task-Ablade-Akzeptanz abgeladen wird.
  • In Block 518 empfängt der Computerknoten 102 eine abgeladene Task von dem fernen Computerknoten 102. Die abgeladene Task kann in einem beliebigen passenden Format repräsentiert sein. Die abgeladene Task kann unter Verwendung einer Außer-der-Reihe-Netzwerk-Fähigkeit des Computerknotens 102, wie etwa einer Außer-der-Reihe-Netzwerk-Fähigkeit der Manageability-Engine 130 empfangen werden. In manchen Ausführungsformen kann der Computerknoten 102 in Block 520 die abgeladene Task durch Empfangen eines Task-Befehlsstrings empfangen. Der Computerknoten 102 kann zum Beispiel einen Befehlsstring unter Verwendung einer fernen Konsole der Manageability-Engine 130 empfangen.
  • In Block 522 führt der Computerknoten 102 die abgeladene Task aus. Die abgeladene Task kann zum Beispiel durch Hinzufügen zu einer Task-Warteschlange des Betriebssystems 202 ausgeführt werden und kann dann innerhalb des Betriebssystems 202 ausgeführt werden. In manchen Ausführungsformen kann der Computerknoten 102 in Block 524 die abgeladene Task über eine Management-Agent-Hülle der Manageability-Engine 130 ausführen. In manchen Ausführungsformen kann der Computerknoten 102 in Block 526 die abgeladene Task durch Ausgeben eines Befehls an das Betriebssystem 202, unter Verwendung einer lokalen Konsole der Manageability-Engine 130, ausführen. Nachdem mit dem Ausführen der abgeladenen Task begonnen wurde, schleift das Verfahren 500 zurück zum Block 502, um mit dem Überwachen auf zusätzliche Task-Ablade-Anforderungen weiterzumachen.
  • BEISPIELE
  • Veranschaulichende Beispiele der hier offenbarten Technologien sind unten bereitgestellt. Eine Ausführungsform der Technologien kann eines oder mehrere der unten beschriebenen Beispiel und jede Kombination davon beinhalten.
  • Beispiel 1 beinhaltet eine Rechen-Vorrichtung zum Datenzentrum-Leistungsmanagement, wobei die Rechen-Vorrichtung ein Leistungsmanagement-Modul umfasst, (i) zum Bestimmen eines Leistungsaufnahme-Werts der Rechen-Vorrichtung in einer Firmware-Umgebung der Rechen-Vorrichtung und (ii) zum Bestimmen, in der Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung zu einem Schwellen-Leistungsaufnahme-Wert aufweist; ein Ablade-Anforderungs-Modul (i) zum Rundsenden, durch die Firmware-Umgebung, unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung, als Reaktion auf ein Bestimmen, dass der Leistungsaufnahme-Wert die vordefinierte Beziehung zu dem Schwellen-Leistungsaufnahme-Wert aufweist und (ii) zum Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer fernen Rechen-Vorrichtung als Reaktion auf eine Rundsendung der Task-Ablade-Anforderung, wobei die Reaktion angibt, dass die ferne Rechen-Vorrichtung über Kapazität für eine abgeladene Task verfügt; und ein Task-Ablade-Modul, um die abgeladene Task zu der fernen Rechen-Vorrichtung abzuladen, wobei die abgeladene Task von der fernen Rechen-Vorrichtung ausgeführt werden muss.
  • Beispiel 2 beinhaltet den Gegenstand des Beispiels 1, wobei das Bestimmen des Leistungsaufnahme-Werts umfasst, einen Leistungsaufnahme-Wert für eine Komponente der Rechen-Vorrichtung zu bestimmen.
  • Beispiel 3 beinhaltet den Gegenstand eines der Beispiele 1 und 2, wobei das Bestimmen, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung die vordefinierte Beziehung zu dem Schwellen-Leistungsaufnahme-Wert aufweist, umfasst, zu bestimmen, ob der Leistungsaufnahme-Wert den Schwellen-Leistungsaufnahme-Wert überschreitet.
  • Beispiel 4 beinhaltet den Gegenstand eines der Beispiele 1–3, wobei das Ablade-Anforderungs-Modul ferner eine Leistungs-Anforderung der Task-Ablade-Anforderung durch die Firmware-Umgebung bestimmen muss, als Reaktion auf die Bestimmung, dass der Leistungsaufnahme-Wert die vordefinierte Beziehung zu dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Rundsenden der Task-Ablade-Anforderung umfasst, die Leistungs-Anforderung rundzusenden.
  • Beispiel 5 beinhaltet den Gegenstand eines der Beispiele 1–4, wobei das Ablade-Anforderungs-Modul ferner eine Rechen-Anforderung der Task-Ablade-Anforderung durch die Firmware-Umgebung bestimmen soll, als Reaktion auf die Bestimmung, dass der Leistungsaufnahme-Wert die vordefinierte Beziehung zu dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Rundsenden der Task-Ablade-Anforderung ferner umfasst, die Rechen-Anforderung rundzusenden.
  • Beispiel 6 beinhaltet den Gegenstand eines der Beispiele 1 bis 5, wobei die Rechen-
  • Anforderung eine Prozessor-Anforderung, eine Speicher-Anforderung, eine Speicherungs-Anforderung oder eine E/A-Anforderung umfasst.
  • Beispiel 7 beinhaltet den Gegenstand eines der Beispiele 1–6, wobei das Rundsenden der Task-Ablade-Anforderung umfasst, die Task-Ablade-Anforderung über ein einfaches Netzwerk-Management-Protokoll (SNMP) zu senden.
  • Beispiel 8 beinhaltet den Gegenstand eines der Beispiele 1–7, wobei das Rundsenden der Task-Ablade-Anforderung umfasst, die Task-Ablade-Anforderung an ein Netzwerk oder ein Sub-Netzwerk rundzusenden.
  • Beispiel 9 beinhaltet den Gegenstand eines der Beispiele 1–8, wobei das Rundsenden der Task-Ablade-Anforderung umfasst, die Task-Ablade-Anforderung an eine vordefinierte Sammlung von fernen Rechen-Vorrichtungen rundzusenden.
  • Beispiel 10 beinhaltet den Gegenstand eines der Beispiele 1–9, wobei das Ablade-Anforderungs-Modul ferner, als Reaktion auf den Empfang der Reaktion von der fernen Rechen-Vorrichtung, einen Befehl, durch die Firmware-Umgebung übertragen soll, um die abgeladene Task an ein Betriebssystem der Rechen-Vorrichtung abzuladen; wobei das Abladen der abgeladenen Task umfasst, als Reaktion auf die Übertragung des Befehls an das Betriebssystem, die abgeladene Task durch das Betriebssystem abzuladen.
  • Beispiel 11 beinhaltet den Gegenstand eines der Beispiele 1–10, wobei das Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung umfasst, einen Befehlsstring an die ferne Rechen-Vorrichtung zu übertragen.
  • Beispiel 12 beinhaltet den Gegenstand eines der Beispiele 1–11, wobei das Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung ferner umfasst, den Befehlsstring an eine ferne Konsole einer Firmware-Umgebung der fernen Rechen-Vorrichtung zu übertragen.
  • Beispiel 13 beinhaltet den Gegenstand eines der Beispiele 1–12, und beinhaltet ferner eine Manageability-Engine, um die Firmware-Umgebung zu erstellen.
  • Beispiel 14 beinhaltet den Gegenstand eines der Beispiele 1–13, und beinhaltet ferner ein Ablade-Akzeptanz-Modul zum Empfangen, durch die Firmware-Umgebung über die Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderungs-Rundsendung von einer zweiten fernen Rechen-Vorrichtung; zum Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der zweiten Task-Ablade-Anforderung; zum Bestimmen, basierend auf der Leistungs-Anforderung der zweiten Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die zweite Task-Ablade-Anforderung akzeptiert werden soll; Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die zweite ferne Rechen-Vorrichtung, als Reaktion auf eine Bestimmung, die zweite Task-Ablade-Anforderung zu akzeptieren; und Empfangen, durch die Firmware-Umgebung, einer zweiten abgeladenen Task von der zweiten fernen Rechen-Vorrichtung, als Reaktion auf die Übertragung der Task-Ablade-Akzeptanz; wobei das Task-Ablade-Modul ferner die zweite abgeladene Task, als Reaktion auf den Empfang der zweiten abgeladenen Task, ausführen soll.
  • Beispiel 15 beinhaltet eine Rechen-Vorrichtung für ein Datenzentrums-Leistungs-Management, wobei die Rechen-Vorrichtung ein Ablade-Akzeptanz-Modul umfasst, zum Empfangen, durch eine Firmware-Umgebung der Rechen-Vorrichtung über eine Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung-Rundsendung von einer fernen Rechen-Vorrichtung; Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung; Bestimmen, basierend auf der Leistungs-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die Task-Ablade-Anforderung akzeptiert werden soll; Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die ferne Rechen-Vorrichtung, als Reaktion auf eine Bestimmung, die Task-Ablade-Anforderung zu akzeptieren; und Empfangen, durch die Firmware-Umgebung, einer abgeladenen Task von der fernen Rechen-Vorrichtung, als Reaktion auf die Übertragung der Task-Ablade-Akzeptanz; und ein Task-Ablade-Modul, um, als Reaktion auf den Empfang der abgeladenen Task, die abgeladene Task auszuführen.
  • Beispiel 16 beinhaltet den Gegenstand des Beispiels 15, wobei das Bestimmen, ob die abgeladene Task akzeptiert werden soll, umfasst, einen Leistungsaufnahme-Wert der Rechen-Vorrichtung zu bestimmen.
  • Beispiel 17 beinhaltet den Gegenstand eines der Beispiele 15 und 16, wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, umfasst, einen Leistungsaufnahme-Wert einer Komponente der Rechen-Vorrichtung zu bestimmen.
  • Beispiel 18 beinhaltet den Gegenstand eines der Beispiel 15–17, wobei das Ablade-Akzeptanz-Modul ferner, durch die Firmware-Umgebung, eine Rechen-Anforderung der Task-Ablade-Anforderung bestimmen soll; wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, ferner umfasst, zu bestimmen, basierend auf der Rechen-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, ob die Task-Ablade-Anforderung akzeptiert werden soll;
  • Beispiel 19 beinhaltet den Gegenstand eines der Beispiele 15–18, wobei die Rechen-Anforderung eine Prozessor-Anforderung, eine Speicher-Anforderung, eine Speicherungs-Anforderung oder eine E/A-Anforderung umfasst. Beispiel 20 beinhaltet den Gegenstand eines der Beispiele 15–19, wobei das Empfangen der abgeladenen Task umfasst, einen Befehlsstring von der fernen Rechen-Vorrichtung zu empfangen.
  • Beispiel 21 beinhaltet den Gegenstand eines der Beispiele 15–20, wobei das Ausführen der abgeladenen Task umfasst, den Befehlsstring unter Verwendung einer Management-Hülle der Firmware-Umgebung auszuführen.
  • Beispiel 22 beinhaltet den Gegenstand eines der Beispiele 15–21, wobei das Ausführen der abgeladenen Task umfasst, einen Befehl von der Firmware-Umgebung an ein Betriebssystem der Rechen-Vorrichtung auszugeben.
  • Beispiel 23 beinhaltet den Gegenstand eines der Beispiele 15–22, und beinhaltet ferner eine Manageability-Engine, um die Firmware-Umgebung zu erstellen.
  • Beispiel 24 beinhaltet den Gegenstand eines der Beispiele 15–23, und 27 beinhaltet ferner ein Leistungs-Management-Modul zum (i) Bestimmen, durch die Firmware-Umgebung, eines Leistungsaufnahme-Werts der Rechen-Vorrichtung und (ii) Bestimmen, durch die Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung zu einem Schwellen-Leistungsaufnahme-Wert aufweist; und ein Ablade-Anforderungs-Modul zum: (i) Rundsenden, durch die Firmware-Umgebung unter Verwendung der Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderung als Reaktion auf eine Bestimmung, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist, und (ii) Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer zweiten Rechen-Vorrichtung, als Reaktion auf eine Rundsendung der zweiten Task-Ablade-Anforderung; wobei die Reaktion angibt, dass die zweite ferne Rechen-Vorrichtung über Kapazität für eine zweite abgeladene Task verfügt; wobei das Task-Ablade-Modul ferner die zweite abgeladene Task zu der fernen Rechen-Vorrichtung ablädt, wobei die zweite abgeladene Task von der zweiten fernen Rechen-Vorrichtung ausgeführt werden soll.
  • Beispiel 25 beinhaltet ein Verfahren für Datenzentrum-Leistungsmanagement, wobei das Verfahren Folgendes umfasst: Bestimmen, durch eine Firmware-Umgebung einer Rechen-Vorrichtung eines Leistungsaufnahme-Werts der Rechen-Vorrichtung; Bestimmen, durch die Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung mit einem Schwellen-Leistungsaufnahme-Wert aufweist; Rundsenden, durch die Firmware-Umgebung unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer fernen Rechen-Vorrichtung, als Reaktion auf das Rundsenden der Task-Ablade-Anforderung, wobei die Reaktion angibt, dass die ferne Rechen-Vorrichtung über Kapazität für eine abgeladene Task verfügt; und Abladen, durch die Rechen-Vorrichtung, der abgeladenen Task zu der fernen Rechen-Vorrichtung, wobei die abgeladene Task von der fernen Rechen-Vorrichtung ausgeführt werden soll.
  • Beispiel 26 beinhaltet den Gegenstand des Beispiels 25, wobei das Bestimmen des Leistungsaufnahme-Werts das Bestimmen eines Leistungsaufnahme-Werts für eine Komponente der Rechen-Vorrichtung umfasst.
  • Beispiel 27 beinhaltet den Gegenstand eines der Beispiele 25 und 26, wobei das Bestimmen, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung die vordefinierte Beziehung zu dem Leistungsaufnahme-Wert aufweist, das Bestimmen umfasst, ob der Leistungsaufnahme-Wert den Schwellen-Leistungsaufnahme-Wert überschreitet.
  • Beispiel 28 beinhaltet den Gegenstand eines der Beispiele 25–27, und beinhaltet ferner das Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Rundsenden der Task-Ablade-Anforderung das Rundsenden der Leistungs-Anforderung umfasst.
  • Beispiel 29 beinhaltet den Gegenstand eines der Beispiele 25–28, und beinhaltet ferner das Bestimmen, durch die Firmware-Umgebung, einer Rechen-Anforderung der Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Rundsenden der Task-Ablade-Anforderung ferner das Rundsenden der Rechen-Anforderung umfasst.
  • Beispiel 30 beinhaltet den Gegenstand eines der Beispiele 25–29, wobei die Rechen-Anforderung eine Prozessor-Anforderung, eine Speicher-Anforderung, eine Speicherungs-Anforderung oder eine E/A-Anforderung umfasst.
  • Beispiel 31 beinhaltet den Gegenstand eines der Beispiele 25–30, wobei das Rundsenden der Task-Ablade-Anforderung das Übertragen der Task-Ablade-Anforderung über ein einfaches Netzwerk-Management-Protokoll (SNMP) umfasst.
  • Beispiel 32 beinhaltet den Gegenstand eines der Beispiele 25–31, wobei das Rundsenden der Task-Ablade-Anforderung das Rundsenden der Task-Ablade-Anforderung an ein Netzwerk oder ein Sub-Netzwerk umfasst.
  • Beispiel 33 beinhaltet den Gegenstand eines der Beispiele 25–32, wobei das Rundsenden der Task-Ablade-Anforderung das Rundsenden der Task-Ablade-Anforderung an eine vordefinierte Sammlung von fernen Rechen-Vorrichtungen umfasst.
  • Beispiel 34 beinhaltet den Gegenstand eines der Beispiele 25–33, und beinhaltet ferner das Übertragen, als Reaktion auf das Empfangen der Reaktion von der fernen Rechen-Vorrichtung, eines Befehls durch die Firmware-Umgebung, um die abgeladene Task an ein Betriebssystem der Rechen-Vorrichtung abzuladen; wobei das Abladen der abgeladenen Task, als Reaktion auf das Übertragen des Befehls an das Betriebssystem, das Abladen der abgeladenen Task durch das Betriebssystem umfasst.
  • Beispiel 35 beinhaltet den Gegenstand eines der Beispiele 25–34, wobei das Übertragen der abgeladenen Task zu der fernen Rechen-Vorrichtung das Übertragen eines Befehlsstring an die ferne Rechen-Vorrichtung umfasst.
  • Beispiel 36 beinhaltet den Gegenstand eines der Beispiele 25–35, wobei das Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung ferner das Übertragen des Befehlsstrings an eine ferne Konsole einer Firmware-Umgebung der fernen Rechen-Vorrichtung umfasst.
  • Beispiel 37 beinhaltet den Gegenstand eines der Beispiele 25–36, wobei die Firmware-Umgebung durch eine Manageability-Engine der Rechen-Vorrichtung erstellt wird.
  • Beispiel 38 beinhaltet den Gegenstand eines der Beispiele 25–37, und beinhaltet ferner das Empfangen, durch die Firmware-Umgebung über die Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderungs-Rundsendung von einer zweiten fernen Rechen-Vorrichtung; das Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der zweiten Task-Ablade-Anforderung; das Bestimmen, basierend auf der Leistungs-Anforderung der zweiten Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die zweite Task-Ablade-Anforderung akzeptiert werden soll; das Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die zweite ferne Rechen-Vorrichtung, als Reaktion auf das Bestimmen, die zweite Task-Ablade-Anforderung zu akzeptieren; das Empfangen, durch die Firmware-Umgebung, einer zweiten abgeladenen Task von der zweiten fernen Rechen-Vorrichtung, als Reaktion auf das Übertragen der Task-Ablade-Akzeptanz; und Ausführen, durch die Rechen-Vorrichtung, der zweiten abgeladenen Task, als Reaktion auf das Empfangen der zweiten abgeladenen Task.
  • Beispiel 39 beinhaltet ein Verfahren für Datenzentrum-Leistungsmanagement, wobei das Verfahren Folgendes umfasst: das Empfangen, durch eine Firmware-Umgebung einer Rechen-Vorrichtung über eine Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung-Rundsendung von einer fernen Rechen-Vorrichtung; das Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung; das Bestimmen, basierend auf der Leistungs-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die Task-Ablade-Anforderung akzeptiert werden soll; das Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die ferne Rechen-Vorrichtung, als Reaktion auf das Bestimmen, die Task-Ablade-Anforderung zu akzeptieren; das Empfangen, durch die Firmware-Umgebung, einer abgeladenen Task von der fernen Rechen-Vorrichtung, als Reaktion auf das Übertragen der Task-Ablade-Akzeptanz; und das Ausführen, durch die Rechen-Vorrichtung, der abgeladenen Task, als Reaktion auf das Empfangen der abgeladenen Task.
  • Beispiel 40 beinhaltet den Gegenstand des Beispiels 39, wobei das Bestimmen, ob die abgeladene Task akzeptiert werden soll, das Bestimmen eines Leistungsaufnahme-Werts der Rechen-Vorrichtung umfasst.
  • Beispiel 41 beinhaltet den Gegenstand eines der Beispiele 39, 40, wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, das Bestimmen eines Leistungsaufnahme-Werts einer Komponente der Rechen-Vorrichtung umfasst.
  • Beispiel 42 beinhaltet den Gegenstand eines der Beispiele 39–41, und beinhaltet ferner das Bestimmen, durch die Firmware-Umgebung, einer Rechen-Anforderung der Task-Ablade-Anforderung; wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, ferner das Bestimmen umfasst, basierend auf der Rechen-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, ob die Task-Ablade-Anforderung akzeptiert werden soll;
  • Beispiel 43 beinhaltet den Gegenstand eines der Beispiele 39–42, wobei die Rechen-Anforderung eine Prozessor-Anforderung, eine Speicher-Anforderung, eine Speicherungs-Anforderung oder eine E/A-Anforderung umfasst.
  • Beispiel 44 beinhaltet den Gegenstand eines der Beispiele 39–43, wobei das Empfangen der abgeladenen Task das Empfangen eines Befehlsstrings von der fernen Rechen-Vorrichtung umfasst.
  • Beispiel 45 beinhaltet den Gegenstand eines der Beispiele 39–44, wobei das Ausführen der abgeladenen Task das Ausführen des Befehlsstrings unter Verwendung einer Management-Hülle der Firmware-Umgebung umfasst.
  • Beispiel 46 beinhaltet den Gegenstand eines der Beispiele 39–45, wobei das Ausführen der abgeladenen Task das Ausgeben eines Befehls von der Firmware-Umgebung an ein Betriebssystem der Rechen-Vorrichtung umfasst.
  • Beispiel 47 beinhaltet den Gegenstand eines der Beispiele 39–46, wobei die Firmware-Umgebung durch eine Manageability-Engine der Rechen-Vorrichtung erstellt wird.
  • Beispiel 48 beinhaltet den Gegenstand eines der Beispiele 39–47, und beinhaltet ferner das Bestimmen, durch die Firmware-Umgebung, eines Leistungsaufnahme-Werts der Rechen-Vorrichtung; das Bestimmen, durch die Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung mit einem Schwellen-Leistungsaufnahme-Wert aufweist; das Rundsenden, durch die Firmware-Umgebung unter Verwendung der Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; das Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer zweiten fernen Rechen-Vorrichtung, als Reaktion auf das Rundsenden der zweiten Task-Ablade-Anforderung, wobei die Reaktion angibt, dass die zweite ferne Rechen-Vorrichtung über Kapazität für eine zweite abgeladene Task verfügt; und das Abladen, durch die Rechen-Vorrichtung, der zweiten abgeladenen Task an die zweite ferne Rechen-Vorrichtung, wobei die zweite abgeladene Task von der zweiten fernen Rechen-Vorrichtung ausgeführt werden soll.
  • Beispiel 49 beinhaltet eine Rechen-Vorrichtung, die einen Prozessor umfasst; und einen Speicher, der darin mehrere Anweisungen gespeichert hat, die, wenn sie von einem Prozessor ausgeführt werden, die Rechen-Vorrichtung veranlassen, das Verfahren nach einem der Beispiele 25–48 auszuführen.
  • Beispiel 50 beinhaltet ein oder mehrere maschinenlesbare Speicherungs-Medien, die mehrere darauf gespeicherte Anweisungen umfassen, die, als Reaktion auf deren Ausführung veranlassen, dass eine Rechen-Vorrichtung das Verfahren nach einem der Beispiele 25–48 ausführt.
  • Beispiel 51 beinhaltet eine Rechen-Vorrichtung, die Mittel zum Durchführen des Verfahrens nach einem der Beispiele 25–48 umfasst.
  • Beispiel 52 beinhaltet eine Rechen-Vorrichtung für Datenzentrums-Leistungs-management, wobei die Rechen-Vorrichtung Folgendes umfasst: ein Mittel zum Bestimmen, durch eine Firmware-Umgebung der Rechen-Vorrichtung, eines Leistungsaufnahme-Werts der Rechen-Vorrichtung; ein Mittel zum Bestimmen, durch die Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung mit einem Schwellen-Leistungsaufnahme-Wert aufweist; ein Mittel zum Rundsenden, durch die Firmware-Umgebung unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; ein Mittel zum Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer fernen Rechen-Vorrichtung, als Reaktion auf das Rundsenden der Task-Ablade-Anforderung, wobei die Reaktion angibt, dass die ferne Rechen-Vorrichtung über Kapazität für eine abgeladene Task verfügt; und ein Mittel zum Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung, wobei die abgeladene Task von der fernen Rechen-Vorrichtung ausgeführt werden soll.
  • Beispiel 53 beinhaltet den Gegenstand des Beispiels 52, wobei das Mittel zum Bestimmen des Leistungsaufnahme-Werts Mittel zum Bestimmen eines Leistungsaufnahme-Werts für eine Komponente der Rechen-Vorrichtung umfasst.
  • Beispiel 54 beinhaltet den Gegenstand eines der Beispiele 52 und 53, wobei das Mittel zum Bestimmen, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung die vordefinierte Beziehung zu dem Schwellen-Leistungsaufnahme-Wert aufweist, ein Mittel zum Bestimmen umfasst, ob der Leistungsaufnahme-Wert den Schwellen-Leistungsaufnahme-Wert überschreitet.
  • Beispiel 55 beinhaltet den Gegenstand eines der Beispiele 52–54, und beinhaltet ferner Mittel zum Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Mittel zum Rundsenden der Task-Ablade-Anforderung ein Mittel zum Rundsenden der Leistungs-Anforderung umfasst.
  • Beispiel 56 beinhaltet den Gegenstand eines der Beispiele 52–55, und beinhaltet ferner ein Mittel zum Bestimmen, durch die Firmware-Umgebung, einer Rechen-Anforderung der Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Mittel zum Rundsenden der Task-Ablade-Anforderung ferner ein Mittel zum Rundsenden der Rechen-Anforderung umfasst.
  • Beispiel 57 beinhaltet den Gegenstand eines der Beispiele 52–56, wobei die Rechen-Anforderung eine Prozessor-Anforderung, eine Speicher-Anforderung, eine Speicherungs-Anforderung oder eine E/A-Anforderung umfasst.
  • Beispiel 58 beinhaltet den Gegenstand eines der Beispiele 52–57, wobei das Mittel zum Rundsenden der Task-Ablade-Anforderung Mittel zum Übertragen der Task-Ablade-Anforderung über ein einfaches Netzwerk-Management-Protokoll (SNMP) umfasst.
  • Beispiel 59 beinhaltet den Gegenstand eines der Beispiele 52–58, wobei das Mittel zum Rundsenden der Task-Ablade-Anforderung das Mittel zum Rundsenden der Task-Ablade-Anforderung an ein Netzwerk oder ein Sub-Netzwerk umfasst.
  • Beispiel 60 beinhaltet den Gegenstand eines der Beispiele 52–59, wobei das Mittel zum Rundsenden der Task-Ablade-Anforderung das Mittel zum Rundsenden der Task-Ablade-Anforderung an eine vordefinierte Sammlung von fernen Rechen-Vorrichtungen umfasst.
  • Beispiel 61 beinhaltet den Gegenstand eines der Beispiele 52–60, und beinhaltet ferner Mittel zum Übertragen, als Reaktion auf das Empfangen der Reaktion von der fernen Rechen-Vorrichtung, eines Befehls durch die Firmware-Umgebung, um die abgeladene Task an ein Betriebssystem der Rechen-Vorrichtung abzuladen; wobei das Mittel zum Abladen der abgeladenen Task, als Reaktion auf das Übertragen des Befehls an das Betriebssystem, ein Mittel zum Abladen der abgeladenen Task durch das Betriebssystem umfasst.
  • Beispiel 62 beinhaltet den Gegenstand eines der Beispiele 52–61, wobei das Mittel zum Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung das Mittel zum Übertragen eines Befehlsstrings an die ferne Rechen-Vorrichtung umfasst.
  • Beispiel 63 beinhaltet den Gegenstand eines der Beispiele 52–62, wobei das Mittel zum Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung ferner das Mittel zum Übertragen des Befehlsstrings an eine ferne Konsole einer Firmware-Umgebung der fernen Rechen-Vorrichtung umfasst.
  • Beispiel 64 beinhaltet den Gegenstand eines der Beispiele 52–63, wobei die Firmware-Umgebung durch eine Manageability-Engine der Rechen-Vorrichtung erstellt wird.
  • Beispiel 65 beinhaltet den Gegenstand eines der Beispiele 52–64, und beinhaltet ferner ein Mittel zum Empfangen, durch die Firmware-Umgebung über die Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderungs-Rundsendung von einer zweiten fernen Rechen-Vorrichtung; ein Mittel zum Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der zweiten Task-Ablade-Anforderung; ein Mittel zum Bestimmen, basierend auf der Leistungs-Anforderung der zweiten Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die zweite Task-Ablade-Anforderung akzeptiert werden soll; Mittel zum Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die zweite ferne Rechen-Vorrichtung, als Reaktion auf das Bestimmen, die zweite Task-Ablade-Anforderung zu akzeptieren; Mittel zum Empfangen, durch die Firmware-Umgebung, einer zweiten abgeladenen Task von der zweiten fernen Rechen-Vorrichtung, als Reaktion auf das Übertragen der Task-Ablade-Akzeptanz; und Mittel zum Ausführen der zweiten abgeladenen Task, als Reaktion auf das Empfangen der zweiten abgeladenen Task.
  • Beispiel 66 beinhaltet eine Rechen-Vorrichtung für Datenzentrums-Leistungs-management, wobei die Rechen-Vorrichtung Folgendes umfasst: ein Mittel zum Empfangen, durch eine Firmware-Umgebung der Rechen-Vorrichtung über eine Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung-Rundsendung von einer fernen Rechen-Vorrichtung; ein Mittel zum Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung; ein Mittel zum Bestimmen, basierend auf der Leistungs-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die Task-Ablade-Anforderung akzeptiert werden soll; ein Mittel zum Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die ferne Rechen-Vorrichtung, als Reaktion auf das Bestimmen, die Task-Ablade-Anforderung zu akzeptieren; ein Mittel zum Empfangen, durch die Firmware-Umgebung, einer abgeladenen Task von der fernen Rechen-Vorrichtung, als Reaktion auf das Übertragen der Task-Ablade-Akzeptanz; und ein Mittel zum Ausführen der abgeladenen Task, als Reaktion auf das Empfangen der abgeladenen Task.
  • Beispiel 67 beinhaltet den Gegenstand des Beispiels 66, wobei das Mittel zum Bestimmen, ob die abgeladene Task akzeptiert werden soll, das Mittel zum Bestimmen eines Leistungsaufnahme-Werts der Rechen-Vorrichtung umfasst.
  • Beispiel 68 beinhaltet den Gegenstand eines der Beispiele 66 und 67, wobei das Mittel zum Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, das Mittel zum Bestimmen eines Leistungsaufnahme-Werts einer Komponente der Rechen-Vorrichtung umfasst.
  • Beispiel 69 beinhaltet den Gegenstand eines der Beispiele 66–68, und beinhaltet ferner ein Mittel zum Bestimmen, durch die Firmware-Umgebung, einer Rechen-Anforderung der Task-Ablade-Anforderung; wobei das Mittel zum Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, ferner das Mittel zum Bestimmen umfasst, basierend auf der Rechen-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, ob die Task-Ablade-Anforderung akzeptiert werden soll.
  • Beispiel 70 beinhaltet den Gegenstand eines der Beispiele 66–69, wobei die Rechen-Anforderung eine Prozessor-Anforderung, eine Speicher-Anforderung, eine Speicherungs-Anforderung oder eine E/A-Anforderung umfasst.
  • Beispiel 71 beinhaltet den Gegenstand eines der Beispiele 66–70, wobei das Mittel zum Empfangen der abgeladenen Task das Mittel zum Empfangen eines Befehlsstrings von der fernen Rechen-Vorrichtung umfasst.
  • Beispiel 72 beinhaltet den Gegenstand eines der Beispiele 66–71, wobei das Mittel zum Ausführen der abgeladenen Task das Mittel zum Ausführen des Befehlsstrings unter Verwendung einer Management-Hülle der Firmware-Umgebung umfasst.
  • Beispiel 73 beinhaltet den Gegenstand eines der Beispiele 66–72, wobei das Mittel zum Ausführen der abgeladenen Task das Mittel zum Ausgeben eines Befehls von der Firmware-Umgebung an ein Betriebssystem der Rechen-Vorrichtung umfasst.
  • Beispiel 74 beinhaltet den Gegenstand eines der Beispiele 66-73, wobei die Firmware-Umgebung durch eine Manageability-Engine der Rechen-Vorrichtung erstellt wird.
  • Beispiel 75 beinhaltet den Gegenstand eines der Beispiele 66-74, und beinhaltet ferner ein Mittel zum Bestimmen, durch die Firmware-Umgebung, eines Leistungsaufnahme-Werts der Rechen-Vorrichtung; ein Mittel zum Bestimmen, durch die Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung mit einem Schwellen-Leistungsaufnahme-Wert aufweist; ein Mittel zum Rundsenden, durch die Firmware-Umgebung unter Verwendung der Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; ein Mittel zum Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer zweiten fernen Rechen-Vorrichtung, als Reaktion auf das Rundsenden der zweiten Task-Ablade-Anforderung; wobei die Reaktion angibt, dass die zweite ferne Rechen-Vorrichtung über Kapazität für eine zweite abgeladene Task verfügt; und Mittel zum Abladen der zweiten abgeladenen Task an die zweite ferne Rechen-Vorrichtung, wobei die zweite abgeladene Task von der zweiten fernen Rechen-Vorrichtung ausgeführt werden soll.

Claims (24)

  1. Rechen-Vorrichtung für Datenzentrums-Leistungsmanagement, wobei die Rechen-Vorrichtung Folgendes umfasst: ein Leistungsmanagement-Modul, (i) zum Bestimmen eines Leistungsaufnahme-Werts der Rechen-Vorrichtung in einer Firmware-Umgebung der Rechen-Vorrichtung und (ii) zum Bestimmen, in der Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung zu einem Schwellen-Leistungsaufnahme-Wert aufweist; ein Ablade-Anforderungs-Modul (i) zum Rundsenden, durch die Firmware-Umgebung unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung, als Reaktion auf ein Bestimmen, dass der Leistungsaufnahme-Wert die vordefinierte Beziehung zu dem Schwellen-Leistungsaufnahme-Wert aufweist und (ii) zum Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer fernen Rechen-Vorrichtung, als Reaktion auf eine Rundsendung der Task-Ablade-Anforderung, wobei die Reaktion angibt, dass die ferne Rechen-Vorrichtung über Kapazität für eine abgeladene Task verfügt; und ein Task-Ablade-Modul, um die abgeladene Task zu der fernen Rechen-Vorrichtung abzuladen, wobei die abgeladene Task von der fernen Rechen-Vorrichtung ausgeführt werden soll.
  2. Rechen-Vorrichtung nach Anspruch 1, wobei das Bestimmen des Leistungsaufnahme-Werts umfasst, einen Leistungsaufnahme-Wert für eine Komponente der Rechen-Vorrichtung zu bestimmen.
  3. Rechen-Vorrichtung nach Anspruch 1, wobei das Ablade-Anforderungs-Modul ferner ausgelegt ist zum: Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung, als Reaktion auf die Bestimmung, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Rundsenden der Task-Ablade-Anforderung umfasst, die Leistungs-Anforderung rundzusenden.
  4. Rechen-Vorrichtung nach Anspruch 3, wobei das Ablade-Anforderungs-Modul ferner ausgelegt ist zum: Bestimmen, durch die Firmware-Umgebung, einer Rechen-Anforderung der Task-Ablade-Anforderung, als Reaktion auf die Bestimmung, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Rundsenden der Task-Ablade-Anforderung ferner umfasst, die Rechen-Anforderung rundzusenden.
  5. Rechen-Vorrichtung nach Anspruch 4, wobei die Rechen-Anforderung eine Prozessor-Anforderung, eine Speicher-Anforderung, eine Speicherungs-Anforderung oder eine E/A-Anforderung umfasst.
  6. Rechen-Vorrichtung nach Anspruch 1, wobei das Ablade-Anforderungs-Modul ferner ausgelegt ist zum: Übertragen, als Reaktion auf den Empfang der Reaktion von der fernen Rechen-Vorrichtung, eines Befehls durch die Firmware-Umgebung, um die abgeladene Task an ein Betriebssystem der Rechen-Vorrichtung abzuladen; wobei das Abladen der abgeladenen Task umfasst, als Reaktion auf die Übertragung des Befehls an das Betriebssystem, die abgeladene Task durch das Betriebssystem abzuladen.
  7. Rechen-Vorrichtung nach Anspruch 1, wobei das Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung umfasst, einen Befehlsstring an die ferne Rechen-Vorrichtung zu übertragen.
  8. Rechen-Vorrichtung nach Anspruch 7, wobei das Abladen der abgeladenen Task zu der fernen Rechen-Vorrichtung ferner umfasst, den Befehlsstring an eine ferne Konsole einer Firmware-Umgebung der fernen Rechen-Vorrichtung zu übertragen.
  9. Rechen-Vorrichtung nach einem der Ansprüche 1 bis 8, die ferner eine Manageability-Engine, um die Firmware-Umgebung zu erstellen, umfasst.
  10. Rechen-Vorrichtung nach einem der Ansprüche 1 bis 8, die ferner ein Ablade-Akzeptanz-Modul umfasst: zum Empfangen, durch die Firmware-Umgebung über die Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderungs-Rundsendung von einer zweiten fernen Rechen-Vorrichtung; zum Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der zweiten Task-Ablade-Anforderung; zum Bestimmen, basierend auf der Leistungs-Anforderung der zweiten Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die zweite Task-Ablade-Anforderung akzeptiert werden soll; zum Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die zweite ferne Rechen-Vorrichtung, als Reaktion auf eine Bestimmung, die zweite Task-Ablade-Anforderung zu akzeptieren; und zum Empfangen, durch die Firmware-Umgebung, einer zweiten abgeladenen Task von der zweiten Rechen-Vorrichtung, als Reaktion auf die Übertragung der Task-Ablade-Akzeptanz; wobei das Task-Ablade-Modul ferner die zweite abgeladene Task, als Reaktion auf den Empfang der zweiten abgeladenen Task, ausführen soll.
  11. Rechen-Vorrichtung für Datenzentrums-Leistungsmanagement, wobei die Rechen-Vorrichtung Folgendes umfasst: ein Ablade-Akzeptanz-Modul zum: Empfangen, durch eine Firmware-Umgebung der Rechen-Vorrichtung über eine Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung-Rundsendung von einer fernen Rechen-Vorrichtung; Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung; Bestimmen, basierend auf der Leistungs-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die Task-Ablade-Anforderung akzeptiert werden soll; Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die ferne Rechen-Vorrichtung, als Reaktion auf eine Bestimmung, die Task-Ablade-Anforderung zu akzeptieren; und Empfangen, durch die Firmware-Umgebung, einer abgeladenen Task von der fernen Rechen-Vorrichtung, als Reaktion auf die Übertragung der Task-Ablade-Akzeptanz; und ein Task-Ablade-Modul, das, als Reaktion auf den Empfang der abgeladenen Task, die abgeladene Task ausführt.
  12. Rechen-Vorrichtung nach Anspruch 11, wobei das Bestimmen, ob die abgeladene Task akzeptiert werden soll, umfasst, einen Leistungsaufnahme-Wert der Rechen-Vorrichtung zu bestimmen.
  13. Rechen-Vorrichtung nach Anspruch 11, wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, umfasst, einen Leistungsaufnahme-Wert einer Komponente der Rechen-Vorrichtung zu bestimmen.
  14. Rechen-Vorrichtung nach einem der Ansprüche 11–13, wobei: das Ablade-Akzeptanz-Modul ferner, durch die Firmware-Umgebung, eine Rechen-Anforderung der Task-Ablade-Anforderung bestimmen soll; wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, ferner umfasst, zu bestimmen, basierend auf der Rechen-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, ob die Task-Ablade-Anforderung akzeptiert werden soll;
  15. Verfahren für Datenzentrums-Leistungsmanagement, wobei das Verfahren Folgendes umfasst: Bestimmen, durch eine Firmware-Umgebung einer Rechen-Vorrichtung, eines Leistungsaufnahme-Werts der Rechen-Vorrichtung; Bestimmen, durch die Firmware-Umgebung, ob der Leistungsaufnahme-Wert der Rechen-Vorrichtung eine vordefinierte Beziehung mit einem Schwellen-Leistungsaufnahme-Wert aufweist; Rundsenden, durch die Firmware-Umgebung unter Verwendung einer Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vordefinierte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; Empfangen, durch die Firmware-Umgebung, einer Reaktion von einer fernen Rechen-Vorrichtung, als Reaktion auf das Rundsenden der Task-Ablade-Anforderung, wobei die Reaktion angibt, dass die ferne Rechen-Vorrichtung über Kapazität für eine abgeladene Task verfügt; und Abladen, durch die Rechen-Vorrichtung, der abgeladenen Task zu der fernen Rechen-Vorrichtung, wobei die abgeladene Task von der fernen Rechen-Vorrichtung ausgeführt werden soll.
  16. Verfahren nach Anspruch 15, wobei das Bestimmen des Leistungsaufnahme-Werts das Bestimmen eines Leistungsaufnahme-Werts für eine Komponente der Rechen-Vorrichtung umfasst.
  17. Verfahren nach Anspruch 15, das ferner Folgendes umfasst: das Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; und das Bestimmen, durch die Firmware-Umgebung, einer Rechen-Anforderung der Task-Ablade-Anforderung, als Reaktion auf das Bestimmen, dass der Leistungsaufnahme-Wert die vorbestimmte Beziehung mit dem Schwellen-Leistungsaufnahme-Wert aufweist; wobei das Rundsenden der Task-Ablade-Anforderung das Rundsenden der Leistungs-Anforderung und der Rechen-Anforderung umfasst.
  18. Verfahren nach Anspruch 15, wobei die Firmware-Umgebung durch eine Manageability-Engine der Rechen-Vorrichtung erstellt wird.
  19. Verfahren nach Anspruch 15, das ferner Folgendes umfasst: das Empfangen, durch die Firmware-Umgebung über die Außer-der-Reihe-Kommunikations-Einrichtung, einer zweiten Task-Ablade-Anforderungs-Rundsendung von einer zweiten fernen Rechen-Vorrichtung; das Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der zweiten Task-Ablade-Anforderung; das Bestimmen, basierend auf der Leistungs-Anforderung der zweiten Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die zweite Task-Ablade-Anforderung akzeptiert werden soll; das Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die zweite ferne Rechen-Vorrichtung, als Reaktion auf das Bestimmen, die zweite Task-Ablade-Anforderung zu akzeptieren; das Empfangen, durch die Firmware-Umgebung, einer zweiten abgeladenen Task von der zweiten Rechen-Vorrichtung, als Reaktion auf das Übertragen der Task-Ablade-Akzeptanz; und das Ausführen, durch die Rechen-Vorrichtung, der zweiten abgeladenen Task, als Reaktion auf das Empfangen der zweiten abgeladenen Task.
  20. Verfahren für Datenzentrums-Leistungsmanagement, wobei das Verfahren Folgendes umfasst: das Empfangen, durch eine Firmware-Umgebung einer Rechen-Vorrichtung über eine Außer-der-Reihe-Kommunikations-Einrichtung, einer Task-Ablade-Anforderung-Rundsendung von einer fernen Rechen-Vorrichtung; das Bestimmen, durch die Firmware-Umgebung, einer Leistungs-Anforderung der Task-Ablade-Anforderung; das Bestimmen, basierend auf der Leistungs-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, durch die Firmware-Umgebung, ob die Task-Ablade-Anforderung akzeptiert werden soll; das Übertragen, durch die Firmware-Umgebung, einer Task-Ablade-Akzeptanz an die ferne Rechen-Vorrichtung, als Reaktion auf das Bestimmen, die Task-Ablade-Anforderung zu akzeptieren; das Empfangen, durch die Firmware-Umgebung, einer abgeladenen Task von der fernen Rechen-Vorrichtung, als Reaktion auf das Übertragen der Task-Ablade-Akzeptanz; und das Ausführen, durch die Rechen-Vorrichtung, der abgeladenen Task, als Reaktion auf das Empfangen der abgeladenen Task.
  21. Verfahren nach Anspruch 20, wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, das Bestimmen eines Leistungsaufnahme-Werts einer Komponente der Rechen-Vorrichtung umfasst.
  22. Verfahren nach Anspruch 20, das ferner Folgendes umfasst: das Bestimmen, durch die Firmware-Umgebung, einer Rechen-Anforderung der Task-Ablade-Anforderung; wobei das Bestimmen, ob die Task-Ablade-Anforderung akzeptiert werden soll, ferner das Bestimmen umfasst, basierend auf der Rechen-Anforderung der Task-Ablade-Anforderung und den verfügbaren Ressourcen der Rechen-Vorrichtung, ob die Task-Ablade-Anforderung akzeptiert werden soll;
  23. Rechen-Vorrichtung, die Folgendes umfasst: einen Prozessor; und einen Speicher, der darin mehrere Anweisungen gespeichert hat, die, wenn sie von einem Prozessor ausgeführt werden, die Rechen-Vorrichtung veranlassen, das Verfahren nach einem der Ansprüche 15–22 auszuführen.
  24. Ein oder mehrere maschinenlesbare Speicherungs-Medien, die mehrere darauf gespeicherte Anweisungen umfassen, die, als Reaktion auf deren Ausführung veranlassen, dass eine Rechen-Vorrichtung das Verfahren nach einem der Ansprüche 15–22 ausführt. Rechen-Vorrichtung, die Mittel zum Durchführen des Verfahrens nach einem der Ansprüche 15–22 umfasst.
DE102015118705.1A 2014-12-09 2015-11-02 Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren Withdrawn DE102015118705A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/564,341 US9684364B2 (en) 2014-12-09 2014-12-09 Technologies for out-of-band power-based task scheduling for data centers
US14/564,341 2014-12-09

Publications (1)

Publication Number Publication Date
DE102015118705A1 true DE102015118705A1 (de) 2016-06-09

Family

ID=55974374

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015118705.1A Withdrawn DE102015118705A1 (de) 2014-12-09 2015-11-02 Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren

Country Status (3)

Country Link
US (1) US9684364B2 (de)
CN (1) CN105700957A (de)
DE (1) DE102015118705A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
IN2015CH04669A (de) * 2015-09-03 2015-09-11 Wipro Ltd
WO2017112866A1 (en) * 2015-12-23 2017-06-29 Idac Holdings, Inc. Methods of offloading computation from mobile device to cloud
US10101796B2 (en) * 2016-05-27 2018-10-16 Taiwan Semiconductor Manufacturing Company, Ltd. Processor power estimation
US10594798B2 (en) * 2016-06-16 2020-03-17 Veniam, Inc. Systems and methods for managing containers in a network of moving things
CN106168939B (zh) * 2016-07-21 2019-11-12 中铁二院工程集团有限责任公司 支持多计算任务和多计算节点的计算协作方法
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US20180039519A1 (en) * 2016-08-08 2018-02-08 Qualcomm Incorporated Systems and methods for managing processing load
US10768997B2 (en) 2016-12-05 2020-09-08 International Business Machines Corporation Tail latency-based job offloading in load-balanced groups
US10700978B2 (en) 2016-12-05 2020-06-30 International Business Machines Corporation Offloading at a virtual switch in a load-balanced group
DE102017109109A1 (de) * 2017-04-27 2018-10-31 Vorwerk & Co. Interholding Gmbh Verfahren zur koordinierten Ansteuerung von mindestens zwei Geräten
US10725834B2 (en) * 2017-11-30 2020-07-28 International Business Machines Corporation Job scheduling based on node and application characteristics
CN108449401A (zh) * 2018-03-12 2018-08-24 厦门益东智能科技有限公司 一种基于区块链技术的算力共享方法及系统
US11418322B2 (en) 2019-03-26 2022-08-16 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11398895B2 (en) * 2019-03-26 2022-07-26 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11302055B2 (en) 2019-04-01 2022-04-12 Apple Inc. Distributed processing in computer generated reality system
US20200409764A1 (en) * 2019-06-29 2020-12-31 Intel Corporation Core-to-core "snoop" instruction variants
US11372711B2 (en) 2019-06-29 2022-06-28 Intel Corporation Apparatus and method for fault handling of an offload transaction
CN112486313B (zh) * 2019-09-11 2024-03-26 华为技术有限公司 终端的节电方法和装置
CN110995622A (zh) * 2019-11-22 2020-04-10 苏州浪潮智能科技有限公司 一种交换机功率获取方法与装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572251B2 (en) * 2008-11-26 2013-10-29 Microsoft Corporation Hardware acceleration for remote desktop protocol
US8495129B2 (en) * 2010-03-16 2013-07-23 Microsoft Corporation Energy-aware code offload for mobile devices
US9104412B2 (en) * 2012-12-28 2015-08-11 International Business Machines Corporation Mobile device offloading its task to a peer device when available power is below a threshold level

Also Published As

Publication number Publication date
US20160162004A1 (en) 2016-06-09
US9684364B2 (en) 2017-06-20
CN105700957A (zh) 2016-06-22

Similar Documents

Publication Publication Date Title
DE102015118705A1 (de) Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE112020007201T5 (de) Speicherzuordnung für verteilte Verarbeitungsvorrichtungen
DE112011100392B4 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
DE112017001762T5 (de) Technologien für den einsatz dynamischer underlay-netzwerke in cloud-computing-infrastrukturen
DE102018005103A1 (de) Techniken zum Migrieren einer virtuellen Maschine unter Verwendung von verteilten Rechenbetriebsmitteln
DE112011101705B4 (de) Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung
DE112020006859T5 (de) Beibehaltung von speicher-namensraum-identifizierern für die migration von virtualisierten ausführungsumgebungen im laufenden betrieb
DE102021122880A1 (de) Infrastrukturverarbeitungseinheit
DE102008003681B4 (de) Stromverteilungssystem einschließlich eines Steuermoduls und eines Verfahrens zum Verwenden des Systems
DE102020132078A1 (de) Ressourcenzuteilung basierend auf anwendbarem service level agreement
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
DE112013007696T5 (de) Dienstvorlagenerzeugung und -einsatz basierend auf Erfordernissen der Vereinbarung über die Verbindungsgüte
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112017003688T5 (de) Technologien zur Durchführung einer Orchestrierung mit Online-Analyse von Telemetriedaten
DE102015102678A1 (de) Startabbild- discovery und -bereitstellung
DE102015119890A1 (de) Paralleles Verarbeiten von Service-Funktionen in Service-Funktionsketten
DE112016004347T5 (de) Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten
DE102022104207A1 (de) Pooling von Netzwerkverarbeitungsressourcen
CN111880902A (zh) 一种pod创建方法、装置、设备及可读存储介质
DE102014109518A1 (de) Techniken zur Initialisierung von einem Speichergerät, auf das von der Ferne zugegriffen werden kann
DE102014117462A1 (de) Poolen von Speicherressourcen über mehrere Knoten hinweg
DE102019130686A1 (de) Technologien zur bereitstellung dynamischer auswahl von edge- und lokalen beschleunigerressourcen
DE112012002404B4 (de) Konfiguration und Management virtueller Netzwerke
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee