DE112010003338T5 - Dezentrale Lastverteilung zum Verringern der Energie- und/oder Kühlkosten in einem ereignisgesteuerten System - Google Patents

Dezentrale Lastverteilung zum Verringern der Energie- und/oder Kühlkosten in einem ereignisgesteuerten System Download PDF

Info

Publication number
DE112010003338T5
DE112010003338T5 DE112010003338T DE112010003338T DE112010003338T5 DE 112010003338 T5 DE112010003338 T5 DE 112010003338T5 DE 112010003338 T DE112010003338 T DE 112010003338T DE 112010003338 T DE112010003338 T DE 112010003338T DE 112010003338 T5 DE112010003338 T5 DE 112010003338T5
Authority
DE
Germany
Prior art keywords
task
node
tasks
target
load
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.)
Granted
Application number
DE112010003338T
Other languages
English (en)
Other versions
DE112010003338B4 (de
Inventor
Geetika LAKSHMANAN
Yuri Rabinovich
Robert Schloss
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003338T5 publication Critical patent/DE112010003338T5/de
Application granted granted Critical
Publication of DE112010003338B4 publication Critical patent/DE112010003338B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Power Sources (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Computerrealisiertes Verfahren, Computerprogrammprodukt und computerlesbares Speichermedium zum dezentralisierten Anordnen von Lasten in einem ereignisgesteuerten System, um die Energie- und Kühlkosten zu minimieren. Dazu gehört das Empfangen eines Datenflusses, der von einer Vielzahl von Aufgaben an einer Vielzahl in dem ereignisgesteuerten System verarbeitet, wobei das System zustandsbehaftete und zustandslose Elemente zum Verarbeiten von Ereignissen enthält, wobei die Vielzahl von Aufgaben, die aus der Menge, welche aus hierarchischen Aufgaben (eine Aufgabe, die von der Ausgabe einer anderen Aufgabe abhängt), nichthierarchischen Aufgaben (eine Aufgabe, die nicht von der Ausgabe einer anderen Aufgabe abhängt) und Mischungen daraus besteht, ausgewählt wird. Knoten werden darauf untersucht, ob sie stillgelegt werden können, wenn ihre momentanen Aufgaben zu anderen Knoten migriert werden, während die Lastverteilungs- und Energieeffizienz-Parameter erfüllt sind und die erwartete Zeitdauer des Stilllegens Vorteile mit sich bringt, die die Kosten des Stilllegens und den späteren Neustart kompensieren. Zusätzlich wenden Aufgaben darauf untersucht, ob sie an Nachbarknoten wandern, um die Systemlast der Aufgabenverarbeitung zu verteilen und die Kühlkosten zu verringern.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf die Verarbeitung von Datenströmen unter Verwendung mehrerer Knoten durch eine Vielzahl von durch Software realisierten Aufgaben (tasks) und bezieht sich insbesondere auf die Lastverteilung mit dem Ziel, die Energiekosten zu verringern, indem Aufgaben auf eine Teilmenge von möglichen Knoten konzentriert werden, die Zielknoten genannt werden, wobei vorgegebene Kriterien hinsichtlich der Qualität der Lastenverteilung (wie z. B. die erwartete Ende-zu-Ende-Durchsatzzeit) erfüllt werden und andere Knoten ohne Aufgaben als Energiesparmaßnahme stillgelegt werden können.
  • Mit der Verbreitung von Internetverbindungen und vernetzten Sensoreinheiten geht eine wachsende Menge digitaler Daten einher, die über eine große Anzahl von Online-Quellen verfügbar ist. Diese Online-Quellen erzeugen und stellen ununterbrochen Daten bereit (z. B. Nachrichtenelemente, Finanzdaten, Sensorwerte, Internet-Geschäftsdatensätze und Ähnliches) an ein Netzwerk in der Form von Datenströmen bereit. Die Datenstrom-Verarbeitungseinheiten werden üblicherweise in einem Netzwerk verwendet, um diese Datenströme zu empfangen oder zu überwachen und sie zu verarbeiten, um Ergebnisse in einem verwendbaren Format zu erzeugen. Beispielsweise kann eine Datenstrom-Verarbeitungseinheit eingesetzt werden, um eine Verbindungsoperation auszuführen, in der verwandte Datenelemente aus zwei oder mehreren Datenströmen (z. B. aus zwei oder mehreren Nachrichtenquellen) ausgewählt, zusammengeführt oder ausgewertet werden, um z. B. eine Ergebnisliste zu erzeugen oder sich wechselseitig zu bestätigen.
  • Die Eingangsraten typischer Datenströme stellt jedoch ein Problem dar. Da Datenstrom-Verarbeitungseinheiten keinen Einfluss auf die bisweilen unregelmäßigen und unvorhersehbaren Datenraten haben, mit denen Datenströme eingehen, ist es nicht ungewöhnlich, dass eine Datenstrom-Verarbeitungseinheit über ihre Kapazität hinaus belastet wird, besonders während Kurzzeitspitzen der Datenraten. Übliche Datenstrom-Verarbeitungseinheiten bewältigen solche Lastprobleme durch beliebiges Aussondern von Datenströmen (z. B. Ablehnen, die Datenströme zu empfangen). Während dies die Belastung verringert, führt die beliebige Natur der Strategie zu unvorhersehbaren und nicht optimalen Datenverarbeitungs-Ergebnissen, da die Datenströme mit nützlichen Daten unwissentlich ausgesondert werden, während Datenströme mit unwichtigen Daten aufrecht erhalten und verarbeitet werden.
  • Die Mehrheit bekannter Lösungen für die Lastverteilung in ereignisgesteuerten Systemen setzt voraus, dass die verarbeitenden Elemente zustandslos sind. Sehr wenige bekannte Lösungen befassen sich mit zustandsbehafteten Operatoren, da das Migrieren von zustandsbehafteten Operatoren zum Ziel der Lastverteilung herausfordernd und aufwändig ist. Um einen zustandsbehafteten Operator zu migrieren, muss die gesamte Datenstrom-Verarbeitung unterbrochen werden, jeder notwendige Zustand muss migriert werden, und alle Pfade zum Weiterleiten von Ereignissen müssen entsprechend aktualisiert werden. Darüber hinaus handelt es sich bei der Mehrheit dieser Lösungen um zentralisierte Lösungen.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Da Gruppierungen von Maschinen die Arbeitslast verteilen können, besteht eine andere Strategie, die von den Erfindern vorgeschlagen wird, darin, mehrere Knoten zum Verwalten der Arbeitslast zu verwenden. Und wenn eine solche Strategie während einer Zeitdauer zum Einsatz kommt, in der das Volumen des Datenstroms nachlässt, kann eine Strategie, die Aufgaben zurück an weniger Knoten zu verschieben und einige Knoten gemeinsam stillzulegen, die Energiekosten und Kühlkosten verringern.
  • Die verschiedenen Vorteile und Ziele der vorliegenden Erfindung werden, wie oben und hier nachfolgend beschrieben wird, erreicht, indem gemäß einem ersten Gesichtspunkt der Erfindung ein Verfahren zur dezentralen Lastverteilung in einem ereignisgesteuerten System bereitgestellt wird, wobei das Verfahren die Schritte des Empfangens eines Datenstroms beinhaltet, der von einer Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System mit zustandslosen und zustandsbehafteten Bestandteilen zur Ereignisverarbeitung verarbeitet werden soll, wobei die Vielzahl von Aufgaben aus der Gruppe ausgewählt wird, die aus hierarchischen Aufgaben, nichthierarchischen Aufgaben und Mischungen davon besteht, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe, die von der Ausgabe einer anderen Aufgabe abhängt, und bei einer nichthierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt; Sammeln von statistischen Daten über jede Aufgabe, die von jedem Knoten aufgenommen (hosted) wird, und über jede Eigenschaft des Knotens einschließlich seiner Wärmeeigenschaften; Erzeugen einer Liste von Nachbarknoten unter Verwendung der gesammelten Statistiken, an welche Knoten eine Aufgabe teilweise oder ganz übertragen werden kann; Auswählen wenigstens einer Aufgabe, Zielaufgabe genannt, mit einer ersten Temperatur an einem Knoten, die zum Migrieren zu einem Nachbarknoten, Zielknoten genannt, Betracht kommt, um die Systemlast der Verarbeitung der wenigstens einen Aufgabe zu verteilen und die Kühlkosten zu verringern; Auswählen des Zielknotens, zu dem die wenigstens eine Zielaufgabe migriert werden kann, wobei der Zielknoten eine zweite Temperatur aufweist; Migrieren der Zielaufgabe zu dem Zielknoten, falls das Migrieren die erste Temperatur verringern wird und die zweite Temperatur einen vorgegebenen akzeptablen Wärmeschwellenwert nicht übersteigt; und Einrichten eines Lastaustausch-Protokolls an jedem Knoten zum Verwalten der Anzahl von Zielaufgaben-Verschiebungen, wobei dezentrale Lastverschiebungen in dem ereignisgesteuerten System zur Verteilung der Gesamt-Systemlast führen und die Kühlkosten verringern.
  • Nach einem zweiten Gesichtspunkt der Erfindung wird ein Computerprogrammprodukt bereitgestellt, das ein computerbeschreibbares Speichermedium mit einem computerlesbaren Programmcode zur dezentralen Lastverteilung in einem ereignisgesteuerten System einschließlich Folgendem enthält: computerlesbaren Programmcode, geeignet zum Empfangen eines Datenstroms, der von einer Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System mit zustandsbehafteten und zustandslosen Bestandteilen zur Ereignisverarbeitung verarbeitet werden soll, wobei die Vielzahl von Aufgaben aus der Gruppe ausgewählt wird, die aus hierarchischen Aufgaben, nichthierarchischen Aufgaben und Mischungen davon besteht, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe, die von der Ausgabe einer anderen Aufgabe abhängt, und bei einer nichthierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt; computerlesbaren Programmcode, geeignet zum Anlegen von Statistiken über jede von jedem Knoten aufgenommene Aufgabe und über die Eigenschaften des Knotens einschließlich seiner Wärme-Kennwerte; computerlesbaren Programmcode, geeignet zum Erzeugen einer Liste von Nachbarknoten, an die eine Aufgabe teilweise oder ganz übertragen werden kann, wobei die angelegten Statistiken verwendet werden; computerlesbaren Programmcode, geeignet zum Auswählen wenigstens einer Aufgabe, als Zielaufgabe bezeichnet, mit einer ersten Temperatur an einem Knoten, die zum Migrieren zu einem Nachbarknoten Betracht kommt, um die Systemlast der Verarbeitung der wenigstens einen Aufgabe zu verteilen und die Kühlkosten zu verringern; computerlesbaren Programmcode, geeignet zum Auswählen des Zielknotens, zu dem die wenigstens eine Aufgabe migriert werden kann, wobei der Zielknoten eine zweite Temperatur aufweist; computerlesbaren Programmcode, geeignet zum Migrieren der Zielaufgabe zu dem Zielknoten, falls die Migration die erste Temperatur verringert und die zweite Temperatur einen vorgegebenen akzeptablen Wärmeschwellenwert nicht übersteigt; und computerlesbaren Programmcode, geeignet zum Einrichten eines Lastaustausch-Protokolls an jedem Knoten zum Verwalten der Anzahl von Migrationen von Zielaufgaben, wobei dezentrale Lastverschiebungen in dem ereignisgesteuerten System zur Verteilung der Gesamt-Systemlast führen und die Kühlkosten verringern kann.
  • Gemäß einem dritten Gesichtspunkt der Erfindung wird ein Verfahren zur dezentralen Lastverteilung in einem ereignisgesteuerten System bereitgestellt, wobei das Verfahren die Schritte des Empfangens eines Datenstroms enthält, der durch eine Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System mit zustandsbehafteten und zustandslosen Bestandteilen zur Ereignisverarbeitung verarbeitet werden soll, wobei die Vielzahl von Aufgaben aus der Gruppe ausgewählt wird, die aus hierarchischen Aufgaben, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe handelt, die von der Ausgabe einer anderen Aufgabe abhängt, nichthierarchischen Aufgaben, wobei es sich bei einer nichthierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt, und Mischungen davon besteht; Anlegen von Statistiken über jede an jedem Knoten aufgenommene Aufgabe; Erzeugen einer Liste von Nachbarknoten, an die eine Aufgabe teilweise oder ganz übertragen werden kann, wobei die angelegten Statistiken verwendet werden; Auswählen wenigstens eines Knotens, als Spenderknoten bezeichnet, für den Übergang in den Ruhezustand; Auswählen der Aufgaben an dem Spenderknoten, bezeichnet als Zielaufgaben, die für die Migration zu einen Nachbarknoten aus der Liste der Nachbarknoten, bezeichnet als Zielknoten, in Betracht kommen; Auswählen des Zielknotens, zu dem die Zielaufgaben migriert werden können, wobei der Zielknoten bestimmte Kriterien bzgl. der Qualität der Lastverteilung erfüllt; Einrichten eines Lastaustausch-Protokolls an jedem Knoten zum Verwalten der Anzahl von Migration von Zielaufgaben, wobei dezentrale Lastverschiebungen in dem ereignisgesteuerten System zur Verteilung der Gesamt-Systemlast führen; Migrieren der Zielaufgaben von dem Spenderknoten zu dem Zielknoten und Überführen der Spenderknotens in den Ruhemodus.
  • Gemäß einem vierten Gesichtspunkt der Erfindung wird ein Computerprogrammprodukt bereitgestellt, das Folgendes umfasst: ein computerbeschreibbares Speichermedium mit einem computerlesbaren Programmcode zur dezentralen Lastenverteilung in einem ereignisgesteuerten System, welches Folgendes umfasst: computerlesbaren Programmcode, geeignet zum Empfangen eines Datenstroms, der durch eine Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System mit zustandsbehafteten und zustandslosen Bestandteilen zur Ereignisverarbeitung verarbeitet werden soll, wobei die Vielzahl von Aufgaben aus der Gruppe ausgewählt wird, die aus hierarchischen Aufgaben, nichthierarchischen Aufgaben und Mischungen davon besteht, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe handelt, die von der Ausgabe einer anderen Aufgabe abhängt, und bei einer nichthierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt; computerlesbaren Programmcode, geeignet zum Anlegen von Statistiken über jede von jedem Knoten beherbergte Aufgabe; computerlesbaren Code zum Erzeugen einer Liste von Nachbarknoten, an die eine Aufgabe teilweise oder ganz übertragen werden kann, wobei die angelegten Statistiken verwendet werden; computerlesbaren Code, geeignet zum Auswählen wenigstens eines Knotens, als Spenderknoten bezeichnet, für den Übergang in den Ruhezustand; computerlesbaren Programmcode, geeignet zum Auswählen der Aufgaben an dem Spenderknoten, bezeichnet als Zielaufgaben, die für die Migration zu einem Nachbarknoten aus der Liste der Nachbarknoten, bezeichnet als Zielknoten, in Betracht kommen; computerlesbaren Programmcode, geeignet zum Auswählen des Zielknotens, an den die Zielaufgaben verschoben werden können, wobei der Zielknoten bestimmte Kriterien bzgl. der Qualität der Lastverteilung erfüllt; computerlesbaren Programmcode, geeignet zum Einrichten eines Lastaustausch-Protokolls an jedem Knoten zum Verwalten der Anzahl von Verschiebungen von Zielaufgaben, wobei dezentrale Lastverschiebungen in dem ereignisgesteuerten System zur Verteilung der Gesamt-Systemlast führen; computerlesbaren Programmcode, geeignet Migrieren der Zielaufgaben von dem Spenderknoten zu dem Zielknoten und Überführen der Spenderknotens in den Ruhemodus.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die als neu beanspruchten Eigenschaften der Erfindung und die für sie kennzeichnenden Elemente werden mit Genauigkeit in den angefügten Ansprüchen beschrieben. Die Figuren dienen lediglich der Veranschaulichung und sind nicht maßstabsgetreu dargestellt. Die Erfindung selbst kann jedoch sowohl hinsichtlich der Organisation als auch der Verfahrensweise am Besten mit Bezug auf die ausführliche Beschreibung verstanden werden, die in Verbindung mit den beigefügten Zeichnungen folgt, worin:
  • 1 ein Blockschaltbild darstellt, das eine beispielhafte Hardware-Umgebung der vorliegenden Erfindung veranschaulicht.
  • 2 einen herkömmlichen Aufgabenfluss veranschaulicht, der Datenproduzenten, Aufgaben zur Datenverarbeitung und Datenkonsumenten umfasst.
  • 3 ein herkömmliches Lastenverteilungs-Problem darstellt.
  • 4 einen Ablaufplan darstellt, der eine bevorzugte Ausführungsform des mit einem Computer realisierten Verfahrens nach der vorliegenden Erfindung veranschaulicht.
  • 5 die Kriterien für die physischen Verbindungen des Zielknotens veranschaulicht.
  • 6 das Konzept des Minimierens physischer Verbindungen zwischen Knoten veranschaulicht.
  • 7 das Konzept des Vermeidens von Kreisläufen in dem Aufgabenfluss veranschaulicht.
  • 8 ein Verfahren der Aufgabenteilung veranschaulicht.
  • 9 das Konzept des Bewegens von jeweils einer Aufgabe veranschaulicht.
  • 10 bis 13 die Ausführungsform der vorliegenden Erfindung veranschaulicht, wobei wenigstens ein Knoten in den Ruhezustand übergehen kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Die Programmumgebung, in der eine derzeitige Ausführungsform der Erfindung ausgeführt wird, umfasst veranschaulichend mehrere verbundene Universalcomputer oder Einheiten für Spezialzwecke wie z. B. tragbare Rechner. 1 ein stellt ein Blockschaltbild dar, das eine beispielhafte Hardware-Umgebung für die vorliegende Erfindung veranschaulicht, in der sich zwei Rechnersysteme 22-1, 22-2 befinden. Es sollte jedoch klar sein, dass es sich auch um mehr als zwei handeln kann und gewöhnlich mehr als zwei Computersysteme zum Realisieren der Erfindung vorgesehen sind. Ein Computersystem kann im Folgenden auch als eine Maschine oder ein Knoten bezeichnet werden. Die vorliegende Erfindung wird normalerweise unter Verwendung von Computersystemen 22-1 und 22-2 realisiert, die eine Zentraleinheit (CPU) 10-1 und 10-2, die aus Mikroprozessormitteln, Speicher mit wahlfreiem Zugriff (RAM), Nurlesespeicher (ROM) und anderen Komponenten besteht. Bei dem Computer kann es sich um einen Personal Computer, einen Großrechner oder andere Computereinheiten handeln. Auf der CPU 10-1, 10-2 oder in der peripheren Umgebung befindet sich eine Speichereinheit 14-1, 14-2 in einer Form wie z. B. ein Festplatten-Laufwerk, ein Diskettenlaufwerk, ein CD-ROM-Laufwerk, ein Bandlaufwerk oder eine andere Speichereinheit Ebenso befindet sich auf der CPU 10-1, 10-2 ein fester Anteil an internem Speicher, der auch als RAM bezeichnet wird und dessen Dateneinheiten Bytes darstellen.
  • Allgemein wird die Software-Umsetzung der vorliegenden Erfindung, das Programm 12-1, 12-2 in 1, physisch in einem computerlesbaren Medium, wie z. B. einer der oben erwähnten Speichereinheiten 14-1, 14-2, realisiert. Das Programm 12-1, 12-2 umfasst Befehle, die, wenn sie gelesen und durch den Mikroprozessor auf der CPU 10-2, 10-2 ausgeführt werden, die CPU zum Ausführen der Schritte veranlassen, die zum Durchführen der Schritte oder Elemente der vorliegenden Erfindung nötig sind. Das Programm 12-1, 12-2 kann als eine Ereignisverwaltung und eine Lastverteilungsverwaltung zur Laufzeit bezeichnet werden.
  • Das Programm 12-1, 12-2 lädt, startet, steuert und taktet eine oder mehrere Datenstrom-Verarbeitungseinheiten 16-1, 16-2, die einen Eingangsdatenstrom 18 verarbeiten, der aus Teilströmen 18-1, 18-2 bestehen kann, um einen Ausgangsdatenstrom 20 zu erzeugen, der aus Ausgangs-Teilströmen 20-1, 20-2 bestehen kann.
  • Die Computersysteme 22-1, 22-2 können auch durch die physische Verbindung 21 verbunden sein.
  • Es sollte auch klar sein, dass die Techniken der vorliegenden Erfindung unter Verwendung einer Vielzahl von Technologien umgesetzt werden können. Beispielsweise können die hier beschriebenen Verfahren in Software, die auf einem Computersystem ausgeführt wird, oder in einer Hardware, die entweder eine Kombination von Mikroprozessoren oder andere speziell entwickelte anwendungsspezifische integrierte Schaltkreise, programmierbare Logikeinheiten oder verschiedene Kombinationen daraus umgesetzt werden. Insbesondere können die hier beschriebenen Verfahren durch eine Reihe computerausführbarer Befehle umgesetzt werden, die sich auf einem geeigneten computerlesbaren Medium befinden. Zu geeigneten computerlesbaren Medien können flüchtige (z. B. RAM), und/oder nichtflüchtige (z. B. ROM, Platte) Speicher, Trägerwellen und Übertragungsmedien (z. B. Kupferkabel, Koaxialkabel, Lichtwellenleiter-Medien) gehören. Beispielhafte Trägerwellen können in der Form von elektrischen, elektromagnetischen oder optischen Signalen vorliegen, die digitale Datenströme über ein lokales Netzwerk, ein öffentlich zugängliches Netzwerk wie z. B. das Internet oder verschiedene andere Datenübertragungsverbindungen übertragen.
  • Ferner kann die vorliegende Erfindung in einer Cloud-Computer-Umgebung umgesetzt werden. Bei Cloud-Computing handelt es sich um eine Form der Datenverarbeitung, bei der dynamisch skalierbare und oft virtualisierte Betriebsmittel als ein Dienst über das Internet oder ein internes Firmennetzwerk bereitgestellt werden. Die Anwender verfügen nicht notwendigerweise über Wissen oder Fachwissen und haben keine Einfluss auf die Technologieinfrastruktur „in der Wolke” (cloud), die sie unterstützt. Cloud-Computing-Dienste stellen üblicherweise gemeinsame Betriebswirtschafts-Anwendungen online, auf die von einem Web-Browser zugegriffen wird, während die Software und Daten auf Servern gespeichert werden, die Ereignisverarbeitung des Datenstroms aber auch mit einigen oder allen Knoten als Teil der „Wolke” ausgeführt werden könnte. Da die physischen Betriebsmittel in einer Wolke geographisch so verteilt sein können, dass die Energiekosten an verschiedenen Maschinen deutlich voneinander abweichen, könnte diese Erfindung in einer Cloud-Konfiguration eine aktivere Anwendung finden, auch wenn das Volumen der Datenströme nicht groß ist.
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren, Computerprogrammprodukt und eine maschinenlesbare Programmspeichereinheit, worin die Lastverteilung in einem ereignisgesteuerten System durch Migration einer oder mehrerer Aufgaben, die vorgegebene und vom Nutzer festgelegte Kriterien erfüllen, die sie zum Migrieren als geeignet qualifizieren, von Spenderknoten, die vorgegebene und vom Nutzer festgelegte Kriterien erfüllen, die das Entfernen von Last hin zu einem oder mehreren Zielknoten garantieren, dezentralisiert wird, wobei die Zielknoten vorgegebene und vom Nutzer festgelegte Kriterien erfüllen, die sie als geeignet zum Empfangen von Last qualifizieren und wobei die Ende-zu-Ende-Migration vorzugsweise vorgegebene Kriterien erfüllt, wo die Auslastung in dem Netzwerk gleich bleibt oder nicht zunimmt. Die vorgegebenen Kriterien werden durch unser Verfahren initialisiert und können von dem Nutzer eingestellt werden. Die Kriterien, die einen Knoten qualifizieren, eine Aufgaben-Migration von sich aus einzuleiten, oder eine Aufgabe zur Migration in Betracht kommend auszeichnet, einen Knoten als Empfänger der migrierten Aufgabe auszeichnet und die Entscheidung über die Migration werden nun beschrieben. Diese Kriterien beruhen auf Statistiken, darunter reale Weltattribute (z. B. Sensorwerte wie die momentan verbrauchte Energie oder Einlasstemperaturen), die ein Knoten periodisch im Hintergrund sammelt, und dieser Entscheidungsprozess der Migration dauert an und wird auch periodisch nach nutzerdefinierten Zeitabständen durchgeführt und kann gegebenenfalls zu Änderungen in der Zuweisung von Aufgaben an Knoten in dem Netzwerk führen.
  • Die vorliegende Erfindung betrifft ein dynamisches und dezentralisiertes computerrealisiertes Verfahren zur Lastverteilung zwischen Knoten, die Aufgaben in einem Aufgabenfluss aufnehmen, wobei die Datenergebnisse aus der Verarbeitung einer Aufgabe als die Eingabedaten für die nächste Aufgabe in dem Aufgabenfluss dienen. Das vorliegende computerrealisierte Verfahren ist auf Knoten in einem Datenzentrum, auf Knoten, die geographisch verteilt sind, oder Mehrfachprozessoren auf einer einzelnen Maschine oder eine Cloud-Computer-Umgebung anwendbar. Einige Aufgaben des vorliegenden computerrealisierten Verfahrens bestehen darin, die Last zu verteilen, um (1) zu verhindern, dass Knoten überlastet werden, (2) Last von überlasteten Knoten zu verteilen, (3) einige Dienstqualitätsanforderungen der Anwendung wie z. B. das Minimieren der Ende-zu-Ende-Latenzzeit zu erhalten und (4) die Energie-/Kühlkosten zu verringern.
  • Ein gewisser definitorischer Hintergrund wäre zum Verstehen der vorliegenden Erfindung nützlich. „Knoten” bezieht sich auf eine einzelne Maschine oder auf einen einzelnen Prozessor auf einer Mehrprozessor-Maschine oder einer physischen Einheit, die etwas Verarbeitung unabhängig davon ausführt, ob es sich um das Berechnen von Zahlen oder um eine Einheit handelt, die Energie erzeugt und über einen angeschlossenen Rechner verfügt. Die Knoten könnten sich in einem Datenzentrum befinden oder geographisch verteilt sein. In der vorliegenden Erfindung nimmt ein Knoten entweder eine, mehrere Aufgaben oder keine Aufgaben auf. Das Verarbeiten von Aufgaben kann von hierarchischer Natur sein, sodass die Ausgabe von Aufgaben als die Eingabe für andere Aufgaben dient. Des Weiteren könnte ein Knoten eine Aufgabe ausführen, die nicht Bestandteil eines Datenflusses zu einem bestimmten Zeitpunkt ist, aber später eine Aufgabe als Bestandteil eines Datenflusses ausführen. Die erste Aufgabe in der Hierarchie führt das Verarbeiten von Daten aus, die durch eine bestimmte Eingabequelle empfangen werden. Der Hauptteil der Verarbeitung von Aufgaben wird von hierarchischer Natur sein, aber manche Aufgaben für eine gegebene Anwendung könnten nichthierarchischer Natur sein. Von einem Knoten empfangene Aufgaben werden als Eingabeereignisse bezeichnet, während die von einem Knoten als Ergebnis der Verarbeitung erzeugten Daten als hergeleitete Ereignisse bezeichnet werden. Zu Beispielen für Daten, die eine hierarchische Verarbeitung erfordern können, gehören Börsentransaktionen auf Finanzmärkten, von RFID-Etikettlesern erzeugte Ereignisse, Temperaturwerte, die von drahtlosen Sensoren übertragen werden und Einbruchmeldeereignisse, die von einer Überwachungs-Software auf Datenübertragungs-Kanälen erkannt werden oder der Zustand des Spenders eines Kaffeeautomaten, um nur wenige zu nennen.
  • Mit genauerem Bezug auf die Figuren zeigt 2 ein Beispiel eines Netzwerks von Maschinen, die Aufgaben aufnehmen, worauf die vorliegende Erfindung anwendbar ist. Ein Datenerzeuger stellt eine Datenquelle dar. Zu Datenbeispielen zählen Börsenkurse und Kaffeemaschinen-Fehlermeldungen. Ein Datenkonsument stellt eine Einheit dar, die an den Ergebnissen der Verarbeitung interessiert ist, die an diesen Aufgaben ausgeführt wird. Zu Beispielen von Konsumenten zählen ein Unternehmen, das Kaffeemaschinen repariert, oder eine Person, die an den zehn besten Aktien interessiert ist, die an einem bestimmten Tag um die meisten Prozentpunkte gestiegen sind.
  • Ein Aufgabenfluss wird definiert als eine Folge von Verarbeitungsaufgaben. Die Verarbeitung von Aufgaben kann hierarchisch erfolgen, wobei die Datenergebnisse der Verarbeitung einer Aufgabe als die Eingabedaten der nächsten Aufgabe in dem Aufgabenfluss dienen. Aufgaben müssen nicht abgeschlossen werden, bevor Daten durch sie an eine andere Aufgabe fließen. Darüber hinaus können manche Aufgaben nichthierarchisch strukturiert sein und erfordern keine Daten von einer anderen Aufgabe. Einige Aufgaben können manchmal eine Dateneingabe von anderen Aufgaben erfordern. In 2 befinden sich die Aufgaben F1, J1 und J2 in einem gemeinsamen Aufgabenfluss. Gleichermaßen handelt es sich bei den Aufgaben F3 und J2 um Bestandteile eines anderen Aufgabenflusses.
  • Ein stromaufwärtiger (Upstream-)Knoten wird bezüglich einem gegebenen Knoten n als Knoten definiert, der eine Aufgabe aufnimmt, die eine Mutter einer auf dem Knoten n aufgenommenen Aufgabe ist (parent of a task). Insbesondere geht die Mutteraufgabe der Kindaufgabe (child task) in dem Aufgabenfluss voraus. Die Mutteraufgabe erzeugt entweder direkt oder indirekt eine Ausgabe, die einen Teil der Eingabe für die Aufgabe auf dem Knoten n darstellt. In 2 beispielsweise handelt es sich bei dem Knoten M4, der eine Aufgabe F1 aufnimmt, um einen stromaufwärtigen (Upstream-)Knoten bezüglich dem Knoten M5, der die Aufgabe J2 aufnimmt. Ein stromabwärtiger (Downstream-)Knoten wird bezüglich einem gegebenen Knoten n als ein Knoten definiert, der das Kind einer vom Knoten n aufgenommenen Aufgabe aufnimmt. In 2 beispielsweise handelt es sich bei dem Knoten M5, der die Aufgabe J2 aufnimmt, um einen Knoten stomabwärts bezüglich dem Knoten M4, der die Aufgabe J1 aufnimmt.
  • Die Funktionalität der ersten Aufgabe in dem Aufgabenfluss besteht darin, die Daten von den Erzeugern zu empfangen, bei denen es sich um eine Menge von Quellen von Meldungen handelt. Die Konsumenten sind an dem Endergebnis der Verarbeitung der Aufgaben an den Daten interessiert. 2 zeigt ein Beispiel der Produzenten (P1 bis P5) und Konsumenten (C1 bis C4) in dem Aufgabenfluss. Aufgaben können den Zustand nach der Ausführung an einem Ereignis behalten oder sie können überhaupt keinen Zustand behalten. Aufgaben, die den Zustand behalten, werden als zustandsbehaftete Aufgaben bezeichnet. Die Aufgaben, die keinen Zustand behalten, geben dieselben hergeleiteten Ereignisse nach etwa derselben Zeitdauer für ein neues Eingabeereignis unabhängig davon aus, um welche oder wie viele vorherigen Eingabeereignissen es sich handelt, wie sie zeitlich eingingen oder was die vorherigen Ausgabeereignisse dieser Aufgaben waren. Zustandslose Aufgaben operieren unabhängig davon, welche Daten sie vorher empfangen oder erzeugt haben. Zu Beispielen von zustandsbehafteten Aufgaben zählt Folgendes:
    ein Verbindungs-Operator zum Zusammenführen von Finanzdatenströmen
    ein Zusammenführungs-Operator zum Überwachen seismischer Daten
    ein Signalverarbeitungs-Operator für militärische Überwachung
    ein Folgen-Operator, der ein Ereignis e2 erkennt, das unmittelbar nach einem Ereignis e1 eintritt.
    ein Zähl-Operator, der die Anzahl von Sell-Afterbuy-Operationen zählt, die eine Person an einem Tag ausführt.
  • Aufgaben, die keinen Zustand behalten, werden als zustandslose Aufgaben bezeichnet. Zu Beispielen von zustandslosen Aufgaben gehören:
    eine Aufgabe, die zwischen Maßsystemen umrechnet – Umwandeln einer Entfernung von Fuß in Meter oder einer Temperatur von Fahrenheit in Celsius;
    eine Aufgabe, die Erkennungssymbole mit anderen Formen oder Erkennungssymbolen ersetzt – Umwandeln eines Aktientausch-Ticker-Symbols in den vollen gesetzlichen Namen des Unternehmens, dessen Aktien betroffen sind;
    eine Aufgabe, die ein Feld zu einer Meldung hinzufügt, das nur eine Funktion anderer Felder in der Meldung oder eine Konstante darstellt, – beispielsweise Hinzufügen eines Länderfelds entweder der USA oder Kanada abhängig davon, ob es sich bei der Staaten- oder Provinzabkürzung um einen der 50 2-Buchstabencodes der US-Staaten handelt oder um eine der provinziellen Abkürzungen handelt;
    eine Aufgabe, die ein Nachrichtenfeld durch eine Konstante anpasst – Ersetzen des Verleihdatums eines Büchereibuchs mit einer Rückgabefrist des Büchereibuchs, die immer drei Wochen nach dem Verleihdatum endet.
  • Aufgaben werden oft als Operatoren bezeichnet. Es sollte klar sein, dass es sich bei „Aufgaben” und „Operatoren” um gleichwertige Terme handelt und im Folgenden beide verwendet werden.
  • Mit Bezug auf 3 wird ein Problem der Lastverteilung veranschaulicht. Die Last kann zu einem Knoten, der wie die Knoten M12 und M13 in 3 keine Verarbeitung ausführt, oder zu Knoten migriert werden, die bereits andere Aufgaben ausführen, wie z. B. der Knoten M5, der die Aufgaben F3 und J2 ausführt. 3 zeigt auch die Eigenschaften eines dynamischen Lastverteilungsproblems, insbesondere das Folgende:
    Knoten können ausscheiden oder neue Knoten können dem Netzwerk während der Laufzeit hinzugefügt werden;
    Datenraten können beliebig variieren;
    Aufgaben können enden und aus der Aufgabenmenge entfernt werden oder neue Aufgaben können jederzeit hinzugefügt werden;
    Aufgaben können in zwei oder mehrere Teile während der Laufzeit geteilt werden.
  • Bei der Überlegung, ob eine Last migriert wird, betrachtet das vorliegende computerrealisierte Verfahren eine einzige Aufgabe, eine Aufgabenmenge oder eine geteilte Aufgabe als die Last.
  • Das vorliegende computerrealisierte Verfahren berücksichtigt, ob Aufgaben den Zustand behalten, der in der Form von Daten vorliegen kann, die auf einer Platte gespeichert sind oder im Hauptspeicher des Knotens vorliegen, der die Aufgabe aufnimmt. Wenn das Migrieren von zustandsbehafteten Ausgaben beschlossen wird, berücksichtigt das vorliegende computerrealisierte Verfahren die Geschwindigkeit der Datenübertragungs-Verbindungen zwischen dem Spenderknoten, der die abzuordnende zustandsbehaftete Aufgabe (die Zielaufgabe) aufnimmt, und dem Empfängerknoten, der die zustandsbehaftete Aufgabe empfängt (Zielknoten).
  • Das vorliegende computerrealisierte Verfahren berücksichtigt auch den Datenfluss zwischen Aufgaben, bevor Aufgaben migriert werden, um Kreisläufe zu vermeiden, und die Dienstqualitätsanforderungen der Anwendung wie z. B. das Minimieren der Ende-zu-Ende-Antwortzeit der Anwendung.
  • Das vorliegende computerrealisierte Verfahren berücksichtigt auch die von Aufgaben vorhergesagte Auslastung vor dem Migrieren von Aufgaben, um Knoten vor Überhitzung zu schützen, wenn ihre Auslastung auf besondere Art und Weise eine Spitze erreicht. Die vorhergesagten Auslastungsdaten sind über die Statistiken verfügbar, die ein Knoten aufzeichnet und berechnet. Ein Knoten kann gewisse statistische Analyse betreiben, wobei der Knoten das Mittel und die Standardabweichung von Dateneingängen berechnen und Kurvenanpassung Zum Vorschlagen der Verteilung von Eingabe-Eingangsereignissen verwenden kann. Auf der Grundlage dieser Analyse kann ein Knoten ein Muster in der Eingangsdatenrate seiner Eingabedaten ermitteln und die Zeitdauer des Intervalls festlegen, die er in den Ruhezustand übergehen kann.
  • Während die Entscheidung darüber fällt, welche Last verteilt wird, berücksichtigt das vorliegende computerrealisierte Verfahren auch die Beziehung zwischen den Lastzusammenhängen verschiedener Aufgaben, was als der Lastkorrelations-Koeffizient bezeichnet wird. Der Lastkorrelations-Koeffizient stellt sicher, dass das vorliegende computerrealisierte Verfahren die Zielaufgabe von einem Knoten weg transportiert, dessen Last gleichzeitig mit anderen von dem Knoten aufgenommene Aufgaben eine Spitze erreicht, und verschiebt sie zu einem Knoten, der Aufgaben aufnimmt, deren Last nicht gleichzeitig mit der Last der Zielaufgabe eine Spitze erreicht.
  • Vor dem Migrieren einer Zielaufgabe berücksichtigt das vorliegende computerrealisierte Verfahren, ob die Migration der Zielaufgabe eine gute Entscheidung für den Spenderknoten und den Zielknoten darstellt, indem mit bestimmten Annahmen die Ausnutzung des Spender- und Zielknotens nach der Migration abgeschätzt wird. Zusätzlich zur Ausnutzung kann das vorliegende computerrealisierte Verfahren in einer Ausführungsform der Erfindung auch die Einlasstemperatur des Spender- und Empfängerknotens nach der Migration abschätzen und so eine Verringerung der Kühlkosten durch das Befürworten von Lastmigrationen bereitstellen, die die Temperatur eines Spenderknotens verringern, ohne dass die Temperatur eines Empfängerknotens über einen annehmbaren Schwellenwert steigt.
  • Zusätzlich zum Migrieren einer einzelnen Zielaufgabe berücksichtigt das vorliegende computerrealisierte Verfahren eine Vielzahl möglicher Arten, auf die eine Zielaufgabe geteilt werden kann, und betrachtet daher das Migrieren eines oder mehrerer Teile einer Zielaufgabe.
  • Da es sich bei dem vorliegenden computerrealisierten Verfahren um ein dezentrales Verfahren handelt, wird ein Protokoll zur Lastverteilung definiert, das alle Knoten befolgen müssen, damit lokale Lastmigrations-Entscheidungen sich nicht gegenseitig behindern.
  • Bevor ein Migrieren in Betracht gezogen wird, untersucht das vorliegende computerrealisierte Verfahren in einer Ausführungsform der Erfindung auch, ob bestimmte Knoten in dem Netzwerk in den Ruhezustand übergehen sollen, um Energie zu sparen. Die Entscheidung, wann ein Übergang in den Ruhezustand erfolgen soll, kann jederzeit dynamisch während der Laufzeit getroffen werden, während die Knoten Verarbeitung an Eingabedaten ausführen und bevor oder nachdem Lastverteilungs-Entscheidungen getroffen werden. Lastmigrations- und Stilllegungs-Entscheidungen dürfen nicht gleichzeitig getroffen werden, da sie widersprüchliche Ergebnisse liefern können. Daher kann die eine Entscheidung (Lastmigration oder Stilllegung) erwogen werden, bevor oder nachdem die andere (Stilllegung oder Lastmigration) abgeschlossen ist. Sobald jedoch eine Entscheidung feststeht, einen Knoten stillzulegen, werden keine weiteren Eingaben an irgendwelche Aufgaben gesendet, die auf diesem Knoten ausgeführt werden, sodass, wenn diese Aufgaben ihre Ausgaben erzeugen, das Stilllegen keinen einzigen Teil des Flusses des Ereignisflusses „offline” nimmt. Der neue Knoten, an dem die Aufgabe ausgeführt werden wird, empfängt alle weiteren Eingaben für diese Aufgabe. Für zustandslose Aufgaben könnte die neue Aufgabe das Verarbeiten der nächsten Eingabe beginnen, bevor die alte Aufgabe ihre Eingabe beendet hat, aber für zustandsbehaftete Aufgaben dürfen die neuen Aufgaben das Verarbeiten der nächsten Eingabe erst beginnen, wenn der Aufgabenzustand des alten Knotens nicht vollständig übertragen wurde. Diese Übertragung ist Bestandteil des Lastaustausch-Protokolls (unten beschrieben).
  • Während des Prozesses des Übergangs in den Ruhemodus können manche Aufgaben mitten in der Ausführung migriert werden. Das bedeutet, dass sie zu der Zeit, an der sie verschoben werden, eine bestimmte Ausgabe erzeugt haben, aber mehr Ausgaben an ihrem neuen Standort in der Zukunft erzeugen können.
  • Das vorliegende computerrealisierte Verfahren ist dynamisch, was es mit sich bringt, dass die Entscheidung, wann in den Ruhemodus übergeführt wird, jederzeit dynamisch während der Laufzeit erfolgen kann, wenn andere Knoten Verarbeitung an Eingabedaten ausführen. Bei der Entscheidung eines Knotens, in den Ruhezustand überzugehen, muss eine Anzahl von Vorab-Entscheidungen bezüglich Folgendem getroffen werden:
    wie lange in dem Ruhezustand verweilt wird;
    die vorhergesagte Auslastung während der Verweildauer im Ruhezustand;
    ob Aufgaben unterbrochen und später verarbeitet werden oder Aufgaben an leistungsfähigere Knoten migriert werden, die sie wirksamer während der Zeitdauer im Ruhezustand verarbeiten können; und
    welche anderen Nachbarknoten in den Ruhezustand übergehen können.
  • Diese anfänglichen Überlegungen werden von einer ausführlichen Analyse der Vorteile und Kosten des Übergangs in den beinhalten Folgendes:
    die gesamten Energiekosten verbunden mit einem Übergang einschließlich (1) den Energiekosten, um einen Knoten in den Ruhezustand zu versetzen, (2) Übergehen von dem Ruhezustand zurück in den aktiven Zustand, und (3) die Energiekosten für beliebige andere Knoten, die migrierte Aufgaben von diesem Knoten empfangen und von dem Ruhezustand als Folge des Empfangens dieser Aufgabe in den aktiven Zustand übergehen.
  • Zeitdauer zum Anhalten der Aufgabenverarbeitung und ggf. ihr Wiederaufnehmen an einer neuen Zielmaschine;
    die Kosten der Migration eines beliebigen Zustands, der mit den Aufgaben verbunden ist, die zur Zielmaschine migrieren sind; und
    Zeitdauer zum Zurückbewegen des Zustands und Wiederaufnehmen der Verarbeitung an der ursprünglichen Host-Maschine, die die Aufgabe verarbeitet.
  • Zu den Vorteilen des Übergehens in den Ruhezustand zählen die folgenden:
    die vorhergesagte Energie-Einsparungswirkung des Übergehens in den Ruhezustand und die im Ruhezustand verbrachte Zeitdauer; und
    die Verbesserung der Dienstqualität, die sich aus dem Versetzen von Knoten in den Ruhezustand und der Migration von Aufgaben an geeignete Empfängerknoten ergibt.
  • Wenn die Vorteile des Übergehens in den Ruhezustand die Kosten überwiegen, leitet ein Knoten den Übergang ein. Das computerrealisierte Verfahren zum Übergang in den Ruhezustand kann als ein dezentrales Verfahren umgesetzt werden. Alternativ kann eine zentrale Steuereinheit, die die Erkenntnisse der Betriebsmittel-Verfügbarkeit in dem gesamten Netzwerk steuert, den Übergang in den Ruhezustand auf zentralisierte Weise leiten.
  • Das computerrealisierte Verfahren gemäß der Erfindung wird nun genau beschrieben. Der Prozess ist so zentralisiert, dass jeder Knoten die zu beschreibenden Prozesse ausführt. Ein Ablaufplan, der das computerrealisierte Verfahren gemäß der Erfindung veranschaulicht, ist in 4 gezeigt.
  • Schritt 1: Empfangen von Eingabedaten.
  • Zum ersten Schritt des computerrealisierten Verfahrens (Block 30) gehört das Empfangen eines Datenflusses, der von einer Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System verarbeitet werden muss, wobei das System zustandsbehaftete und zustandslose Bestandteile der Ereignisverarbeitung aufweist. Bei der Vielzahl von Aufgaben kann es sich um hierarchische, nichthierarchische Aufgaben oder Kombination daraus handeln.
  • Schritt 2: Knoten legen Statistiken an.
  • Im nächsten Schritt des computerrealisierten Verfahrens sammelt jeder Knoten periodisch einige Statistikdaten (Block 32) über jeden ereignisverarbeitenden Bestandteil (auch als Aufgabe oder Operator bezeichnet), den er aufnimmt. Diese Statistiken enthalten Folgendes:
    Last pro Aufgabe: Dies kann als die CPU-Auslastung je Aufgabe oder als die Anzahl der je Aufgabe berechneten Regeln oder je nachdem, welche Definition der Nutzer in Zusammenhang mit dem System bereitstellt, definiert werden.
  • Von einer Aufgabe beanspruchter Speicher: Es wird angenommen, dass der gesamte zu der Aufgabe gehörige Zustand im Speicher (nicht auf Disc) gespeichert ist. Wenn die Aufgabe migriert wird, muss auch dieser Speicher verschoben werden.
  • Die Netzwerkverwendung der Verbindung, die den Knoten, der die Aufgabe aufnimmt, mit einem anderen Knoten verbindet: Bei der Netzwerkverwendung (u(l)) handelt es sich um die Datenmenge, die sich über eine Verbindung zu einem bestimmten Zeitpunkt im Übergang befindet.
    Figure 00240001
    wobei F die Menge von Ereignisflüssen über die Verbindung l, DRf(l) die Datenrate des Flusses l über die Verbindung l und Lat(l) die Latenzzeit der Verbindung l bezeichnen. Diese Maßzahlen lassen erkennen, wie sehr die Verbindung l ausgelastet ist, und sie sind notwendig zum Abzuschätzen, wie lange das Abordnen des der Aufgabe zugehörigen Aufgabenzustands von einem Knoten an einen anderen dauern wird.
  • In einer Ausführungsform der vorliegenden Erfindung gehören zu den Statistiken die Wärmeeigenschaften des Knoten, der die Aufgabe aufnimmt.
  • In einer Ausführungsform der vorliegenden Erfindung gehört zu den Statistiken die Übertragungsrate, mit der die Daten an die Aufgabe strömen und jedes wiederkehrende Muster in den eingehenden Datenraten, das auf der Zeit oder der Art der Aufgabe beruht, die von dem Knoten aufgenommen wird.
  • Die Sammlung von Statistiken über jede Aufgabe wird im Hintergrund ausgeführt, während die Aufgabe durchgeführt wird.
  • Der Knoten pflegt eine Zeitreihe der numerischen Statistiken und berechnet periodisch ihren Mittelwert, die Varianz und Standardabweichung. Jeweils nach HISTORY_ANZAHL_AUFGEZEICHNETER_INTERVALLE Intervallen stellt der Knoten die HISTORY_INTERVALL_ZÄHLER_REINIGUNGSUMFANG ältesten Einträge von jeder Zeitreihe löschen und Raum für neue Einträge bereit.
  • Schritt 3: Erzeugen der Lastaustausch-Nachbarliste
  • Der nächste Schritt des Prozesses stellt das Erzeugen einer Liste von Nachbarknoten dar, an die eine Aufgabe teilweise oder ganz übertragen werden kann (Block 34). Nach periodischen Statistikübertragungen von seinen Nachbarn pflegt jeder Knoten eine Liste von Lastenausgleichs-Partnern. Der Knoten ordnet diese Liste, und die Nachbarknoten werden in absteigender Reihenfolge nach insgesamt verfügbarer Last und Speicher geordnet.
  • In einer Ausführungsform der vorliegenden Erfindung, bei der Kühlkosten berücksichtigt werden, wird die Liste von Nachbarknoten durch das Entfernen von Partnern verfeinert, die sehr hohe Wärmekoeffizienten hinsichtlich der gegenseitigen Beeinträchtigung (cross-interference) durch den momentanen Knoten aufweisen. D. h., jeder Knoten hat Zugriff auf eine Matrix der gegenseitigen Beeinträchtigungen der Größe n × n. Wobei n die Gesamtanzahl von Knoten in dem Datenzentrum darstellt. Ein Eintrag a_ij in dieser Matrix gibt die Wärmemenge wieder, die der Knoten i zum Knoten j beiträgt. Ein Knoten greift auf diese Matrix zu und verfeinert seine Liste von nächsten Nachbarn durch das Entfernen von Knoten, mit denen er sehr hohe Wärmekoeffizienten hinsichtlich der gegenseitigen Beeinträchtigung aufweist. Wenn ein Knoten das Einleiten der Lastmigration wünscht, greift der Knoten einfach auf die Liste von Nachbarknoten zu, um einen möglichen Lastaustausch-Partnerknoten auszuwählen. Die Entscheidung, die Lastmigration zu erwägen, könnte als ein episodisches Ereignis umgesetzt werden, das in regelmäßigen Intervallen in jedem Knoten wiederkehrt, oder es kann durch das Überschreiten eines bestimmten Schwellenwertes wie z. B. die mindestens erforderliche Energieeinsparung oder die größtmöglichen Kühlkosten oder Knotenauslastung oder kleinstmögliche Auslastung ausgelöst werden. Der genaue Auslöser, der zum Erwägen ab Schritt 4 in dem computerrealisierten Verfahren der vorliegenden Erfindung führt, kann individuell für jeden Knoten durch den Nutzer eingestellt werden. Alternativ kann in einem sehr großen Netzwerk (z. B. Tausende Knoten) ein Nutzer die Lastmigrations-Auslöseeinstellungen für eine Teilmenge von Knoten initialisieren und auf autonome dezentralisierte Datenausbreitungs-Algorithmen wie z. B. Basisdiffusion oder Belief-Propagation für die initialisierten Knoten zurückgreifen, um ihre voreingestellten Werte an andere Knoten, für die die Schwellenwerte geeignet sind, zu verbreiten. Bei Diffusion handelt es sich um eine Technik, bei der sich ein Nettotransport von Daten von einer Knotenmenge in dem Netzwerk, in der die Daten stark verdichtet sind, zu einer Knotenmenge ergibt, die über wenig oder gar keine Daten verfügen. Das Ergebnis der Diffusion stellt eine abgestufte Datenmischung dar. Unter bestimmten Umständen führt der Diffusionsprozess, der auf einer ausschließlich selbst eingeleiteten lokalen Koordination von Knoten beruht, schließlich zu einer vollständigen Datenvermischung in dem Netzwerk. In dieser Ausführungsform realisieren wir die Lastmigrations-Entscheidung als ein episodisches Ereignis, das nach einem Intervall der Länge LAST_VERTEILUNGS_INTERVALL eintritt, wobei es sich um einen Installationsparameter handelt. Parameter wie diese könnten für jeden Knoten einzeln von dem Nutzer eingestellt oder automatisch konfiguriert und durch diffusionsbasierte Protokolle (weiter unten in der Ausführungsform beschrieben) festgelegt werden.
  • Schritt 4. Auswählen einer Aufgabe zur Migration
  • Der nächste Schritt des Prozesses stellt das Auswählen wenigstens einer Aufgabe an einem Knoten (d. h. die Zielaufgabe) zum Erwägen der Migration zu einem Nachbarknoten (d. h. den Zielknoten) dar, um die Systemlast der Verarbeitung der Zielaufgabe zu verteilen (Block 36). Wenn sowohl zustandsbehaftete als auch zustandslose Aufgaben vorhanden sind, werden bevorzugt erst zustandslose Aufgaben migriert, da weniger Last zu verteilen ist. Wenn nur zustandsbehaftete Aufgaben auf einem Knoten aufgenommen sind, wird die Aufgabe mit dem kleinsten Speicherbedarf für den Zustand zur Migration ausgewählt. Bei zustandsbehafteten Aufgaben kann der Zustand auf einer Festplatte oder im Speicher vorhanden sein. Es wird allgemein bevorzugt, zustandsbehaftete Aufgaben zu migrieren, deren Zustand sich nur im Speicher befindet. Es ist möglich, dass eine einzelne Aufgabe mehr als die Voreinstellung ZUSTANDS_MIGRATIONS_GRENZE zum Migrieren als einzelne Aufgabe verwendet. In dieser Situation besteht ein optionaler des Prozesses darin, die Zielaufgabe in zwei Teil-Zielaufgaben zum Migrieren zu teilen. Das Teilen von Aufgaben wird im Folgenden ausführlicher beschrieben. Durch Berücksichtigen des Speicherbedarfs des Zustands einer Aufgabe, der Zustandsart (auf Festplatte oder im Speicher) und der Geschwindigkeit der Verbindung(en), über die der Zustand von einem Spender an einen Empfängerknoten migriert werden kann, wickelt das computerrealisierte Verfahren der vorliegenden Erfindung im Unterschied zu vorhandenen Techniken der Lastmigration sowohl zustandsbehaftete als auch zustandslose Aufgaben ab. Die eigentliche Migration des Zustands könnte auf vielerlei Weise optimiert werden, wie es in bestehenden Arbeiten beschrieben wird.
  • Schritt 5 Auswählen eines Zielknotens
  • Der nächste Schritt des Prozesses besteht im Auswählen des Zielknotens, an den die Zielaufgabe migriert werden kann, wobei der Zielknoten vorgegebene Kriterien bezüglich der Lastverteilungsqualität erfüllt (Block 38). Der Knoten beseitigt potentielle Lastaustausch-Partner aus der Liste, die nicht die Minimalanforderungen (Kriterien) erfüllen, um die Zielaufgabe aufnehmen zu können.
  • In der Ausführungsform der vorliegenden Erfindung, in der Kühlkosten verringert werden, kann dieser Schritt des Auswählens des Zielknotens ausschließlich vom Verringern der Kühlkosten abhängen, wenn das Verringern der Kühlkosten ein Hauptziel darstellt, auch wenn der Knoten nicht die vorgegebenen Kriterien bezüglich der Lastverteilungs-Qualität erfüllt. Ferner kann in einer bevorzugten Ausführungsform dieser Schritt des Auswählens des Zielknotens das Verringern der Kühlkosten zusätzlich zu den Kriterien der Lastverteilungs-Qualität, die der Knoten erfüllen muss, berücksichtigt werden.
  • Zu den vorgegebenen Kriterien zählen: die physischen Verbindungen des Zielknotens, verfügbare Last und Speicher des Zielknotens, Minimieren der Anzahl physischer Verbindungen, Beseitigen von Kreisläufen, Lastkorrelation des Zielknotens und Auslastung des Spender- und Zielknotens nach der Migration. Wenigstens einige dieser Kriterien müssen zum Auswählen des Zielknotens erfüllt sein. In einer bevorzugten Ausführungsform sollten diese Kriterien zum Auswählen des Zielknotens erfüllt sein. Alle diese Kriterien werden ausführlich beschrieben.
  • In 5 werden die Kriterien für die physischen Verbindungen des Zielknotens veranschaulicht. Der Zielknoten Mt muss physisch mit den Knoten Mp, der die Mutteraufgabe p aufnimmt, und dem Knoten Mc verbunden sein, der die Tochteraufgabe c der Zielaufgabe i aufnimmt, die am Knoten Mi aufgenommen wird. Der Zielknoten Mt muss auch mit dem Knoten Mi verbunden sein, der momentan die Zielaufgabe i aufnimmt. Diese besondere Bedingung wird klar mit Bezug auf 3. Es ist beispielsweise wünschenswert, die Aufgabe J1, die momentan am Knoten M4 aufgenommen ist, zu einem anderen Knoten zu migrieren. In diesem Fall handelt es sich bei J1 um die Zielaufgabe. Die Knoten M2 oder M3 können die Mutterknoten darstellen, M4 ist der Spenderknoten (Mi) und M7 der Knoten Mc, der die Tochteraufgabe aufnimmt. Mit diesem Szenario kann die Zielaufgabe J1 zu M5 oder M13 migriert werden, die beide (direkt oder indirekt) mit dem Mutterknoten, dem Tochterknoten und dem Spenderknoten verbunden sind.
  • Das nächste Kriterium ist die verfügbare Last und der Speicher des Zielknotens. Der Zielknoten muss über ausreichend Last und Speicher verfügen, um die Zielaufgabe aufzunehmen. Die Sammlung von Statistiken, die oben beschrieben wurde, wird zum Berechnen der verfügbaren Last und des Speichers verwendet. Darüber hinaus darf die physische Maschinenverbindung zwischen dem Zielknoten und dem Spenderknoten, der momentan die Zielaufgabe aufnimmt, keine sehr hohe Inanspruchnahme durch das Netz aufweisen, wenn die Zielaufgabe zustandsbehaftet ist und einen Zustand im Speicher aufweist. Je intensiver die Verbindung genutzt wird, desto länger wird das Verschieben des Zustands von dem Spenderknoten zum Zielknoten dauern.
  • Es ist wünschenswert, die Anzahl physischer Verbindungen zu minimieren, die den Zielknoten mit den Knoten verbinden, welche die Mutter- und Tochteraufgaben der Zielaufgabe aufnehmen. Physische Verbindungen erhöhen die Ende-zu-Ende-Latenzzeit. Die Dienstqualitätsanforderungen einer Anwendung können eine niedrige Ende-zu-Ende-Latenzzeit enthalten. Deshalb ist das Minimieren der Anzahl physischer Verbindungen wichtig, um die Dienstqualitätsanforderungen einer Anwendung zu erfüllen. Die Liste von Zielknoten muss nach der Anzahl physischer Verbindungen geordnet sein, die mit den abzuordnenden Zielaufgaben aufrecht erhalten werden. 6A veranschaulicht ein Beispiel eines Aufgabenflusses. 6B zeigt ein Beispiel für eine Lastmigration, die die Anzahl der physischen Verbindungen in dem Fluss erhöht und deshalb unerwünscht ist. 6C zeigt ein Beispiel für eine Lastmigration, die die Anzahl der physischen Verbindungen in dem Fluss verringert und deshalb erwünscht ist. 6D zeigt die lokalen Mengen von Lastmigrations-Entscheidungen, die ein Knoten ausführen kann und wie sie die Anzahl physischer Verbindungen beeinflusst. Die Entscheidungen 1 und 2 in 6D verbessern (verringern) die Anzahl physischer Verbindungen, wohingegen die Entscheidung 4 nachteilig ist und mit Entscheidung 3 die Anzahl physischer Verbindungen gleich bleibt.
  • Das nächste Kriterium ist das Beseitigen von Kreisläufen. Ein Kreislauf entsteht, wenn die von einer Aufgabe abfließenden Meldungen anderen Aufgaben zugeführt werden, deren Ausgabe direkt oder indirekt eine Eingabe an diese eine Aufgabe darstellen. Wenn der Zielknoten Aufgaben aufnimmt, die Vorgänger im Fluss der Zielaufgabe darstellen, muss der Knoten beseitigt werden. Diese Situation ist in 7 gezeigt, worin der Knoten Mx einen unerwünschten Zielknoten für die Zielaufgabe i bildet, da er Aufgaben wahrnimmt, die Vorgänger im Fluss der Aufgabe i darstellen.
  • Das nächste Kriterium stellt die Zielknoten-Lastkorrelation dar. Zusätzlich zum Beobachten der mittleren Last am Zielknoten muss auch die Laststabilität untersucht werden. Es wurde in veröffentlichten Arbeiten [Xing, ICDE'05, supra] bewiesen, dass es nicht ausreicht, lediglich die mittlere Last auf einem Zielknoten zu berücksichtigen, bevor Aufgaben zu diesem Knoten migriert werden. Es muss auch die Lastvariation an dem Knoten untersucht werden. Insbesondere wäre es nützlich, wenn die Lastkorrelations-Koeffizienten zwischen den Aufgaben auf einem Knoten negativ sind. Ein negativer Lastkorrelations-Koeffizient zwischen zwei Aufgaben führt dazu, dass, wenn die Last einer der Aufgaben eine Spitze erreicht, sich die Last der anderen Aufgabe nicht genauso verhält. Deshalb wird die Berechnung der Lastkorrelations-Koeffizienten zwischen der abgeordneten Zielaufgabe und den Aufgaben auf den Empfängermaschinen mit in den Entscheidungsprozess der Lastmigration eingefügt.
    • i. ρ(a, N): Korrelationskoeffizient zwischen der Lastzeit-Reihe der Aufgabe a und der Gesamtsumme der Lastzeit-Reihe aller Aufgaben auf N außer a.
    • ii. Aus der Sicht eines Spenderknotens N1 ist es vorteilhaft, eine Aufgabe mit einem großen ρ(a, N1) zu migrieren und aus der Sicht einer Empfängerknotens N2 eine Aufgabe mit einem kleinen ρ(a, N2) zu migrieren.
    • iii. Es wird deshalb bevorzugt, die Aufgaben mit großen Werten von ρ(a, N1) – ρ(a, N2) zu verschieben. Wir bezeichnen dies als den Gewinn.
    • iv. Wir berechnen die Korrelationskoeffizienten für die Aufgabe a bezüglich allen möglichen Zielknoten und wählen den Knoten mit dem größten Gewinn als den Zielknoten aus.
  • Für eine gegebene Last-Zeitreihe S = (s1, s2, ..., sk) mit k Elementen ist der Mittelwert und die Varianz wie folgt definiert:
    Figure 00320001
  • Für zwei gegebene Last-Zeitreihen S1 = (s11, s12, ..., s1k) und S2 = (s21, s22, ..., s2k) sind ihre Kovarianz cov(S1, S2) und ihr Korrelationskoeffizient ρ wie folgt definiert:
    Figure 00320002
  • In einer bevorzugten Ausführungsform muss der Last-Korrelationskoeffizient ρ für den Spenderknoten positiv sein, um eine unvorteilhafte Lastkorrelation anzugeben und damit geeignet zur Migration, und für den Zielknoten negativ sein, um eine vorteilhafte Lastkorrelation für die Migration der Zielaufgabe an den Zielknoten anzugeben.
  • Das Lastkriterium stellt die Auslastung der Spender- und Empfängerknoten nach der Migration dar. Es wird vorausgesetzt, dass der Ereignisdurchsatz für die Dauer des Migrations-Entscheidungsprozesses für eine Aufgabe gleich bleibt, sodass die momentane Laststatistik zum Abschätzen der Auslastung der Spender- und Empfängerknoten nach der Migration verwendet werden kann. Die Abnahme der Auslastung des Spenderknotens sollte groß genug sein, d. h. größer oder gleich dem vorgegebenen LAST_ABNAHME_SCHWELLENWERT, und die Auslastung nach der Migration des Zielknotens sollte einen akzeptablen vorgegebenen Schwellenwert LAST_ZUNAHME_SCHWELLENWERT nicht überschreiten, um die Migration der Aufgabe zu gewährleisten.
  • Die GPU-Auslastung wird als die Systemlast betrachtet. Die Last der Knoten und Aufgaben wird über Zeitintervalle fester Zeitdauer gemessen. Die Statistiksammlung, die im Hintergrund ausgeführt wird, wird für diesen Zweck verwendet. In jedem Zeitintervall wird die Last einer Aufgabe als der Anteil der CPU-Zeit festgelegt, der von der Aufgabe in dem Zeitintervall beansprucht wird. Wenn die mittlere Ereignis-Eingangsrate in dem Zeitintervall i für die Aufgabe a λ(a) und der Durchschnitt der Ereignis-Verarbeitungszeit von a p(a) beträgt, wird die Last von a im Zeitintervall i λ (a).p(a). Deshalb beträgt die Auslastung Ud der Spendermaschine und Ur der Empfängermaschine nach der Migration einer Aufgabe al, wobei nd und nr die Gesamtanzahlen von Aufgaben auf dem Spender bzw. dem Empfänger sind:
    Figure 00330001
  • Die Migration muss stattfinden, wenn die Auslastung des Spenderknotens nach der Migration weniger als ein vorgegebener LAST_HÖCHSTSCHWELLENWERT beträgt und die Auslastung nach der Migration des Zielknotens weniger als der vorgegebene LAST_HÖCHSTSCHWELLENEWRT beträgt. Wenn diese Anforderungen nicht erfüllt sind, kann der Knoten optional die Zielaufgabe teilen und untersuchen, ob die Aufgabenteilung zu einer guten Auslastung nach der Migration führt. Die Teilung wird als Nächstes beschrieben (Block 40, 4). Wenn das Teilen keinen Erfolg liefert, kehrt der Knoten zum Berechnen des Zielknoten-Korrelationskoeffizienten wie oben beschrieben zurück und setzt das Auswählen eines neuen Zielknotens und Wiederholen der Aufgabenteilung falls nötig fort. Wenn keine möglichen Zielknoten gefunden werden, wird das computerrealisierte Verfahren nach einem gegebenen Zeitintervall unterbrochen, und es beginnt von Neuem mit der Statistiksammlung wie oben beschrieben.
  • Wenn die Zielaufgabe sehr groß ist, kann sie geteilt werden. Das Teilen kann von verschiedener Art sein. Zum Zweck der Veranschaulichung und nicht als Einschränkung werden nachfolgend drei Verfahren zum Teilen von Aufgaben beschrieben. Das Verfahren des Teilens wird von der Aufgabenart festgelegt. Es gibt andere Arten des Teilens zusätzlich zu den hier unten beschriebenen.
  • Das Teilen der Aufgaben kann in Partitionen ID wie in 8 veranschaulicht erfolgen. Der Eingabestrom kann gemäß der Partition ID partitioniert sein. Wenn es mehrere Eingabeströme für dieselbe Aufgabe gibt, werden die Partitionen mit derselben Partition ID über alle Eingabeströme der Aufgabe hinweg als die kleinste geeignete Einheit zusammengeführt. So können wir die Eingabeströme teilen und die Partitionen mit der Partition ID an verschiedene Knoten umleiten.
  • Das Teilen der Aufgaben kann entsprechend einem Zusammenhang erfolgen. Abhängig von der Aufgabenart kann es unmöglich sein, wie durch die Partition ID vorgegeben zu teilen. Beispielsweise könnte man gemäß einem Zusammenhang teilen wollen. Beispielsweise voraussetzend, eine Aufgabe verarbeitet alle Ereignisse für Nutzer, die Artikel von Januar bis Juni online kaufen. Diese Aufgabe kann in zwei Zusammenhänge geteilt werden, wobei ein Zusammenhang aus Nutzern, die von Januar bis März kaufen, und ein anderer Zusammenhang aus Nutzern besteht, die von April bis Juni kaufen. Dieselben Regeln in diesen beiden Zusammenhängen können parallel auf verschiedenen Knoten bewertet werden. Tatsächlich wird der eingehende Datenstrom unter zwei Knoten aufgeteilt, und Daten, die zu einem bestimmten Monat gehören, werden an den zugehörigen Knoten weitergeleitet.
  • Eine dritte Wahl stellt das Teilen der Aufgaben durch eine Regel dar. Vorausgesetzt, eine Aufgabe führt mehrere Dinge aus wie z. B. „Erkenne Verkauf von Äpfeln und Rückgabe von Orangen.” Tatsächlich führt diese Aufgabe zwei Regeln aus, wobei die erste Regel „Erkenne Verkauf von Äpfeln” und die zweite Regel „Erkenne Rückgaben von Orangen” lautet. Deshalb kann diese Aufgabe in zwei Regeln geteilt werden und parallel verarbeitet werden. In diesem Fall wird der eingehende Datenstrom vollständig repliziert und an die beiden Knoten weitergeleitet, die diese zwei Regeln parallel verarbeiten.
  • Kühlkasten-Einsparung als Ziel
  • Der Spenderknoten kann gegebenenfalls beabsichtigen, eine Aufgabe zu migrieren, die eine wesentliche Last trägt, da die Migration einer solchen Aufgabe zu einer möglicherweise wesentlichen Einsparung an Energie führt, die für das Kühlen des Spenderknotens [wie durch Block 46 in 4 angezeigt] aufgebracht wird. In einer weiteren Ausführungsform wählen wir erst einen möglichen Zielknoten aus, der eines oder mehrere der vorher angeführten Kriterien erfüllt, die ihn als einen Zielknoten auszeichnen und zusätzlich die Kühlkosten verringern. Diese Ausführungsform der vorliegenden Erfindung kann in den Schritt 5 des Auswählen eines Zielknotens [Block 38 aus 4] eingefügt werden. Diese Ausführungsform der vorliegenden Erfindung umfasst das Berechnen der Auslasstemperatur T i / out des Empfängerknotens i, wenn hypothetisch angenommen wird, dass die Aufgabe dorthin abgeordnet wird. Dies kann wie folgt berechnet werden: Der Knoten i nimmt eine Leistung Pi auf, während der die Aufgabenmenge Ci ausführt: Pi = Gi(Ci)
  • Die Energiefunktion Gi berücksichtigt Faktoren, wie z. B. wie oft der Knoten auf das Laufwerk zum Lesen und Schreiben infolge der Verarbeitung einer Aufgabe in der Aufgabenmenge Ci zugreifen muss.
  • Der Lüfter jedes Knotens i führt Luft über den Knoten i mit der Flussrate fi und der Einlasstemperatur T i / in und leitet erwärmte Luft mit der mittleren Auslasstemperatur T i / out ab. Gemäß dem Gesetz der Energieerhaltung und der Tatsache, dass beinahe die gesamte einer Recheneinheit zugeführte Energie als Wärme abgeleitet wird, kann die Beziehung zwischen Energieverbrauch eines Knotens und der Einlass-/Auslasstemperatur angenähert werden als: Pi = ρfiCp(T i / out – T i / in) wobei Cp die Wärmekapazität der Luft und ρ die Dichte der Luft darstellen. Deshalb führt der Energieverbrauch des Knotens i zum Ansteigen der Lufttemperatur von T i / in auf T i / out . Nachdem Pi berechnet wurde, können wir nach T i / out auflösen:
    Figure 00370001
  • Die hypothetische Auslasstemperatur des Spenderknotens nach der Migration muss auch unter Verwendung derselben Berechnungen wie oben berechnet werden, vorausgesetzt, dass die abzuordnende Aufgabe aus der von dem Spender aufgenommenen Aufgabenmenge Ci entfernt wird. Die vorgeschlagene Lastmigration sollte ausreichend Kühlkosten-Einsparung für den Spenderknoten erzeugen, damit die Migration begründet ist. Die Abnahme der hypothetischen Temperatur des Spenderknotens nach der Migration sollte größer oder gleich dem mit TEMPERATUR_ABNAHME_SCHWELLENWERT bezeichneten Installationsparameter sein, um die Migration sicherzustellen. Parameter wie diese könnten für jeden Knoten individuell von dem Nutzer eingestellt oder automatisch konfiguriert und durch diffusionsbasierte Protokolle durchgeführt werden (weiter unten in der Ausführungsform beschrieben).
  • Wenn die geschätzte Zunahme der Auslasstemperatur des Empfängerknotens nach der Migration höher als der TEMPERATUR_ZUNAHME_SCHWELLENWERT, ein vorgegebener Schwellenwert, ist, müssen die Aufgabe geteilt und die Auslasstemperatur neu berechnet werden. Wenn die Auslasstemperatur weiter unakzeptabel ist, teilt man die Aufgabe rekursiv und wiederholt diese Berechnung für die berechnete Temperatur des Zielknotens nach der Migration. Der vorgegebene Wärmeschwellenwert kann von einem Nutzer festgelegt werden und für jeden Knoten variieren. Der Schwellenwert kann geändert und jederzeit während der Ausführung neu festgelegt werden. Die Aufgabenteilung wird hier ausführlich beschrieben. Wenn die Aufgabe nicht weiter geteilt werden kann, kehrt man erneut zu Schritt 5 zurück und wählt einen anderen Zielknoten. Wenn keine weiteren Zielknoten verfügbar sind, kehren wir zu Schritt 3 zurück und wählen eine andere Aufgabe zur Migration aus.
  • Anstelle des Einfügens der berechneten Auswirkung auf die Temperatur und die resultierenden Temperatureinsparungen beim Auswählen der abzuordnenden Aufgabe, ihres Quell- und Zielknotens kann ein Nutzer einige Einstellungen konfigurieren, um diese Berechnung zu einem Bestandteil der Auslastungsberechnung nach der Migration zu machen, wie es in Schritt 5 definiert ist. So würde die Temperatur der Spender- und Empfängerknoten nach der Migration wie in Schritt 5 oben beschrieben zusätzlich zu den Auslastungsdaten nach der Migration berechnet werden. Nutzer, die diese „kombinierte Entscheidungsfindung” bevorzugen, müssten einige Parameter anfänglich festlegen. Zu diesen Parametern gehören: ein akzeptabler Schwellenwert für die akzeptable Temperatursenkung und die Kühlkosten-Einsparungen auf der Spenderseite, um eine solide Entscheidung zum Bewegen der Aufgabe zu treffen, und ein akzeptabler Höchstschwellenwert für die Temperaturzunahme und die Kühlkosten-Zunahme auf dem Zielknoten, um eine solide Entscheidung zum Bewegen einer Aufgabe zu treffen. In diesem kombinierten Weg der Entscheidungsfindung verwendet ein Nutzer diese Erfindung mit der Absicht, die Lastmigration mit dem primären Ziel einer gleichmäßigen Lastverteilung auszuführen, und dem sekundären Ziel, vernünftige Einsparungen der Kühlkosten zu erhalten.
  • Schritt 6: Lastaustausch-Protokoll:
  • Der nächste Schritt des Prozesses besteht darin, ein Lastaustausch-Protokoll an jedem Knoten einzurichten, um die Anzahl von Migrationen der Zielaufgaben zu verwalten, und sicherzustellen, dass lokal unabhängige Systemlast-Migrationen zur Lastverteilung auf dem Gesamtsystem in dem ereignisgesteuerten System führen (Block 42, 4), sowie sicherzustellen, dass die lokalen Migrationen sich nicht gegenseitig behindern.
  • Da es sich bei dem computerrealisierten Verfahren um einen dezentralen Prozess handelt, muss das Lastaustausch-Protokoll drei Eigenschaften enthalten, nämlich die Zielaufgaben-Migration darf nicht zu Schwingungen führen, es darf keine gleichzeitige Migration von zwei oder mehren Zielaufgaben in einem einzigen Maschinenzyklus vorkommen und die Lastverteilung muss auf bestimmte Weise als ein Endergebnis der Zielaufgaben-Migration verbessert werden. Manche oder alle diese Eigenschaften müssen in einer bevorzugten Ausführungsform vorhanden sein.
  • Jede dieser Eigenschaften wird nun ausführlich beschrieben werden.
  • Wenn sich die Energiekosten zwischen den vorherigen und den folgenden Laufzeit-Intervallen nicht geändert haben, ist eine Schwingung unerwünscht, wenn sich aber die Energiekosten oder andere Kostenfaktoren während einem hinreichend großen Zeitfenster ändern, ist eine Schwingung zulässig. Wenn beispielsweise während der Zeitdauer t eine Last vom Knoten A zum Knoten B verschoben wird, darf es in der Zeitdauer t + 1 nicht vorkommen, dass die Last zurück vom Knoten B zum Knoten A verschoben wird, ohne dass genügend Energieeinsparungen den Wechsel begründen. Anders formuliert, eine Schwingung stellt das Vor- und Zurückverschieben einer Aufgabe zwischen denselben beiden Knoten mehr als einmal infolge von Lastverteilungs-Entscheidungen dar.
  • Es dürfen keine gleichzeitigen Verschiebungen stattfinden. Wenn beispielsweise eine Aufgabe A von dem Knoten X zum Knoten Y verschoben wird, darf es nicht vorkommen, dass stromabwärtige (Downstream-)Aufgaben, die mit A verbunden sind, auch gleichzeitig verschoben werden, das dies der bezüglich der früheren Entscheidung nachteilig wäre.
  • Das Endergebnis der Zielaufgaben-Migration sollte auf gewisse Weise besser als die anfängliche Konfiguration sein, vorausgesetzt, die Eingabedatenraten ändern sich nicht sehr stark zwischen den Zeitintervallen.
  • Um diese Eigenschaften zu erreichen, werden die folgenden Randbedingungen für den lokalen Lastwechsel auf jedem Knoten festgelegt.
  • Lastverschiebungen sollten alle stromabwärts oder alle stromaufwärts erfolgen. Alle Knoten leiten die Aufgaben an Knoten weiter, die stromabwärtige Elemente in dem Aufgabenfluss aufnehmen, mit Ausnahme der Knoten, die die Wurzel und die Blätter des Aufgabenfluss-Graphen aufnehmen. Oder alle Knoten leiten umgekehrt Aufgaben an Knoten weiter, die stromaufwärtige Elemente der Aufgaben aufnehmen, die sie aufnehmen, mit Ausnahme der Knoten, die die Wurzel und die Blätter in dem Aufgaben-Flussgraphen aufnehmen. Unabhängig von der ausgewählten Richtung müssen alle Knoten die Aufgaben in dieser Richtung für eine vorgegebene Anzahl von Zeitschritten weiterleiten, bevor die Richtung umgekehrt wird. Für die Knoten, die die Wurzel und die Blätter in dem Aufgabengraphen aufnehmen, wird empfohlen, paralleles Teilen zu versuchen. Diese Lastwechsel-Primitive stellt eine Widerstandsfähigkeit gegen Schwingungen bereit, da sie den Lastwechsel in nur eine Richtung erzwingt.
  • Es darf höchstens eine Aufgabenmigration je Zeitschritt ausgeführt werden. Wenn eine Entscheidung getroffen wird, eine Aufgabe zu migrieren, kann keine der Aufgaben, die sich stromabwärts in dem Aufgabenfluss befinden und von dieser Aufgabe höchstens eine Maschinenverbindung entfernt sind, in demselben Zeitschritt verschoben werden. Wenn, wie z. B. in 9 gezeigt, das Bewegen der Aufgabe c von M3 nach M5 festgelegt wird, können sich nicht gleichzeitig die Aufgaben d und e (die sich stromabwärts in dem Aufgabenfluss von c befinden) bewegen. Nachdem ein Spenderknoten entscheidet, die Last an einen Zielknoten zu verschieben, muss der Spenderknoten alle seine unmittelbaren Nachbarn sowohl stromaufwärts als auch stromabwärts benachrichtigen. Auf der Grundlage dieser Benachrichtigung können die Knoten entscheiden, ob sie eine Last verschieben. Diese Lastaustausch-Primitive stellt eine Widerstandsfähigkeit gegen die Möglichkeit von gleichzeitigen Entscheidungen dar, die sich selbst widersprechen.
  • Es gibt Beschränkungen für die Anzahl von Lastverschiebungen. Nachdem eine Zielaufgabe an einen neuen Standort verschoben wurde, kann sie sich für eine vorgegebene Anzahl von Zeitschritten nicht weiterbewegen. Dies kann auch in Einheiten der Zeitdauer ausgedrückt werden, die seit dem letzten Verschieben der Aufgabe verstrichen ist. Diese Lastaustausch-Primitive stellt sicher, dass das System nicht seine gesamte Zeit zum Verschieben von Last aufwendet und ein wesentlicher Zeitanteil auch für die Verarbeitung aufgebracht wird.
  • Zwei Knoten können Zielaufgaben nicht gleichzeitig zu einem Zielknoten migrieren. Wenn beispielsweise ein Knoten B Last an seinen Kindknoten C sendet und der Knoten A, bei dem es sich auch um die Mutter von C handelt, gleichzeitig versucht, Last zu dem Knoten C zu migrieren, verfügt B über eine Lastaustausch-Sperre auf dem Knoten C, und der Knoten A kann solange keine Aufgabe zu dem Knoten C migrieren, bis der Knoten B die Lastmigration zu dem Knoten C abgeschlossen hat und die Sperre aufgehoben ist. Ohne das Annehmen der Lastaustausch-Sperre des Zielknotens kann ein Spenderknoten keine Last an einen Zielknoten übertragen. Diese Lastaustausch-Primitive stellt sicher, dass ein Empfängerknoten nicht überlastet wird, wenn er Last von anderen Knoten genau gleichzeitig empfängt.
  • Es wird vorausgesetzt, dass die Eingabe-Datenraten zwischen zwei folgenden Lastverschiebungen nicht wesentlich schwanken, denn aufgrund von Faktoren, die in den vorangehenden Schritten des vorliegenden computerrealisierten Verfahrens festgelegt wurden, kann garantiert werden, dass jede lokale Verschiebung optimal ist. Deshalb ist die Konfiguration von Aufgaben an Maschinen hinsichtlich der verfügbaren Last und dem Speicher, der den Aufgaben zur Verfügung steht, optimal, und die Gesamt-Antwortzeit für den Nutzer ist geringer als in der anfänglichen Anordnung zuvor.
  • Schritt 7: Migration
  • In dem letzten Schritt des Prozesses [Block 44] wird die Zielaufgabe zu dem Zielknoten migriert. Die Ausführung der Zielaufgabe an dem Zielknoten kann dann fortgesetzt werden. Darauf folgend kann es wünschenswert sein, Statistiken [Block 32] über die Ausführung der Zielaufgabe an dem Zielknoten anzulegen, sodass ein weiterer Lastausgleich nach den Schritten 3 bis 7 stattfinden kann, wenn weitere Anpassungen notwendig sind.
  • Übergänge in den Ruhezustand und Energie-Einsparungsziele
  • In einer anderen alternativen Ausführungsform der vorliegenden Erfindung [Block 46 von 4] kann es wünschenswert sein, dass einer oder mehrere Knoten in den Ruhezustand übergehen. Es gibt einen Entscheidungsprozess, der mehrere Faktoren mit sich bringt, ob einer oder mehrere Knoten zu Lasten eines gegebenen Knotens in den Ruhezustand versetzt werden. Eine solche Entscheidung kann das Migrieren aller Aufgaben (Zielaufgabe) auf dem stillgelegten Knoten (Spenderknoten) zu einem anderen Knoten (Zielknoten) mit sich bringen. Bei diesen mehreren Faktoren handelt es sich um:
    Vorhergesehenes Datenaufkommen und Zeitdauer des Ruhezustandes;
    welche anderen Knoten auch in den Ruhezustand übergehen können;
    Abschätzen der Kosten des Übergehens in den Ruhezustand;
    Abschätzen der Vorteile des Übergehens in den Ruhezustand; und
    das Übergehen in den Ruhezustand darf nur ausgeführt werden, wenn die Vorteile des Übergangs die Kosten überwiegen.
  • Wenn die Vorteile die Kosten übertreffen, können die Zielaufgaben an den Zielknoten migriert werden, und der Knoten kann in den Ruhezustand zum Einsparen von Energie übergehen. Das Übergehen in den Ruhezustand kann vor oder nach dem oben beschriebenen Lastenausgleich ablaufen. Das Übergehen in den Ruhezustand kann auch anstelle des Lastenausgleichs stattfinden.
  • Alle obigen Faktoren werden nun ausführlich beschrieben.
  • Bei dem ersten Faktor handelt es sich um das vorhergesagte Datenaufkommen und die Zeitdauer des Ruhezustandes. Durch Analysieren der Eingangsdatenrate des vorher empfangenen Eingabe-Datenaufkommens kann ein Knoten ermitteln, ob es Muster in dem Eingabe-Datenaufkommen gibt. Zu dieser Analyse kann eine statistische Analyse gehören, wodurch der Knoten den Mittelwert und die Varianz der Dateneingänge berechnen und Kurvenanpassung verwenden kann, um die Verteilung der Eingabe-Eingangsereignisse darzustellen. Auf der Grundlage dieser Analyse kann ein Knoten ein Muster in der Eingangsdatenrate seiner Eingabedaten ermitteln und die Zeitdauer festlegen, die er in den Ruhezustand übergehen kann. Wenn z. B. für eine bestimmte Zeitdauer jeden Tag keine Daten eingehen, kann der Knoten entscheiden, während der Zeit, in der keine Daten erwartet werden, in den Ruhezustand überzugehen. Der Knoten entscheidet sich für diesen Vorgang, vorausgesetzt die Einsparungen an Energie, die aus der Zeitdauer im Ruhezustand resultieren, sind größer oder gleich dem ENERGIE_ABNAHME_SCHWELLENWERT. Diese Situation ist in 10 dargestellt. In 10 geht der Knoten M10 für eine gegebene Zeitdauer in den Ruhezustand über, während die verbleibenden Knoten M4, M9 und M5 die Datenverarbeitung fortsetzen. Obwohl der Knoten M9 keine eingehenden Daten von dem Knoten M10 empfangen kann, da M10 stillgelegt ist, kann M9 weiter Daten verarbeiten, die er von M10 empfangen hat, bevor M10 in den Ruhezustand übergegangen ist. M9 kann auch Daten verarbeiten, die er von M4 empfängt, der physisch mit M9 in dem Netzwerk verbunden ist. Das computerrealisierte Verfahren der vorliegenden Erfindung zur Lastverteilung, das selbst als eine auf jedem Knoten ausgeführte Software umgesetzt ist, bezieht sich auf die Uhrzeit zur Bezugnahme auf die Zeit, um festzustellen, wann in den Ruhezustand überzugehen ist.
  • Die 11 und 12 veranschaulichen die Situation, bei der eine Menge von Knoten, die als die Spenderknoten-Menge bezeichnet wird, ihre Aufgaben und die Verarbeitung zu anderen Knotenmengen migrieren, die als die Empfängerknoten-Menge bezeichnet wird. Die Empfängerknoten müssen physisch mit den Knoten, von denen die Spenderknoten Eingabedaten empfangen, und mit den Knoten verbunden sein, an die die Spenderknoten die Ausgabe senden, die sich aus dem Ausführen der Verarbeitungsaufgaben an den Eingabedaten ergeben. Die Empfängerknoten müssen auch physisch mit den Spenderknoten verbunden sein, um migrierte Aufgaben zu senden und zu empfangen. Beim Umfang der physischen Verbindung kann es sich um eine oder mehrere Verbindungen handeln. Die Menge von Spenderknoten rückt zum Übergang in den Ruhezustand vor, während die Menge der Empfängerknoten das Verarbeiten der migrierten Aufgaben abwickelt. In diesem Fall könnte die empfangende Knotenmenge der spendenden Knotenmenge überlegen sein, wobei Überlegenheit mit Bezug auf die Verarbeitungsleistung, Speicherplatz sowohl in RAM als auch auf Festplatte, Wirtschaftlichkeit, Standardauslastung durch andere Aufgabenflüsse, die sie aufnehmen, oder beliebige andere Faktoren ausgedrückt werden kann, die von einem Nutzer des Systems angegeben werden. In 11 wird für diesen beispielhaften Vorgang von den Knoten M10 und M13 jeden Tag eine Häufung von Daten während einer bestimmten Zeitdauer erwartet. Die Knoten M12 und M13 können ihre Aufgaben und die verbundene Verarbeitung an die Knoten M10 und M9 migrieren, die zum Verarbeiten dieser Daten leistungsfähiger sind und insgesamt weniger Energie als die Spendernoten während dieser Zeitdauer nutzen, in der sie die verschobenen Aufgaben verarbeiten und sonst in dieser Zeit ungenutzt bleiben. 12 veranschaulicht die Situation, bei der die Datenverarbeitung von den Knoten M10 und M9 zurück an die Knoten M12 und M13 geleitet wird, nachdem die Zeitdauer der Häufung von Eingabedaten der abgeordneten Aufgaben vorüber ist, und es energetisch günstiger ist, das Verarbeiten auf M12 und M13 auszuführen.
  • In einem weiteren Beispiel, in dem die Eingabedaten mit sehr geringer Datenrate eingehen, d. h., sie ist kleiner als der PUFFER_DATENRATEN_SCHWELLENWERT, kann ein Knoten wählen, in einen halb stillgelegten Zustand überzugehen, in dem er das Verarbeiten aussetzt und die Eingabe eine bestimmte Zeitdauer wie z. B. die PUFFER_ZEITGRENZE puffert, bis er zum Verarbeiten der gepufferten Eingabe bereit ist.
  • Bei dem zweiten Faktor handelt es sich darum, welche anderen Knoten auch in den Ruhezustand übergehen können. Wenn ein Knoten in den Ruhezustand übergeht, ist es bei einer hierarchischen Natur der Aufgaben wahrscheinlich, dass auch Knoten stromabwärts, d. h. Knoten, die Aufgaben aufnehmen, die von der Ausgabe der Aufgaben des stillgelegten Knotens als ihre einzige Eingabe abhängen, in den Ruhezustand übergehen können. Die Energieeinsparungen eines einzelnen Knotens könnten nicht ausreichend sein, d. h. nicht größer sein als ein ENERGIE_ABNAHME_SCHWELLENWERT, um seine Entscheidung zum Übergang in den Ruhezustand zu begründen. In diesem Fall kann ein Knoten die gemeinsame Energieeinsparung von sich und seinen Nachbarn stromabwärts betrachten, die sich von ihrem gemeinsamen Übergang in den Ruhezustand ergeben, und beurteilen, ob die gemeinsamen Energieeinsparungen größer als der ENERGIE_ABNAHME_SCHWELLENWERT sind, um den Übergang in den Ruhezustand zu begründen. Auf der Grundlage des lokalem Datenaustauschs mit stromabwärtigen Knoten kann ein Knoten ermitteln, ob andere Knote auch gleichzeitig mit ihm selbst in den Ruhezustand übergehen können. Wenn ein stromabwärtiger Knoten keine Aufgaben für andere aktive Aufgabenflüsse zum Zeitpunkt des Datenaustausches aufnimmt, wird er auch gleichzeitig mit dem Knoten in den Ruhezustand gehen können, der ihm die Datenaustausch-Nachricht gesendet hat.
  • Bei dem dritten Faktor handelt es sich um das Abschätzen der Kosten des Übergangs in den Ruhezustand. Ein Knoten kann die Kosten des Übergehens in den Ruhezustand abschätzen, und zu dieser Abschätzung gehören die Zeitkosten und die Geschäftskosten. Insbesondere können sich die Kosten aus Folgendem zusammensetzen:
    Die Zeitdauer, die zum Unterbrechen der momentanen Verarbeitung und zum Speichern des notwendigen Zustands im Speicher, der mit dem Verarbeiten der Aufgabe verknüpft ist, auf dem Laufwerk notwendig ist,
    Wenn das Stilllegen die Entscheidung zum Migrieren von Aufgaben bedeutet, handelt es sich bei der Zeit, die zum Migrieren einer Aufgabe und ihrem zugehörigen Zustand an einen anderen Knoten notwendig ist, um weitere Kosten. Voraussetzend, dass sich der ganze mit einer Aufgabe verbundene Zustand wie auch die Aufgabe selbst lokal auf einem Knoten befinden, kann ein Knoten diese Kosten durch ein erstes Ermitteln der Geschwindigkeit und der Bandbreite der Verbindung abschätzen, die zum Migrieren der Aufgabe und des Zustands an einen Empfängerknoten verwendet werden. Beim Ermitteln, welche Aufgabe und zu welchem Knoten sie migriert, kann ein Knoten die vorher angeführten Schritte 1 bis 6 dieser Ausführungsform anwenden.
  • Wenn Aufgaben migriert werden und an einem anderen Knoten wieder aufgenommen werden müssen, handelt es sich bei den Inbetriebnahmekosten zum Wiederaufnehmen der Verarbeitung dieser Aufgaben an einem anderen Knoten um weitere Kosten. Diese Inbetriebnahmekosten schließen die Zeit zum Erreichen des Zustands, an dem die Verarbeitung der Aufgabe unterbrochen wurde, und zum Wiederaufnehmen an diesem Zeitpunkt ein.
  • Die Kosten c des Übergehens in den Ruhezustand können quantitativ als eine gewichtete Verknüpfung von n Faktoren berechnet werden, wobei der Faktor f1 die Kosten beim Unterbrechen der Ausführung, der Faktor f2 die Kosten beim Abordnen und fi einen weiteren Kostenfaktor, m1 das Gewicht des Faktor f1, m2 das Gewicht des Faktors f2, ... und mn das Gewicht des Faktors fn bezeichnen:
    Figure 00480001
  • Bei dem vierten Faktor handelt es sich um das Abschätzen der Vorteile des Übergangs in den Ruhezustand. Die Vorteile des Übergangs in den Ruhezustand können nach zwei Dimensionen der Energieeinsparungen und Geschäftskosten-Einsparungen bewertet werden. Genauer können die Vorteile von einem Knoten wie folgt abgeschätzt werden:
    Ein Knoten kann die Energieeinsparungen abschätzen, die er während der Zeitdauer anspart, die er im Ruhezustand verweilen wird. Dies könnte mit Bezug auf die eingesparte Elektrizität oder Energie auf der Grundlage früherer Muster des Energieverbrauchs des Knotens abgeschätzt werden. Wenn Aufgaben zu einer leistungsfähigere Maschine migriert werden, muss der Anteil des Energieverbrauchs der Empfängermaschine, der diese gewanderten Aufgaben zugeteilt werden, von der Gesamt-Energieersparnis subtrahiert werden. Der Energieverbrauch der migrierten Aufgabenmenge am Knoten i, wobei Ci die Aufgabenmenge, die aus Aufgaben t1, t2, ..., tn besteht, und n die Gesamtanzahl migrierter Aufgaben darstellen, kann wie folgt abgeschätzt werden. Es sei Pi die Rate, mit der der Knoten i Energie verbraucht, während er die Aufgabenmenge Ci ausführt. Ein Beispiel für die Einheiten von Pi wären Watt pro Sekunde. Pi kann wie folgt berechnet werden: Pi = Gi(Ci)
  • Die Leistungsfunktion Gi berücksichtigt Faktoren wie z. B., wie oft die Knoten auf die Festplatte zum Lesen und Schreiben infolge der Verarbeitung einer Aufgabe in der Aufgabenmenge Ci zugreifen muss. Gi kann durch das Migrieren von Ci zu den Knoten i und Aufzeichnen des Anteils des Energieverbrauchs p über ein festes Zeitintervall t abgeschätzt werden, wobei die an die Aufgaben gestellten Datenraten mit den vorher erwähnten Kurvenanpassungs-Techniken abgeschätzt werden, um den aktuellsten Trend in den eingehenden Datenraten am besten nachzubilden. Deshalb beträgt Gi: Gi(Ci) = p / t
  • Sobald Gi berechnet ist, kann Pi abgeschätzt werden, und damit beträgt der Energieverbrauch der Aufgabenmenge über ein Zeitintervall x Pi.x.
  • Wenn der Übergang dazu führt, dass Daten wirtschaftlicher verarbeitet werden, kann dies zum Verringern der Ende-zu-Ende-Latenzzeit für die Anwendung führen.
  • Die Vorteile b des Übergangs in den Ruhezustand können quantitativ als eine gewichtete Verknüpfung von n Faktoren berechnet werden, wobei der Faktor f1 die Energieeinsparungen, der Faktor f2 die Ende-zu-Ende-Latenzzeit und fi einen anderen Vorteilsfaktor darstellt, und k1 das Gewicht des Faktors f1, k2 das Gewicht des Faktors f2, ... und kn das Gewicht des Faktors fn darstellt:
    Figure 00500001
  • Die Gewichte an den Faktoren, die die Kosten oder Vorteile bestimmen, könnten affin sein. Eine affine Verknüpfung ist definiert als eine lineare Kombination, bei der die Summe aller Gewichte der Verknüpfung eins beträgt. Die Gewichte könnten also auch nichtlinear oder konstant sein. Um die aussagekräftigen Werte aus den Kosten- und Vorteilsgleichungen mit speziellen Gewichten zu entnehmen, müssen die numerischen Werte der Faktoren normiert sein. Normierung ist ein gängiges Verfahren in der Statistik.
  • Die Entscheidung des Übergehens in den Ruhezustand darf nur getroffen werden, wenn die Vorteile des Übergangs die Kosten überwiegen. Anders formuliert, es sollte b größer als c sein, um den Übergang in den Ruhezustand zu begründen.
  • Es muss auch angemerkt werden, dass die Werte der ki an den Knoten periodisch aktualisiert werden könnten. Wenn beispielsweise die Energiekosten nach der Tageszeit, dem Wochentag oder saisonal schwanken, könnten verschiedene Werte für die Gewichte der Energieeinsparungen in verschiedenen Situationen angewendet werden.
  • Beim Übergehen in den Ruhezustand ist es wichtig, die Zeitdauer des Ruhezustands mit anderen Knoten zu synchronisieren. Synchronisieren bedeutet, dass sich Knoten auf einen festen Zeitpunkt einigen, wann sie zusammen als eine Gruppe abschalten und wann sie zusammen als eine Gruppe wieder anschalten. Da Daten von einer Aufgabe zu einer anderen fließen, ist es wichtig und durchführbar, die zwischen Knoten stillgelegten Knoten zu synchronisieren. Dies beruht darauf, dass, wenn ein stromaufwärts gelegener Knoten in den Ruhezustand übergeht, die Knoten, die stromabwärts in einem Fluss mit diesen stromaufwärts gelegenen Knoten verbunden sind, auch in den Ruhezustand übergehen können, vorausgesetzt, dass sie keine Aufgaben wahrnehmen, die zu anderen Flüssen gehören, oder, wenn die stromabwärts gelegenen Knoten Aufgaben wahrnehmen, die zu anderen Flüssen gehören, können die Knoten stromabwärts in den Ruhezustand übergehen, wenn die stromaufwärtigen Knoten in allen verschiedenen Datenflüssen, die sie aufnehmen, auch in den Ruhezustand übergehen. Diese Situation ist in 13 gezeigt. In 13 entscheidet der Knoten M4, in den Ruhezustand überzugehen und verbreitet diese Nachricht an seine Knoten stromabwärts. Der stromabwärtige Knoten M5 von M4 entscheidet auch, in den Ruhezustand überzugehen, da er erkennt, dass er während der Zeitdauer, in der M4 stillgelegt ist, keine Daten von M4 empfangen kann, und berechnet, dass er keine Daten von M1 empfangen wird auf der Grundlage einer Datenmuster-Analyse und -Vorhersage. M5 muss auch keine verbleibende Verarbeitung von vorher empfangenen Daten ausführen. Deshalb synchronisiert der Knoten M4 die Zeitdauer seines Ruhezustands mit dem Knoten M5, und beide gehen für eine vereinbarte Zeitdauer in den Ruhezustand über. Ähnlich erkennt der Knoten M9 in 13, wenn der Knoten M10 entscheidet, in den Ruhezustand überzugehen und diese Nachricht an seine stromabwärtigen Knoten sendet, dass er keine Daten während der Zeitdauer, in der M10 stillgelegt ist, empfangen kann und er keine verbleibende Verarbeitung ausführen muss. Deshalb synchronisiert M10 seinen Ruhezustand mit dem Knoten M9, und beide gehen für eine vereinbarte Zeitdauer in den Ruhezustand über. Die Energiekosten des Übergangs in den Ruhezustand können sich für verschiedene Knoten unterscheiden. Wenn entschieden wird, in den Ruhezustand überzugehen, schätzt ein Knoten diese Kosten für das Abschalten von sich selbst und subtrahiert sie von den geschätzten Energieeinsparungen.
  • Es folgt eine Tabelle aller vom Nutzer eingestellten Parameter, die in der vorliegenden Erfindung festgelegt werden. Die Parameter in der Tabelle können individuell für jeden Knoten von einem Nutzer zu einem beliebigen Zeitpunkt eingestellt werden. Ein Knoten kann mehrere Nutzer haben. Alternativ kann ein Nutzer, wenn das Netzwerk sehr groß ist (z. B. Tausende Knoten) die Auslöseeinstellungen der Lastmigration für eine Teilmenge der Knoten festlegen und auf autonome dezentralisierte Algorithmen zur Datenverbreitung wie z. B. Basisdiffusion oder Belief-Propagation für die initialisierten Knoten zurückgreifen, um ihre initialisierten Werte an andere Knoten zu verbreiten, für die diese Schwellenwerte geeignet sind. Bei Diffusion handelt es sich um eine Technik, bei der sich ein Nettotransport von Daten von einer Knotenmenge in dem Netzwerk, in der die Daten sehr dicht liegen, an eine Knotenmenge ergibt, die über wenige oder keine der Daten verfügen. Das Ergebnis der Diffusion stellt eine abgestufte Datenmischung dar. Unter bestimmten Umständen führt der Diffusionsprozess, der auf einer ausschließlich selbst eingeleiteten lokalen Koordination von Knoten basiert, schließlich zu einer vollständigen Datenvermischung in dem Netzwerk.
    Variablenname Bedeutung der Variable Beispielwert
    HISTORY_ANZAHL_AUFGEZEICHNETER_INTERVALLE Statistiken, die an einem Server für die Ausführung von Aufgaben aufgezeichnet wurden, die ihm zugewiesen wurden, und Ereignis-Eingang-Ausgang von diesen Aufgaben werden zusammengeführt mit Berechnung der Mittelwerte, Standardabweichung usw. über diese Anzahl von Überwachungszyklen Diese Anzahl HISTORY_Anzahl_aufgezeichneter_Intervalle minus den Wert von HISTORY_Intervall_Zähler_Reinigungsumfang muss groß genug sein, um der Lastverteilungs-Software zu erlauben, das periodische Muster in dem Ereignis-Datenaufkommen und der Aufgaben-Betriebsmittel-Auslastung zu erkennen, aber nicht so groß sein, dass sie eine größere Last für den Knoten mit Bezug auf die Menge zu behaltender statistischer Daten darzustellen. Auch die Logik zum Verringern (Löschen alter) Statistiken wird alle HISTORY_Anzahl_aufgezeichneter_Intervalle Zeitintervalle ausgeführt. 40
    HISTORY_INTERVALL_ZÄHLER_REINIGUNGSUMFANG Annehmend, dass es billiger ist, alte Statistiken in Mengen zu entfernen, wird eine alte Menge von Statistiken nicht gelöscht, wenn eine neue bereit zum Speichern ist, und diese ganze Zahl gibt die Anzahl der jedes Mal zu löschenden Statistiken an, wenn die vergangenen Statistiken im Umfang verringert werden.
    LAST_VERTEILUNGS_ZEITINTERVALL Länge des episodischen Zeitintervalls, nach dem die Lastverteilung in einem Knoten untersucht wird 10 Sekunden
    ZUSTANDS_MIGRATIONS_GRENZE Maximaler Anteil des aufgabenbezogenen Zustands, der migriert werden kann 1 GB
    LAST_ABNAHME_SCHWELLENWERT Kleinster Anteil hypothetischer prozentualer Abnahme der Auslastung nach der Migration zu einem Spenderknoten, die sich aus der vorgeschlagenen Migration 20%
    einer Aufgabe ergibt, um die Migration zu unterstützen.
    LAST_ZUNAHME_SCHWELLENWERT Höchster zulässiger Anteil an hypothetischer prozentualer Zunahme der Auslastung nach der Migration eines Empfängerknotens, die sich aus der vorgeschlagenen Migration einer Aufgabe ergibt, um die Migration zu unterstützen. 10%
    LAST_HÖCHSTSCHWELLENWERT Höchste akzeptable Last auf einem Knoten, ausgedrückt als Prozent der Gesamt-Lastkapazität des Knotens. 70%
    TEMPERATUR_ZUNAHME_SCHWELLENWERT Höchster zulässiger Anteil der hypothetischen prozentualen Zunahme der Temperatur nach der Migration zu einem Empfängerknoten als Ergebnis der vorgeschlagenen Migration einer Aufgabe, um die Migration zu unterstützen. 20%
    TEMPERATUR_ABNAHME_SCHWELLENWERT Kleinster Anteil hypothetischer Abnahme der Temperatur nach der Migration eines Spenderknotens als Ergebnis der vorgeschlagenen Migration einer Aufgabe, um die Migration zu unterstützen. 10%
    PUFFER_DATENRATE_SCHWELLENWERT Wenn die eingehenden Datenraten unter dieser Datenrate liegen, sollte ein Knoten in den halb stillgelegten Zustand übergehen, in dem er Eingaben puffert und die Verarbeitung unterbricht 10 Meldungen je Sekunde
    PUFFER_ZEITGRENZE Die größte Dauer eines Intervalls, in dem ein Knoten Eingaben puffert 10 Sekunden
    ENERGIE_ABNAHME_SCHWELLENWERT Kleinster Anteil hypothetischer prozentualer Abnahme des Energieverbrauchs eines Knotens als Ergebnis seines Übergangs in den Ruhezustand. 10%
    m1, m2, ... mn, wobei n die Gesamtanzahl von Faktoren darstellt Gewichte an Faktoren beim Abschätzen der Gesamtkosten des Übergangs in den Ruhezustand Alle Gewichte konstant bei 1 1.
    k1, k2, ... kn, wobei n die Gesamtanzahl von Faktoren darstellt Gewichte an Faktoren beim Abschätzen der Gesamtvorteile des Übergangs in den Ruhezustand Alle Gewichte konstant bei 1.
  • Die Erfindung kann die Form einer Ausführungsform ausschließlich in Hardware, einer Ausführungsform nur in Software oder einer Ausführungsform annehmen, die sowohl Hardware als auch Software-Elemente enthält. In einer bevorzugten Ausführungsform wird die Erfindung in Software realisiert, die Firmware, residente Software, Mikrocode usw. enthält, aber nicht darauf beschränkt ist.
  • Darüber hinaus kann die Erfindung die Form eines Computerprogrammprodukts annehmen, auf das von einem computerverwendbaren oder computerlesbaren Medium zugegriffen werden kann, das Programmcode zur Verwendung durch oder in Verbindung mit einem Rechner oder einem Befehlsausführungs-Systems bereitstellt. Zum Zweck dieser Beschreibung kann es sich bei einem computerverwendbaren oder computerlesbaren Medium um eine beliebige physische Vorrichtung handeln, die das Programm zur Verwendung in oder in Verbindung mit dem Befehlsausführungs-System, der -Vorrichtung oder der -Einheit enthalten, speichern, übertragen, verbreiten kann.
  • Bei dem Medium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder ein Halbleitersystem (oder eine Vorrichtung oder Einheit) oder ein Ausbreitungsmedium handeln. Zu Beispielen eines computerlesbaren Mediums zählen Halbleiter- oder Festkörperspeicher, ein Magnetband, eine entfernbare Computerfestplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nurlesespeicher (ROM), eine starre Magnetplatte und eine optische Platte. Zu aktuellen Beispielen optischer Platten zählen Kompaktdisc-Nurlesespeicher (CD-ROM), Lesen/Schreiben-Kompaktdisk (CD-R/W) und DVD ein.
  • Ein Datenverarbeitungs-System, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, enthält wenigstens einen Prozessor, der direkt oder indirekt mit Speicherelementen durch einen Systembus verbunden ist. Die Speicherelemente können lokalen Speicher, der während der momentanen Ausführung des Programmcodes verwendet wird, Hauptspeicher und Cache-Speicher enthalten, die vorübergehenden Speicherplatz von wenigstens einem Programmcode Umfang bereitstellen, um die Anzahl zu verringern, die dieser Code aus dem Hauptspeicher während der Ausführung abgerufen werden muss. Für die vorliegende Erfindung ist auch eine Cloud-Computing-Umgebung vorgesehen.
  • Ein-/Ausgabe- oder E/A-Einheiten (darunter, aber nicht darauf beschränkt, Tastaturen, Anzeigen, Zeigeeinheiten, usw.) können entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten an das System angeschlossen werden.
  • Netzwerkadapter können auch an das System angeschlossen werden, um es dem Datenverarbeitungs-System zu ermöglichen, mit anderen Datenverarbeitungs-Systemen oder fernen Druckern oder Speichereinheiten durch zwischengeschaltete private oder öffentliche Netzwerke verbunden zu werden. Modems, Kabel-Modems und Ethernetkarten stellen nur wenige der momentan verfügbaren Arten von Netzwerkadaptern dar.
  • Für den Fachmann geht aus dieser Beschreibung hervor, dass andere Veränderungen dieser Erfindung über diese Ausführungsformen hinaus, die hier beschrieben sind, ausgeführt werden können, ohne von dem Erfindungsgedanken der Erfindung abzuweichen. Dementsprechend werden solche Veränderungen als im Umfang der Erfindung enthalten erachtet, die nur durch die angefügten Ansprüche begrenzt wird.

Claims (25)

  1. Verfahren zur dezentralisierten Lastverteilung in einem ereignisgesteuerten System, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines Datenflusses, der von einer Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System, das zustandsbehaftete und zustandslose Verarbeitungselemente enthält, verarbeitet wird, wobei die Vielzahl von Aufgaben aus der Menge, die aus hierarchischen Aufgaben, nichthierarchischen Aufgaben und Mischungen daraus besteht, ausgewählt wird, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe, die von der Ausgabe einer anderen Aufgabe abhängt, und bei einer nichthierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt. Anlegen von Statistiken über jede Aufgabe, die an einem Knoten aufgenommen wird, und die Eigenschaften des Knotens einschließlich seiner Wärmeeigenschaften; Erzeugen einer Liste von Nachbarknoten unter Verwendung der gesammelten Statistiken, an die eine Aufgabe teilweise oder vollständig übertragen werden kann; Auswählen wenigstens einer Aufgabe, als Zielaufgabe bezeichnet, mit einer ersten Temperatur an einem Knoten, um eine Migration zu einem Nachbarknoten, als Zielknoten bezeichnet, in Betracht zu ziehen, aus der Liste von Nachbarknoten, um die Systemlast der Verarbeitung der wenigstens einen Aufgabe zu verteilen und die Kühlkosten zu verringern; Auswählen des Zielknotens, zu dem die wenigstens eine Aufgabe migriert werden kann, wobei der Zielknoten eine zweite Temperatur aufweist; Migrieren der Zielaufgabe an den Zielknoten, vorausgesetzt, die Migration verringert die erste Temperatur und die zweite Temperatur beträgt weniger als ein vorgegebener akzeptabler Wärmeschwellenwert; und Einrichten eines Lastaustausch-Protokolls an jedem Knoten zum Verwalten der Anzahl von Migrationen von Zielaufgaben, wobei die dezentralisierten Lastmigrationen insgesamt zur Lastverteilung des Gesamtsystems in dem ereignisgesteuerten System führen und die Kühlkosten verringern.
  2. Verfahren nach Anspruch 1, das ferner das Teilen der wenigstens einen Aufgabe in zwei oder mehrere Ziel-Teilaufgaben umfasst.
  3. Verfahren nach Anspruch 1, wobei das Lastaustausch-Protokoll das Folgende umfasst: (i) eine Entscheidung, die Zielaufgabe zu migrieren, darf nicht zu Schwingungen führen; (ii) es darf keine gleichzeitigen Migrationen von zwei oder mehr Aufgaben an einen einzigen Zielknoten in einem einzigen Maschinenzyklus geben; (iii) es darf keine gleichzeitigen Migrationen von zwei oder mehr Aufgaben von einem Knoten in einem einzigen Maschinenzyklus geben; und (iv) ein Endergebnis der Zielaufgaben-Migration muss die Lastverteilung auf bestimmte Weise verbessern.
  4. Verfahren nach Anspruch 1, wobei jeder Knoten die folgenden Randbedingungen der Lastverteilung besitzt: (i) während einer ersten vorgegebenen Zeitdauer werden alle Aufgaben entweder stromaufwärts oder stromabwärts migriert, und nach einer zweiten vorgegebenen Zeitdauer kann die Richtung der Zielaufgaben-Migration umgekehrt werden; (ii) wenn eine Zielaufgabe zu einem Zielknoten migriert wird, kann keine der stromaufwärtigen Aufgaben eines beliebigen nächsten Nachbarn für eine vorgegebene Zeitdauer vor der Migration migriert werden; (iii) nach dem Migrieren einer Zielaufgabe zu einem Zielknoten muss eine Zielaufgabe an dem Zielknoten für eine vorgegebene Zeitdauer verbleiben; und (iv) zwei Knoten können Zielaufgaben nicht gleichzeitig zu einem Zielknoten migrieren.
  5. Verfahren nach Anspruch 1, das ferner die folgenden Schritte umfasst: Migrieren wenigstens einer Zielaufgabe zu einem Zielknoten und Ausführen der wenigstens einen Zielaufgabe auf dem Zielknoten; und Anlegen von Statistiken über die Ausführung der wenigstens einen Zielaufgabe auf dem Zielknoten.
  6. Verfahren nach Anspruch 1, das ferner den Schritt des Auswählens wenigstens eines Knotens zum Übergang in den Ruhezustand umfasst.
  7. Computerprogrammprodukt, das Folgendes umfasst: ein computerbeschreibbares Speichermedium mit einem computerlesbaren Programmcode zur dezentralisierten Lastverteilung in einem ereignisgesteuerten System, das Folgendes umfasst: computerlesbaren Programmcode, geeignet zum Empfangen eines Datenflusses, der von einer Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System verarbeitet wird, wobei das System zustandsbehaftete und zustandslose Verarbeitungselemente enthält und wobei die Vielzahl von Aufgaben aus der Menge, die aus hierarchischen Aufgaben, nichthierarchischen Aufgaben und Mischungen daraus besteht, ausgewählt wird, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe, die von der Ausgabe einer anderen Aufgabe abhängt, und bei einer nicht hierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt; computerlesbarer Programmcode, geeignet zum Anlegen von Statistiken über jede Aufgabe, die an einem Knoten aufgenommen wird, und die Eigenschaften des Knotens einschließlich seiner Wärmeeigenschaften; computerlesbaren Programmcode, geeignet zum Erzeugen einer Liste von Nachbarknoten unter Verwendung der gesammelten Statistiken, an die eine Aufgabe teilweise oder vollständig übertragen werden kann; computerlesbaren Programmcode, geeignet zum Auswählen wenigstens einer Aufgabe, als Zielaufgabe bezeichnet, mit einer ersten Temperatur an einem Knoten, um eine Migration zu einem Nachbarknoten, als Zielknoten bezeichnet, in Betracht zu ziehen, aus der Liste von Nachbarknoten, um die Systemlast der Verarbeitung der wenigstens einen Aufgabe zu verteilen und die Kühlkosten zu verringern; computerlesbaren Programmcode, geeignet zum Auswählen des Zielknotens, zu dem die wenigstens eine Aufgabe migriert werden kann, wobei der Zielknoten eine zweite Temperatur aufweist; computerlesbaren Programmcode, geeignet zum Migrieren der Zielaufgabe zu dem Zielknoten, vorausgesetzt, die Verschiebung verringert die erste Temperatur und die zweite Temperatur beträgt weniger als ein vorgegebener akzeptabler Wärmeschwellenwert; und computerlesbaren Programmcode geeignet zum Einrichten eines Lastaustausch-Protokolls an jedem Knoten zum Verwalten der Anzahl von Verschiebungen von Zielaufgaben, wobei die dezentralisierten Lastmigrationen insgesamt zur Lastverteilung des Gesamtsystems in dem ereignisgesteuerten System führen und die Kühlkosten verringern.
  8. Computerprogrammprodukt nach Anspruch 7, das ferner computerlesbaren Programmcode, geeignet zum Teilen der wenigstens einen Aufgabe in zwei oder mehrere Ziel-Teilaufgaben, umfasst.
  9. Computerprogrammprodukt nach Anspruch 7, wobei das Lastaustausch-Protokoll das Folgende umfasst: (i) eine Entscheidung zum Migrieren der Zielaufgabe darf nicht zu einer Schwingung führen; (ii) es darf keine gleichzeitigen Migrationen von zwei oder mehr Aufgaben an einen einzigen Zielknoten in einem einzigen Maschinenzyklus geben; (iii) es darf keine gleichzeitigen Migrationen von zwei oder mehr Aufgaben von einem Knoten in einem einzigen Maschinenzyklus geben; und (iv) ein Endergebnis der Zielaufgaben-Migration muss die Lastverteilung auf bestimmte Weise verbessern.
  10. Computerprogrammprodukt nach Anspruch 7, wobei jeder Knoten die folgenden Randbedingungen für die Lastverteilung aufweist: (i) während einer ersten vorgegebenen Zeitdauer werden alle Aufgaben entweder stromaufwärts oder stromabwärts migriert, und nach einer zweiten vorgegebenen Zeitdauer kann die Richtung der Zielaufgaben-Migration umgekehrt werden; (ii) wenn eine Zielaufgabe zu einem Zielknoten migriert wird, kann keine der stromaufwärtigen Aufgaben eines beliebigen nächsten Nachbarn für eine vorgegebene Zeitdauer vor der Migration migriert werden; (iii) nach der Migration einer Zielaufgabe zu einem Zielknoten muss eine Zielaufgabe an dem Zielknoten für eine vorgegebene Zeitdauer verbleiben; und (iv) zwei Knoten können Zielaufgaben nicht gleichzeitig an einen Zielknoten migrieren.
  11. Computerprogrammprodukt nach Anspruch 7, das ferner Folgendes umfasst: computerlesbaren Programmcode, geeignet zum Migrieren der wenigstens einen Zielaufgabe zu einem Zielknoten und Ausführen der wenigstens einen Zielaufgabe an dem Zielknoten; und computerlesbaren Programmcode, geeignet zum Anlegen von Statistiken über die Ausführung der wenigstens einen Zielaufgabe auf dem Zielknoten.
  12. Computerprogrammprodukt nach Anspruch 7, das ferner computerlesbaren Programmcode umfasst, der zum Auswählen wenigstens eines Knotens zum Übergang in den Ruhezustand geeignet ist.
  13. Verfahren zur dezentralisierten Lastverteilung in einem ereignisgesteuerten System, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines Datenflusses, der von einer Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System, das zustandsbehaftete und zustandslose Verarbeitungselemente enthält, verarbeitet wird, wobei die Vielzahl von Aufgaben aus der Menge, die aus hierarchischen Aufgaben, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe handelt, die von der Ausgabe einer anderen Aufgabe abhängt, nichthierarchischen Aufgaben, wobei es sich bei einer nichthierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt, und Mischungen daraus besteht, ausgewählt wird. Anlegen von Statistiken über jede Aufgabe, die an jedem Knoten aufgenommen wird; Erzeugen einer Liste von Nachbarknoten unter Verwendung der gesammelten Statistiken, an die eine Aufgabe teilweise oder vollständig übertragen werden kann; Auswählen wenigstens eines Knotens, bezeichnet als Spenderknoten, zum Übergang in den Ruhezustand; Auswählen der Aufgaben, bezeichnet als Zielaufgaben, an dem Spenderknoten, um das Migrieren zu einem Nachbarknoten aus der Liste von Nachbarknoten, bezeichnet als Zielknoten, in Betracht zu ziehen. Auswählen des Zielknotens, zu dem die Zielaufgaben migiert werden können, wobei der Zielknoten vorgegebene Kriterien mit Bezug auf die Lastverteilungsqualität erfüllt; Einrichten eines Lastaustausch-Protokolls an jedem Knoten zum Verwalten der Anzahl von Migrationen der Zielaufgaben, wobei die dezentralisierten Lastmigrationen zu einer Lastverteilung des Gesamtsystems in dem ereignisgesteuerten System führen; Verschieben der Zielaufgaben von dem Spenderknoten an den Zielknoten und Übergehen des Spenderknotens in den Ruhezustand.
  14. Verfahren nach Anspruch 13, wobei der Schritt des Auswählens wenigstens eines Knotens zum Übergehen in den Ruhezustand das Folgende umfasst: Analysieren des eingehenden Datenaufkommens und der erwarteten Zeitdauer eines Ruhezustands an dem Spenderknoten; Bewerten anderer Knoten, die auch in den Ruhezustand übergehen können; Abschätzen der Latenzzeit und der Energie-/Kühlkosten an dem Spenderknoten beim Übergehen in den Ruhezustand; und Abschätzen der Energie-/Kühlkosten-Vorteile an dem Spenderknoten beim Übergehen in den Ruhezustand; und Migrieren der Zielaufgaben von dem Spenderknoten zu dem Zielknoten und Übergehen des Spenderknotens in den Ruhezustand, wenn die Vorteile des Übergehens in den Ruhezustand die Kosten des Übergehens in den Ruhezustand überwiegen.
  15. Verfahren nach Anspruch 13, das ferner das Teilen von Zielaufgaben in zwei oder mehrere Gruppen von Ziel-Teilaufgaben umfasst.
  16. Verfahren nach Anspruch 13, wobei die vorgegebenen Kriterien mit Bezug auf die Lastverteilungsqualität das Folgende umfassen: (i) der Zielknoten muss physisch verbunden sein mit: (a) dem Knoten, der die Zielaufgabe aufnimmt, (b) einem Knoten, der eine Aufgabe aufnimmt, bei der es sich um eine Mutter (parent) zu der Zielaufgabe handelt, und (c) einem Knoten, der eine Aufgabe aufnimmt, bei der es sich um ein Kind (child) der Zielaufgabe handelt; (ii) der Zielknoten muss über ausreichend Last und Speicher zum Aufnahmen der Zielaufgabe verfügen; (iii) Minimieren der Anzahl physischer Verbindungen in dem Datenfluss, der durch die Zielaufgabe führt; (iv) Beseitigen von Kreisläufen; (v) der Zielknoten muss einen negativen Lastkorrelations-Koeffizienten aufweisen; und (vi) die Auslastungen nach der Migration des Knotens, der die Zielaufgabe aufnimmt, und des Zielknotens übersteigen einen vorgegebenen größten Schwellenwert nicht.
  17. Verfahren nach Anspruch 13, wobei das Lastaustausch-Protokoll das Folgende umfasst: (i) eine Entscheidung, die Zielaufgabe zu migrieren, darf nicht zu Schwingungen führen; (ii) es darf keine gleichzeitige Migration von zwei oder mehreren Aufgaben zu einem einzigen Knoten in einem einzigen Maschinenzyklus geben; (iii) es darf keine gleichzeitige Verschiebung von zwei oder mehreren Aufgaben von einen einzigen Knoten in einem einzigen Maschinenzyklus geben; und (iv) ein Endergebnis der Zielaufgaben-Migration muss die Lastverteilung auf bestimmte Weise verbessern.
  18. Verfahren nach Anspruch 13, wobei jeder Knoten die folgenden Randbedingungen des Lastaustausches besitzt: (i) während einer ersten vorgegebenen Zeitdauer werden alle Aufgaben entweder stromaufwärts oder stromabwärts migriert, und nach einer zweiten vorgegebenen Zeitdauer kann die Richtung der Zielaufgaben-Migration umgekehrt werden; (ii) wenn eine Zielaufgabe zu einem Zielknoten migriert wird, kann keine der stromaufwärtigen Aufgaben eines beliebigen nächsten Nachbarn für eine vorgegebene Zeitdauer vor der Migration verschoben werden; (iii) nach dem Migrieren einer Zielaufgabe zu einem Zielknoten muss eine Zielaufgabe an dem Zielknoten für eine vorgegebene Zeitdauer verbleiben; und (iv) zwei Knoten können Zielaufgaben nicht gleichzeitig an einen Zielknoten migrieren.
  19. Verfahren nach Anspruch 13, das ferner den Schritt des Anlegens von Statistiken über die Ausführung der Zielaufgaben auf dem Zielknoten umfasst.
  20. Computerprogrammprodukt, das Folgendes umfasst: ein computerbeschreibbares Speichermedium mit einem computerlesbaren Programmcode zur dezentralisierten Lastverteilung in einem ereignisgesteuerten System, das folgendes umfasst: computerlesbaren Programmcode, geeignet zum Empfangen eines Datenflusses, der von einer Vielzahl von Aufgaben an einer Vielzahl von Knoten in dem ereignisgesteuerten System verarbeitet wird, wobei das System zustandsbehaftete und zustandslose Verarbeitungselemente enthält und wobei die Vielzahl von Aufgaben aus der Menge, die aus hierarchischen Aufgaben, wobei es sich bei einer hierarchischen Aufgabe um eine Aufgabe handelt, die von der Ausgabe einer anderen Aufgabe abhängt, nichthierarchischen Aufgaben, wobei es sich bei einer nichthierarchischen Aufgabe um eine Aufgabe handelt, die nicht von der Ausgabe einer anderen Aufgabe abhängt, und Mischungen daraus besteht, ausgewählt wird; computerlesbaren Programmcode, geeignet zum Anlegen von Statistiken über jede Aufgabe, die an einem Knoten aufgenommen wird, und die Eigenschaften des Knotens einschließlich seiner Wärmeeigenschaften; computerlesbaren Programmcode, geeignet zum Erzeugen einer Liste von Nachbarknoten unter Verwendung der gesammelten Statistiken, an die eine Aufgabe teilweise oder vollständig übertragen werden kann; computerlesbaren Programmcode, geeignet zum Auswählen wenigstens eines Knotens, bezeichnet als Spenderknoten, zum Übergang in den Ruhezustand; computerlesbaren Programmcode, geeignet zum Auswählen der Aufgaben, bezeichnet als Zielaufgaben, an dem Spenderknoten, um das Migrieren zu einem Nachbarknoten aus der Liste von Nachbarknoten, bezeichnet als Zielknoten in Betracht zu ziehen. computerlesbaren Programmcode, geeignet zum Auswählen des Zielknotens, an den die Zielaufgaben migriert werden können, wobei der Zielknoten vorgegebene Kriterien mit Bezug auf die Lastverteilungsqualität erfüllt; computerlesbaren Programmcode, geeignet zum Einrichten eines Lastaustauschprotokolls an jedem Knoten zum Verwalten der Anzahl von Migrationen der Zielaufgaben, wobei die dezentralisierten Lastmigrationen zu einer Lastverteilung des Gesamtsystems in dem ereignisgesteuerten System führen; computerlesbaren Programmcode, geeignet zum Migrieren der Zielaufgaben von dem Spenderknoten zu dem Zielknoten und Übergehen des Spenderknotens in den Ruhezustand.
  21. Computerprogrammprodukt nach Anspruch 20, wobei der computerlesbare Programmcode, der zum Auswählen wenigstens eines Knotens zum Übergehen in den Ruhezustand geeignet ist, das Folgende umfasst: computerlesbaren Programmcode, geeignet zum Analysieren des eingehenden Datenaufkommens und der erwarteten Zeitdauer eines Ruhezustands an dem Spenderknoten; computerlesbaren Programmcode, geeignet zum Bewerten anderer Knoten, die auch in den Ruhezustand übergehen können; computerlesbaren Programmcode, geeignet zum Abschätzen der Latenzzeit und der Energie-/Kühlkosten an dem Spenderknoten beim Übergehen in den Ruhezustand; und computerlesbaren Programmcode, geeignet zum Abschätzen der Energie-/Kühlkosten-Vorteile an dem Spenderknoten beim Übergehen in den Ruhezustand; und computerlesbaren Programmcode geeignet zum Migrieren der Zielaufgaben von dem Spenderknoten zu dem Zielknoten und Übergehen des Spenderknotens in den Ruhezustand, wenn die Vorteile des Übergehens in den Ruhezustand die Kosten des Übergehens in den Ruhezustand überwiegen.
  22. Computerprogrammprodukt nach Anspruch 20, wobei die vorgegebenen Kriterien mit Bezug auf die Lastverteilungsqualität das Folgende umfassen: (i) der Zielknoten muss physisch verbunden sein mit: (a) dem Knoten, der die Zielaufgabe aufnimmt, (b) einem Knoten, der eine Aufgabe aufnimmt, bei der es sich um eine Mutter (parent) zu der Zielaufgabe handelt, und (c) einem Knoten, der eine Aufgabe aufnimmt, bei der es sich um ein Kind (child) der Zielaufgabe handelt; (ii) der Zielknoten muss über ausreichend Last und Speicher zum Aufnahmen der Zielaufgabe verfügen; (iii) Minimieren der Anzahl physischer Verbindungen in dem Datenfluss, der durch die Zielaufgabe führt; (iv) Beseitigen von Kreisläufen; (v) der Zielknoten muss einen negativen Lastkorrelations-Koeffizienten aufweisen; und (vi) die Auslastungen nach der Migration des Knotens, der die Zielaufgabe aufnimmt, und des Zielknotens übersteigen einen vorgegebenen größten Schwellenwert nicht.
  23. Computerprogrammprodukt nach Anspruch 20, wobei das Lastaustausch-Protokoll das Folgende umfasst: (i) eine Entscheidung, die Zielaufgabe zu migrieren, darf nicht zu Schwingungen führen; (ii) es darf keine gleichzeitige Migration von zwei oder mehreren Aufgaben an einen einzigen Knoten in einem einzigen Maschinenzyklus geben; (iii) es darf keine gleichzeitige Migration von zwei oder mehreren Aufgaben von einen einzigen Knoten in einem einzigen Maschinenzyklustakt geben; und (iv) ein Endergebnis der Zielaufgaben-Migration muss die Lastverteilung auf bestimmte Weise verbessern.
  24. Computerprogrammprodukt nach Anspruch 20, wobei jeder Knoten die folgenden Randbedingungen des Lastaustauschs besitzt: (i) während einer ersten vorgegebenen Zeitdauer werden alle Aufgaben entweder stromaufwärts oder stromabwärts migriert, und nach einer zweiten vorgegebenen Zeitdauer kann die Richtung der Zielaufgaben-Migration umgekehrt werden; (ii) wenn eine Zielaufgabe zu einem Zielknoten migriert wird, kann keine der stromaufwärtigen Aufgaben eines beliebigen nächsten Nachbarn für eine vorgegebene Zeitdauer vor der Migration verschoben werden; (iii) nach dem Migrieren einer Zielaufgabe zu einem Zielknoten muss eine Zielaufgabe an dem Zielknoten für eine vorgegebene Zeitdauer verbleiben; und (iv) zwei Knoten können Zielaufgaben nicht gleichzeitig an einen Zielknoten migrieren.
  25. Computerprogrammprodukt nach Anspruch 20, das ferner computerlesbaren Programmcode, geeignet zum Anlegen von Statistiken über die Ausführung der Zielaufgaben auf dem Zielknoten, umfasst.
DE112010003338.2T 2009-08-18 2010-05-04 Dezentrale Lastverteilung zum Verringern der Energie- und/oder Kühlkosten in einem ereignisgesteuerten System Active DE112010003338B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/543,474 US8479215B2 (en) 2009-08-18 2009-08-18 Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US12/543,474 2009-08-18
PCT/US2010/033465 WO2011022098A1 (en) 2009-08-18 2010-05-04 Decentralized load distribution to reduce power and/or cooling cost in an event-driven system

Publications (2)

Publication Number Publication Date
DE112010003338T5 true DE112010003338T5 (de) 2012-08-09
DE112010003338B4 DE112010003338B4 (de) 2017-08-10

Family

ID=43606330

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003338.2T Active DE112010003338B4 (de) 2009-08-18 2010-05-04 Dezentrale Lastverteilung zum Verringern der Energie- und/oder Kühlkosten in einem ereignisgesteuerten System

Country Status (6)

Country Link
US (2) US8479215B2 (de)
JP (1) JP5723882B2 (de)
CN (1) CN102473161B (de)
DE (1) DE112010003338B4 (de)
GB (2) GB2526964B (de)
WO (1) WO2011022098A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014010071A1 (de) 2014-07-08 2016-01-14 Evohaus Gmbh Energiemanagementsystem zur anreizbasierten Verbrauchsoptimierung
EP3648430B1 (de) * 2018-11-05 2021-06-02 Wincor Nixdorf International GmbH Hardware-sicherheitsmodul

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2184681A1 (de) * 2008-10-31 2010-05-12 HSBC Holdings plc Leistungsregelung
US9552234B2 (en) 2011-01-31 2017-01-24 Nokia Technologies Oy Method and apparatus for energy optimization in multi-level distributed computations
US8856321B2 (en) * 2011-03-31 2014-10-07 International Business Machines Corporation System to improve operation of a data center with heterogeneous computing clouds
US9280386B1 (en) * 2011-07-14 2016-03-08 Google Inc. Identifying task instance outliers based on metric data in a large scale parallel processing system
TW201314433A (zh) * 2011-09-28 2013-04-01 Inventec Corp 伺服器系統及其電源管理方法
US9430286B2 (en) * 2011-12-12 2016-08-30 International Business Machines Corporation Authorizing distributed task processing in a distributed storage network
US9223630B2 (en) * 2011-12-22 2015-12-29 Alcatel Lucent Method and apparatus for energy efficient distributed and elastic load balancing
US20190012234A1 (en) * 2012-01-31 2019-01-10 International Business Machines Corporation Dynamically shifting tasks in distributed computing data storage
US10140177B2 (en) * 2012-01-31 2018-11-27 International Business Machines Corporation Transferring a partial task in a distributed computing system
US20130268940A1 (en) * 2012-04-04 2013-10-10 Daniel Juergen Gmach Automating workload virtualization
CN102724277B (zh) * 2012-05-04 2016-01-06 华为技术有限公司 虚拟机热迁移和部署的方法、服务器及集群系统
US10652318B2 (en) * 2012-08-13 2020-05-12 Verisign, Inc. Systems and methods for load balancing using predictive routing
GB2505412A (en) * 2012-08-28 2014-03-05 Ibm Collaborative modified consensus workload distribution between computing nodes
US9104607B2 (en) * 2012-10-31 2015-08-11 International Business Machines Corporation Simulation engine for use in disaster recovery virtualization
EP2939073A4 (de) * 2012-12-28 2016-08-31 Intel Corp Leistungsoptimierung für ein verteiltes berechnungssystem
US9784460B2 (en) * 2013-08-01 2017-10-10 Nautilus Data Technologies, Inc. Data center facility and process that utilizes a closed-looped heat management system
JP5939583B2 (ja) 2013-12-13 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 抽出装置、データ処理システム、抽出方法および抽出プログラム
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US9684545B2 (en) * 2014-03-26 2017-06-20 Unisys Corporation Distributed and continuous computing in a fabric environment
US10445134B2 (en) * 2014-06-03 2019-10-15 Amazon Technologies, Inc. Identifying candidate workloads for migration
US10896432B1 (en) * 2014-09-22 2021-01-19 Amazon Technologies, Inc. Bandwidth cost assignment for multi-tenant networks
JP2016081119A (ja) * 2014-10-10 2016-05-16 富士通株式会社 情報処理システム、情報処理システムの制御方法および制御装置の制御プログラム
CN104539551B (zh) * 2014-12-22 2017-11-17 清华大学 路由交换平台虚拟服务迁移方法
US9626227B2 (en) * 2015-03-27 2017-04-18 Intel Corporation Technologies for offloading and on-loading data for processor/coprocessor arrangements
US9848041B2 (en) * 2015-05-01 2017-12-19 Amazon Technologies, Inc. Automatic scaling of resource instance groups within compute clusters
US9967160B2 (en) * 2015-05-21 2018-05-08 International Business Machines Corporation Rerouting data of a streaming application
US10009825B1 (en) * 2016-01-20 2018-06-26 Sprint Spectrum L.P. Donor selection for relay access nodes
JP6181216B2 (ja) 2016-01-22 2017-08-16 株式会社東芝 通信制御装置、通信制御方法、プログラムおよび通信システム
EP3208712B1 (de) * 2016-02-22 2020-02-19 Karlsruher Institut für Technologie Computersystem und verfahren zur parallelprogrammcodeoptimierung und -einsatz
JP6743568B2 (ja) * 2016-08-09 2020-08-19 富士通株式会社 制御装置、情報処理システム、プログラム及び情報処理方法
KR101856454B1 (ko) * 2017-03-06 2018-05-10 주식회사 티맥스데이터 분산처리를 위한 컴퓨팅 장치
CN107018201B (zh) * 2017-04-20 2019-12-31 北京中科睿芯科技有限公司 数据流架构中利用关键路径信息进行指令动态迁移的方法
KR102091481B1 (ko) * 2017-11-29 2020-03-20 국민대학교산학협력단 동적 신경망 학습 방법 및 이를 수행하는 동적 신경망 학습 장치
CN109918195B (zh) * 2019-01-18 2023-06-20 华南理工大学 基于热感知动态任务迁移的众核系统处理器资源调度方法
US11138213B2 (en) 2019-04-10 2021-10-05 Snowflake Inc. Internal resource provisioning in database systems
US10944644B2 (en) * 2019-04-30 2021-03-09 Intel Corporation Technologies for thermal and power awareness and management in a multi-edge cloud networking environment
US10674118B1 (en) * 2019-05-01 2020-06-02 CYBERTOKA Ltd. Method and system for discreetly accessing security camera systems
DE102019214255A1 (de) * 2019-09-19 2021-03-25 Robert Bosch Gmbh Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken
CN112882827A (zh) * 2019-11-29 2021-06-01 伊姆西Ip控股有限责任公司 用于负载均衡的方法、电子设备和计算机程序产品
WO2021139726A1 (zh) * 2020-01-07 2021-07-15 中科寒武纪科技股份有限公司 任务迁移的方法、装置、计算机设备及可读存储介质
US11842213B2 (en) * 2021-04-16 2023-12-12 Dell Products L.P. Cooling-power-utilization-based workload allocation system
CN116029539B (zh) * 2023-03-30 2023-06-09 深圳市奥思网络科技有限公司 一种基于工作流的项目流转方法及相关组件

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61114363A (ja) * 1984-11-07 1986-06-02 Hitachi Ltd 計算機システム間ジヨブ転送方式
US5136708A (en) * 1987-06-09 1992-08-04 Oce-Nederland B.V. Distributed office automation system with specific task assignment among workstations
JPH01194054A (ja) * 1988-01-29 1989-08-04 Hitachi Ltd 分散処理システムのプログラムローデイング方式
US5031089A (en) * 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
JP2875284B2 (ja) * 1989-06-23 1999-03-31 株式会社日立製作所 計算機システム及びその課金処理方法
JPH0782440B2 (ja) * 1990-07-05 1995-09-06 工業技術院長 論理合成の演算割り当て方法
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
JPH0675786A (ja) * 1992-08-26 1994-03-18 Hitachi Ltd タスクスケジュリング方法
US5418953A (en) * 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
US5630129A (en) 1993-12-01 1997-05-13 Sandia Corporation Dynamic load balancing of applications
JPH0816531A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd プロセススケジュール方式
JPH0830471A (ja) * 1994-07-14 1996-02-02 Hitachi Ltd ジョブの実行プロセサ変更方式
US6078945A (en) * 1995-06-21 2000-06-20 Tao Group Limited Operating system for use with computer networks incorporating two or more data processors linked together for parallel processing and incorporating improved dynamic load-sharing techniques
JPH09231180A (ja) * 1995-12-22 1997-09-05 Hitachi Ltd サーバ分割方法
US6393455B1 (en) * 1997-03-28 2002-05-21 International Business Machines Corp. Workload management method to enhance shared resource access in a multisystem environment
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6584102B1 (en) 1998-12-21 2003-06-24 At&T Corp. Communication network apparatus and method
US7117273B1 (en) 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US6658449B1 (en) * 2000-02-17 2003-12-02 International Business Machines Corporation Apparatus and method for periodic load balancing in a multiple run queue system
EP1182548A3 (de) 2000-08-21 2003-10-15 Texas Instruments France Dynamische Hardware-Steuerung für Energieverwaltungsysteme mit Aufgabenattributen
EP1182552A3 (de) 2000-08-21 2003-10-01 Texas Instruments France Dynamische Hardware-Konfiguration für Energieverwaltungsysteme mit Aufgabenattributen
AU2001290546A1 (en) * 2000-08-22 2002-03-04 Akamai Technologies, Inc. Dynamic content assembly on edge-of-network servers in a content delivery network
US20070245165A1 (en) * 2000-09-27 2007-10-18 Amphus, Inc. System and method for activity or event based dynamic energy conserving server reconfiguration
WO2002065230A2 (en) 2001-02-14 2002-08-22 Collacomp, Ltd. Non-hierarchical collaborative computing platform
US7266085B2 (en) 2001-03-21 2007-09-04 Stine John A Access and routing protocol for ad hoc network using synchronous collision resolution and node state dissemination
US7093004B2 (en) 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US7313503B2 (en) 2002-02-19 2007-12-25 Hewlett-Packard Development Company, L.P. Designing layout for internet datacenter cooling
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
JP2004126968A (ja) * 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
US7590984B2 (en) * 2003-05-29 2009-09-15 International Business Machines Corporation System and method for balancing a computing load among computing resources in a distributed computing problem
US7373268B1 (en) 2003-07-30 2008-05-13 Hewlett-Packard Development Company, L.P. Method and system for dynamically controlling cooling resources in a data center
US7441033B2 (en) * 2003-08-14 2008-10-21 Oracle International Corporation On demand node and server instance allocation and de-allocation
US8156217B2 (en) 2003-11-24 2012-04-10 Hewlett-Packard Development Company, L.P. Dynamically balancing load for servers
US7451210B2 (en) * 2003-11-24 2008-11-11 International Business Machines Corporation Hybrid method for event prediction and system control
TW200532466A (en) * 2004-02-03 2005-10-01 Sony Corp Information processing device, information processing method, information processing system and information processing program of accessible media
US7360102B2 (en) 2004-03-29 2008-04-15 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processor manipulation
JP4465598B2 (ja) 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
WO2006011189A1 (ja) * 2004-07-26 2006-02-02 Mitsubishi Denki Kabushiki Kaisha 並列計算機
US7925727B2 (en) * 2004-07-29 2011-04-12 Nortel Networks Limited Method and apparatus for efficient communication of management data in a telecommunications network
US7400585B2 (en) * 2004-09-23 2008-07-15 International Business Machines Corporation Optimal interconnect utilization in a data processing network
US20060265712A1 (en) * 2005-05-18 2006-11-23 Docomo Communications Laboratories Usa, Inc. Methods for supporting intra-document parallelism in XSLT processing on devices with multiple processors
US7487206B2 (en) 2005-07-15 2009-02-03 International Business Machines Corporation Method for providing load diffusion in data stream correlations
US7327571B2 (en) 2005-09-06 2008-02-05 Hewlett-Packard Development Company, L.P. Thermal load balancing systems and methods
KR100715674B1 (ko) 2005-09-15 2007-05-09 한국전자통신연구원 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
JP2007226567A (ja) 2006-02-23 2007-09-06 Fujitsu Ltd 回路シミュレータおよび回路シミュレーションプログラム
JP4523921B2 (ja) * 2006-02-24 2010-08-11 三菱電機株式会社 計算機リソース動的制御装置
US8032889B2 (en) * 2006-04-05 2011-10-04 Maxwell Technologies, Inc. Methods and apparatus for managing and controlling power consumption and heat generation in computer systems
US20080005391A1 (en) 2006-06-05 2008-01-03 Bugra Gedik Method and apparatus for adaptive in-operator load shedding
US7941805B2 (en) 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
JP4308241B2 (ja) 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8214662B2 (en) 2007-04-09 2012-07-03 Panasonic Corporation Multiprocessor control unit, control method performed by the same, and integrated circuit
US7644254B2 (en) * 2007-04-18 2010-01-05 International Business Machines Corporation Routing data packets with hint bit for each six orthogonal directions in three dimensional torus computer system set to avoid nodes in problem list
US8370844B2 (en) * 2007-09-12 2013-02-05 International Business Machines Corporation Mechanism for process migration on a massively parallel computer
US7877490B1 (en) 2007-12-28 2011-01-25 Violin Memory, Inc. Method and apparatus for efficient TCP connection handoff
US20090192981A1 (en) * 2008-01-29 2009-07-30 Olga Papaemmanouil Query Deployment Plan For A Distributed Shared Stream Processing System
US7797588B2 (en) * 2008-02-01 2010-09-14 International Business Machines Corporation Mechanism to provide software guaranteed reliability for GSM operations
EP2266365A4 (de) 2008-04-04 2011-12-28 Powerwave Cognition Inc Verfahren und systeme für mobiles routingfähiges breitbandinternet
CN102047226B (zh) * 2008-04-14 2014-08-20 意大利电信股份公司 分布式服务框架

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014010071A1 (de) 2014-07-08 2016-01-14 Evohaus Gmbh Energiemanagementsystem zur anreizbasierten Verbrauchsoptimierung
WO2016005451A1 (de) 2014-07-08 2016-01-14 Evohaus Gmbh Energiemanagementverfahren und energiemanagementvorrichtung für eine wohnanlage mit einer oder mehreren wohneinheiten oder ein stadtquartier
EP3648430B1 (de) * 2018-11-05 2021-06-02 Wincor Nixdorf International GmbH Hardware-sicherheitsmodul

Also Published As

Publication number Publication date
GB2526964A (en) 2015-12-09
JP2013502642A (ja) 2013-01-24
US20110047554A1 (en) 2011-02-24
CN102473161B (zh) 2014-07-16
DE112010003338B4 (de) 2017-08-10
CN102473161A (zh) 2012-05-23
GB2526964B (en) 2016-02-03
GB201200477D0 (en) 2012-02-22
GB201514952D0 (en) 2015-10-07
GB2483610B (en) 2016-02-03
US20130254778A1 (en) 2013-09-26
JP5723882B2 (ja) 2015-05-27
US8479215B2 (en) 2013-07-02
WO2011022098A1 (en) 2011-02-24
GB2483610A (en) 2012-03-14
US9665407B2 (en) 2017-05-30

Similar Documents

Publication Publication Date Title
DE112010003338B4 (de) Dezentrale Lastverteilung zum Verringern der Energie- und/oder Kühlkosten in einem ereignisgesteuerten System
US8479216B2 (en) Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
DE102012221059B4 (de) Verfahren und System anpassbarer Netzwerkübertragungsoptimierung in großen parallelen Rechensystemen
Tian et al. Tuple routing strategies for distributed eddies
Tos et al. Dynamic replication strategies in data grid systems: a survey
Rajabzadeh et al. Energy-aware framework with Markov chain-based parallel simulated annealing algorithm for dynamic management of virtual machines in cloud data centers
CN109672751B (zh) 一种基于边缘计算的智慧人口统计方法
Guo et al. JET: Electricity cost-aware dynamic workload management in geographically distributed datacenters
Mazzucco et al. Balancing electricity bill and performance in server farms with setup costs
DE102012219705B4 (de) Datenpaketverarbeitung im netzwerk
Li et al. An efficient scheduling optimization strategy for improving consistency maintenance in edge cloud environment
Zhao et al. Load scheduling for distributed edge computing: A communication-computation tradeoff
CN102208986A (zh) 一种集群功耗分配与控制方法
DE112012003307T5 (de) System zum Energieeinsparen bei Unternehmensdatenzentren
Barlaskar et al. Energy-efficient virtual machine placement using enhanced firefly algorithm
Wu et al. Optimal deploying IoT services on the fog computing: A metaheuristic-based multi-objective approach
Tsai et al. A computing coordination based fuzzy group decision-making (CC-FGDM) for web service oriented architecture
Montazerolghaem Efficient Resource Allocation for Multimedia Streaming in Software-Defined Internet of Vehicles
Hummer et al. Dynamic migration of processing elements for optimized query execution in event-based systems
Sun et al. Performance-aware deployment of streaming applications in distributed stream computing systems
CN116389591A (zh) 一种基于跨域分布式处理系统及调度优化方法
Billard et al. Dynamic scope of control in decentralized job scheduling
Paganini et al. PDE models for population and residual work applied to peer-to-peer networks
JP2009033691A (ja) ネットワーク装置の消費電力低減制御装置及び制御方法
Beraldi et al. On the impact of stale information on distributed online load balancing protocols for edge computing

Legal Events

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