DE112012002545T5 - Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem - Google Patents

Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem Download PDF

Info

Publication number
DE112012002545T5
DE112012002545T5 DE112012002545.8T DE112012002545T DE112012002545T5 DE 112012002545 T5 DE112012002545 T5 DE 112012002545T5 DE 112012002545 T DE112012002545 T DE 112012002545T DE 112012002545 T5 DE112012002545 T5 DE 112012002545T5
Authority
DE
Germany
Prior art keywords
affinity
workload
performance
metric
domain
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
DE112012002545.8T
Other languages
English (en)
Other versions
DE112012002545B4 (de
Inventor
Gisle Mikal Nitter Dankel
Alexander Barraclough Brown
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 DE112012002545T5 publication Critical patent/DE112012002545T5/de
Application granted granted Critical
Publication of DE112012002545B4 publication Critical patent/DE112012002545B4/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • 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/5033Allocation 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 data affinity
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5012Processor sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

Eine automatisches Systemoptimierungsprogramm wird offenbart, das so eingerichtet ist, dass es die Verarbeitung von Arbeitslasten in einem Mehrprozessor-Computersystem optimiert.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem.
  • Hintergrund der Erfindung
  • Bei Mehrprozessor-Computersystemen hängen die Verarbeitungskosten in Zusammenhang mit dem Zugriff auf Daten im Speicher vom physischen Speicherort des Speichers in Bezug auf den darauf zugreifenden Prozessor ab. Mehrere Threads, die häufig auf mit anderen Threads gemeinsam genutzte Speicherbereiche zugreifen und diese ändern, können von einer physisch nahen Anordnung in Bezug aufeinander profitieren. Dies verringert die Menge an knotenübergreifendem Datenverkehr, der erforderlich ist, um Cachespeicherzeilen zu erhalten, die im Cachespeicher eines entfernten Prozessors vorhanden sind. Ein Platzieren von Arbeitslasten zur Steigerung einer solchen Cachespeicheraffinität steht jedoch mit dem allgemeinen Wunsch eines Lastausgleichs für alle verfügbaren Ressourcen des gesamten Systems in Konflikt. Darüber hinaus erhöht ein Platzieren der gesamten Last auf einen einzelnen Knoten und ein lokale Zuordnen des gesamten Speichers zwar die Cachespeicheraffinität, führt aufgrund der erhöhten Konkurrenzsituation für Ressourcen auf diesem Knoten jedoch im Allgemeinen zu keiner guten Leistung für alle Arbeitslasten.
  • Einige automatische Optimierungssysteme sind so eingerichtet, dass sie versuchen sollen, eine Vorhersage der besten Platzierung von Arbeitslasten auf der Grundlage von Arbeitslastcharakteristika wie Affinitätsmesswerte, Größe der Arbeitslast oder Ressourcen-Konkurrenzsituation bereitzustellen. Solche vorhersagenden Optimierungsfunktionen ermöglichen ein schnelles Platzieren von Arbeitslasten und entsprechend schnelle Leistungsgewinne. Arbeitslasten, die nicht profitieren können, sind nicht unmittelbar, sondern infolge von Veränderungen zugeordneter oder verknüpfter Arbeitslasten indirekt betroffen.
  • Die von vorhersagenden Optimierungsfunktionen durchgeführte Analyse ist jedoch komplex, da viele mögliche Platzierungen von Arbeitslasten auf unterschiedliche Domänentypen und komplexe Leistungscharakteristika vorliegen. Darüber hinaus ist es schwierig, die Ergebnisse von Arbeitslastplatzierungen vorherzusagen, wenn große Änderungen vorgenommen werden, und die Auswirkungen anderer Arbeitslasten zu identifizieren. Ein Testen von vorhersagenden Optimierungsfunktionen ist komplex, und ein Feststellen, dass das System robust ist, gestaltet sich schwierig. Um vorhersagende Optimierungsfunktionen angemessen zu testen und ein annehmbares Vertrauensniveau zu erhalten, sind somit umfassende Tests notwendig. Darüber hinaus kann es erforderlich sein, bei jeder Änderung der Heuristik eine große Anzahl an Tests durchzuführen. Vorhersagende Optimierungsfunktionen sind in ihren Optimierungen im Allgemeinen konservativ, um die Möglichkeit einer Leistungsverschlechterung zu vermeiden.
  • Andere automatische Optimierungssysteme versuchen, die Platzierung von Arbeitslasten durch Suchen oder Experimentieren zu optimieren. Solche Optimierungsfunktionen auf der Grundlage von Suchen sind in der Lage, bei ausreichend viel Zeit und stabilen Leistungsarbeitslasten eine beinahe optimale Arbeitslastplatzierung zu erzielen. Optimierungsfunktionen auf der Grundlage von Suchen sind relativ einfache Systeme. Optimierungsfunktionen auf der Grundlage von Suchen sind jedoch mit hohen Laufzeitkosten verbunden, da eine große Anzahl an Platzierungskombinationen möglich ist, die eine Analyse erfordern können und die sich exponentiell mit der Anzahl an Arbeitslasten erhöhen. Optimierungsfunktionen auf der Grundlage von Suchen können auch unterbrechend sein, da andere Arbeitslasten sowie die Arbeitslast, für die gerade ein Experimentiervorgang läuft, während des Experimentierens negativ beeinflusst werden können. Optimierungsfunktionen auf der Grundlage von Suchen hängen außerdem von genauen Leistungsmesswerten ab.
  • Kurzdarstellung der Erfindung
  • Ausführungsformen der Erfindung stellen ein Verfahren zum Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem bereit, wobei das Verfahren die Schritte aufweist:
    Definieren eines Satzes von Affinitätsdomänen für eine Vielzahl von Prozessorkernen, wobei jede Affinitätsdomäne einen Satz der Prozessorkerne aufweist;
    Definieren eines Affinitätsmesswerts, der so ausgelegt ist, dass er anzeigt, wenn eine bestimmte Arbeitslast in eine kleinere Affinitätsdomäne verschoben werden sollte, die weniger Prozessorkerne aufweist;
    Definieren eines Leistungsmesswerts, der so ausgelegt ist, dass er die Leistung einer bestimmten Arbeitslast anzeigt;
    Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert;
    wenn der Affinitätsmesswert angibt, dass eine bestimmte Arbeitslast in eine kleine Affinitätsdomäne verschoben werden sollte, Verschieben der Arbeitslast in eine kleinere Affinitätsdomäne; oder
    wenn der Leistungsmesswert eine Verringerung der Leistung angibt, Verschieben der Arbeitslast in eine größere Affinitätsdomäne.
  • Das Verfahren kann den weiteren Schritt aufweisen: wenn die Angaben aus dem Affinitätsmesswert und dem Leistungsmesswert in Konflikt stehen, Lösen des Konflikts in Bezug auf ein vorab festgelegtes Protokoll. Das vorab festgelegte Protokoll kann aufweisen, dass entsprechend der Angabe des Leistungsmesswerts die Arbeitslast in eine größere Affinitätsdomäne zu verschieben ist. Der Satz von Affinitätsdomänen kann eine Hierarchie von Affinitätsdomänen aufweisen, die gemäß der Anzahl der Prozessorkerne in einer bestimmten Affinitätsdomäne angeordnet sind. Das Verfahren kann den weiteren Schritt aufweisen: Anweisen eines Arbeitslastplatzierungsmittels gemäß den Angaben aus den Affinitäts- oder Leistungsmesswerten. Der Affinitätsmesswert und der Leistungsmesswert können einander ausschließende Beträge aufweisen. Der Affinitätsmesswert kann einen Messwert für die Verarbeitungszeit, die eine bestimmte Arbeitslast auf Daten wartend verbringt, als Teil der Gesamtverarbeitungszeit aufweisen. Der Leistungsmesswert kann einen Messwert für die pro Sekunde ausgeführten Speicherungsanweisungen für eine bestimmte Arbeitslast aufweisen. Ein Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert kann periodisch durchgeführt werden. Ein Verschieben einer bestimmten Arbeitslast zwischen Domänen kann begrenzt werden. Das Verfahren kann durch einen Betriebssystem-Hintergrundprogramm durchgeführt werden.
  • Eine weitere Ausführungsform stellt eine Vorrichtung zum Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem bereit, wobei die Vorrichtung funktionsfähig ist zum:
    Definieren eines Satzes von Affinitätsdomänen für eine Vielzahl von Prozessorkernen, wobei jede Affinitätsdomäne einen Satz der Prozessorkerne aufweist;
    Definieren eines Affinitätsmesswerts, der so ausgelegt ist, dass er anzeigt, wenn eine bestimmte Arbeitslast in eine kleinere Affinitätsdomäne verschoben werden sollte, die weniger Prozessorkerne aufweist;
    Definieren eines Leistungsmesswerts, der so ausgelegt ist, dass er die Leistung einer bestimmten Arbeitslast anzeigt;
    Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert;
    wenn der Affinitätsmesswert angibt, dass eine bestimmte Arbeitslast in eine kleine Affinitätsdomäne verschoben werden sollte, Verschieben der Arbeitslast in eine kleinere Affinitätsdomäne; oder
    wenn der Leistungsmesswert eine Verringerung der Leistung angibt, Verschieben der Arbeitslast in eine größere Affinitätsdomäne.
  • Eine weitere Ausführungsform stellt ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert und in einen internen Speicher eines Computers ladbar ist, das Softwarecode-Teile aufweist, die so gestaltet sind, dass sie ein Verfahren zum Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem durchführen, wenn das Programm auf einem Computer ausgeführt wird, wobei das Verfahren die Schritte aufweist:
    Definieren eines Satzes von Affinitätsdomänen für eine Vielzahl von Prozessorkernen, wobei jede Affinitätsdomäne einen Satz der Prozessorkerne aufweist;
    Definieren eines Affinitätsmesswerts, der so ausgelegt ist, dass er anzeigt, wenn eine bestimmte Arbeitslast in eine kleinere Affinitätsdomäne verschoben werden sollte, die weniger Prozessorkerne aufweist;
    Definieren eines Leistungsmesswerts, der so ausgelegt ist, dass er die Leistung einer bestimmten Arbeitslast anzeigt;
    Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert;
    wenn der Affinitätsmesswert angibt, dass eine bestimmte Arbeitslast in eine kleine Affinitätsdomäne verschoben werden sollte, Verschieben der Arbeitslast in eine kleinere Affinitätsdomäne; oder
    wenn der Leistungsmesswert eine Verringerung der Leistung angibt, Verschieben der Arbeitslast in eine größere Affinitätsdomäne.
  • Kurzbeschreibung der Zeichnungen
  • Es werden nun Ausführungsformen der Erfindung lediglich beispielhaft unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen:
  • 1 eine schematische Veranschaulichung eines Computers ist, der ein automatisches Systemoptimierungsprogramm (ASO, Automatic System Optimizing Program) aufweist;
  • 2 eine schematische Veranschaulichung der Komponenten des ASO im Computer von 1 ist;
  • 3a eine Tabelle ist, die eine Maßzahlendatenspezifizierung für das ASO von 2 zeigt;
  • 3b eine Tabelle ist, die Maßzahlendefinitionen für das ASO von 2 zeigt; die 4 bis 7 Ablaufpläne sind, die die vom ASO von 2 durchgeführte Verarbeitung zeigen.
  • Ausführliche Beschreibung von Ausführungsformen der Erfindung
  • Unter Bezugnahme auf 1 weist ein Computer 101 einen Prozessor für Mehrprozessorbetrieb 102 auf, wobei ein Betriebssystem 103 geladen ist, das so eingerichtet ist, dass es eine Verarbeitungsplattform für eine oder mehrere Anwendungsprogramme in Form von Arbeitslasten 104 bereitstellt. Der Prozessor 102 ist mit einer Leistungsüberwachungseinheit (PMU, Performance-Monitoring Unit) 105 ausgerüstet, die so gestaltet ist, dass sie einen vorab festgelegten Satz von Parametern für den Prozessor 102 überwacht. Das Betriebssystem (OS, Operating System) 103 weist darüber hinaus einen Kernel 106, der die Kernfunktionalität des OS 103 bereitstellt, und ein aktives Systemoptimierungsprogramm (ASO, Active System Optimizer) 107 auf. Bei der vorliegenden Ausführungsform ist das ASO 107 ein Benutzerbereich-Hintergrundprogramm und so eingerichtet, dass es ausgewählte Parameter aus der PMU 105 und Kernelstatistiken 108 aus dem Kernel 106 eingibt. Das ASO 107 ist so eingerichtet, dass es die Leistung jeder überwachten Arbeitslast 104 auf der Grundlage der eingegebenen Parameter aus der PMU 105 und der eingegebenen Kernelstatistiken 108 optimiert, wie weiter unten ausführlicher beschrieben wird. Die eingegebenen Parameter aus der PMU 105 und die eingegebenen Kernelstatistiken 108 für das ASO 107 werden anfänglich auf Standardwerte festgelegt, die von einem Systemadministrator beim Einrichten des OS 103 geändert werden können.
  • Unter Bezugnahme auf 2 weist das ASO 107 bei der vorliegenden Ausführungsform ein Maßzahlenkollektormodul 201, einen ASO-Daten- und Maßzahlenspeicher 202, ein Vorhersagefunktionsmodul 203, ein Prüfprogrammmodul 204, ein Zuteilungsmodul 205, ein Arbeitslastplatzierungsverwalter-Modul 206 und einen Satz von Affinitätsdomänen 207 auf. Die Affinitätsdomänen 207 sind vorab festgelegte Sätze oder Gruppierungen von Prozessorkernen, die für den Prozessor 102 definiert sind. Eine Affinitätsdomäne kann eine beliebige Anzahl von Kernen aufweisen, von einem einzelnen Prozessorkern bis zu allen verfügbaren Prozessorkernen. Bei der vorliegenden Ausführungsform weist jede der Affinitätsdomänen 207 eine Hierarchie auf, die auf der jeweiligen Anzahl von Prozessorkernen beruht. Bei der vorliegenden Ausführungsform weist der Prozessor 102 zwei Chips auf, die jeweils acht Kerne bereitstellen, woraus sich insgesamt 16 Prozessorkerne ergeben. Die Prozessoren 102 sind wie folgt in fünf Affinitätsdomänen aufgeteilt:
    16 Domänen der 5. Ebene, die jeweils einen entsprechenden einzelnen Kern aufweisen;
    8 Domänen der 4. Ebene, die jeweils zwei Kerne aufweisen;
    4 Domänen der 3. Ebene, die jeweils vier Kerne aufweisen;
    2 Domänen der Socket-Ebene, die jeweils acht Kerne aufweisen; und
    1 Domäne der Book-Ebene, die 16 Kerne aufweist.
  • Das Maßzahlenkollektormodul 201 ist so eingerichtet, dass es einen vorab festgelegten Datensatz in Form von Leistungsdaten aus der PMU 105 und Kernstatistiken 108 aus dem Kernel 106 sammelt. Die gesammelten Daten werden im ASO-Daten- und Kennzahlenspeicher 202 gespeichert. Die Daten werden für jede Arbeitslast 104 gesammelt, die überwacht wird. Bei der vorliegenden Ausführungsform werden unter Bezugnahme auf 3a die folgenden Kernelstatistiken 108 gesammelt:
    Taktzyklen, die pro Anweisung auf Daten wartend ablaufen (CCWD, Clock Cycles Spent Waiting For Data Per Instruction); und
    Gesamttaktzyklen pro Anweisung (CPI, Total Clock Cycles Per Instruction).
  • Die folgenden Leistungsdaten werden aus der PMU 105 gesammelt:
    Pro Sekunde ausgeführte Speicheranweisungen (ESI [Executed Store Instructions]/s).
  • Jeder Datensatz wird im ASO-Daten-Datensatz 301 in Bezug auf die relevante Arbeitslast 104 gespeichert, die durch eine eindeutige Arbeitslastkennung (WLID, Workload Identifier) gekennzeichnet wird.
  • Unter Bezugnahme auf 3b weist das ASO darüber hinaus einen Satz von Maßzahlen 302 auf. Die ASO-Maßzahlen 302 weisen einen Affinitätsmesswert (AM, Affinity Measure) 303 in Form des Verhältnisse der Prozessortaktzyklen, die zum vollständigen Durchführen von Anweisungen auf Daten wartend ablaufen, zur Gesamtanzahl der Taktzyklen auf. Dem AM 303 ist ein Affinitätsmesswert-Grenzwert zugeordnet, der sich bei der vorliegenden Ausführungsform auf 30% beläuft. Die ASO-Maßzahlen weisen darüber hinaus einen Leistungsmesswert (PM, Performance Value) 304 in Form der Geschwindigkeit der ausführten Speicheranweisungen (ESI/s) auf. Dem PM 304 ist ein Leistungsgrenzwert 305 zugeordnet, der bei der vorliegenden Ausführungsform die Spitzen-ESI/s aufweist, die von dem ASO 107 für eine bestimmte Arbeitslast berechnet wird.
  • Das Vorhersagefunktionsmodul 203 ist so eingerichtet, dass es den Affinitätsmesswert (AM) 303 für jede relevante Arbeitslast periodisch überwacht und den AM 303 mit dem AM-Grenzwert von 30% vergleicht. Bei der vorliegenden Ausführungsform beträgt die Messperiode 5 Sekunden. Für den Fall, dass der AM 303 während einer bestimmten Messperiode unter den AM-Grenzwert fällt, ist die Vorhersagefunktion 203 so eingerichtet, dass sie keine weitere Aktion durchführt. Für den Fall, dass der AM 303 während einer bestimmten Messperiode dem AM-Grenzwert entspricht oder diesen überschreitet, ist die Vorhersagefunktion 203 so eingerichtet, dass sie eine Anweisung an das Zuteilungsmodul 205 ausgibt, die empfiehlt, dass die relevante Arbeitslast nach Möglichkeit einer kleineren der Affinitätsdomänen 207 zugewiesen wird.
  • Das Prüfprogrammmodul 204 ist so eingerichtet, dass es parallel mit dem Vorhersagefunktionsmodul 203 arbeitet, um den Leistungsmesswert (PM) 304 für jede relevante Arbeitslast periodisch zu überwachen und den PM 304 mit dem PM-Grenzwert 305 zu vergleichen. Solange der PM 304 während einer bestimmten Messperiode dem PM-Grenzwert 305 entspricht oder diesen überschreitet, ist das Prüfprogramm 204 so eingerichtet, dass es keine weitere Aktion durchführt. Für den Fall, dass der PM 304 während einer bestimmten Messperiode jedoch geringer als der PM-Grenzwert 305 ist, ist das Prüfprogramm 204 so eingerichtet, dass es eine Anweisung an das Zuteilungsmodul 205 ausgibt, die empfiehlt, dass die relevante Arbeitslast einer größeren der Affinitätsdomänen 207 zugewiesen wird. Für eine bestimmte Arbeitslast ist das Prüfprogramm 204 eingerichtet, dass es den PM-Grenzwert als Spitzen-ESI/s berechnet, und verwendet diesen zum Messen der relevanten Arbeitsast 104.
  • Das Zuteilungsmodul 205 ist so eingerichtet, dass es die von der Vorhersagefunktion 203 und dem Prüfprogramm 204 in jeder Datenperiode erhaltenen Anweisungen nach dem Zufallsprinzip zuteilt. Wenn eine Anweisung, eine bestimmte Arbeitslast einer größeren oder kleineren Affinitätsdomäne 207 zuzuweisen, von nur einem, von der Vorhersagefunktion 203 oder vom Prüfprogramms 204, erhalten wird, liegt kein Konflikt vor, und die Anweisung wird an das Arbeitslastplatzierungsverwalter-Modul 206 weitergeleitet. Für den Fall, dass eine konfliktbringende Anweisung, eine bestimmte Arbeitslast einer größeren und kleineren Affinitätsdomäne 207 zuzuweisen, von beiden, von der Vorhersagefunktion 203 und vom Prüfprogramm 204, erhalten wird, ist das Zuteilungsmodul 205 so eingerichtet, dass es eine geeignete Anweisung zur Weiterleitung an das Arbeitslastplatzierungsverwalter-Modul 206 auswählt. Bei der vorliegenden Ausführungsform ist das Zuteilungsmodul 205 so eingerichtet, dass es als Reaktion auf einen solchen Konflikt die Anweisung aus dem Prüfprogramm 204 auswählt, um eine bestimmte Arbeitslast einer größeren Affinitätsdomäne 207 zur Weiterleitung an das Arbeitslastplatzierungsverwalter-Modul 206 zuzuweisen.
  • Bei der vorliegenden Ausführungsform ist das Arbeitslastplatzierungsverwalter-Modul 206 so eingerichtet, dass es die Messperiode verwaltet und das Vorhersagefunktionsmodul 203 und das Prüfprogrammmodul 204 anweist, deren jeweilige Maßzahlmessung am Ende jeder Messperiode durchzuführen. Als Reaktion auf die Empfehlung vom Vorhersagefunktionsmodul 203 oder dem Prüfprogrammmodul 204, die über das Zuteilungsmodul 205 erhalten wurde, ist das Arbeitslastplatzierungsverwalter-Modul 206 darüber hinaus so eingerichtet, dass es ermittelt, ob die Empfehlung umgesetzt werden kann, und weist den Kernel 106 entsprechend an, wenn dies der Fall ist. In einigen Fällen ist das Arbeitslastplatzierungsverwalter-Modul 206 womöglich nicht in der Lage, eine Empfehlung zum Erhöhen oder Verringern der Affinitätsdomäne für eine bestimmte Arbeitslast umzusetzen. Das Arbeitslastplatzierungsverwalter-Modul 206 ist darüber hinaus so eingerichtet, dass es einen Begrenzungsfaktor für jede Arbeitslast bereitstellt, die überwacht wird. Der Begrenzungsfaktor wird bereitgestellt, um die Häufigkeit, in der eine bestimmte Arbeitslast Affinitätsdomänen ändern kann, zu mäßigen. Im Allgemeinen ist der Begrenzungsfaktor so eingerichtet, dass er vermeidet, dass eine bestimmte Arbeitslast in eine bestimmte Affinitätsdomäne zurückkehrt, aus der sie erst kürzlich verschoben wurde.
  • Bei der vorliegenden Ausführungsform wird der Begrenzungsfaktor, wenn der Arbeitslastplatzierungsverwalter 206 eine Arbeitslast in einer größeren Affinitätsdomäne platziert, für die bestimmte Arbeitslast auf einen vorab festgelegten Wert festgelegt. Bei der vorliegenden Ausführungsform ist der vorab festgelegte Wert 20. In jeder Messperiode wird der Begrenzungsfaktor für jede Arbeitslast um 1 verringert, wenn er über 0 liegt. Solange der Begrenzungsfaktor über 0 liegt, darf der Arbeitslastplatzierungsverwalter 206 eine Arbeitslast nicht in einer kleineren Domäne platzieren, darf sie jedoch unabhängig vom Wert des Begrenzungsfaktors in einer größeren platzieren.
  • Das ASO 107 ist somit so eingerichtet, dass es die Leistung ausgewählter Arbeitslasten 104 in Bezug auf einen vorab festgelegten Satz von Maßzahlen 302 in Form des Affinitätsmesswerts (AM) und des Leistungsmesswerts (PM) in Hinblick auf die jeweiligen vorab festgelegten Grenzwerte zu überwachen. Wenn der Affinitätsmesswert den Affinitätsmesswert-Grenzwert für eine bestimmte Arbeitslast überschreitet, weist das ASO 107 den Kernel 106 an, die Größe der Affinitätsdomäne, in der die Arbeitslast ausgeführt wird, zu verringern. Wenn der Leistungsmesswert den Leistungsmesswert-Grenzwert für eine bestimmte Arbeitslast überschreitet, weist das ASO 107 den Kernel 106 an, die Größe der Affinitätsdomäne, in der die Arbeitslast ausgeführt wird, zu erhöhen.
  • Die vom Maßzahlenkollektormodul 201 durchgeführte Verarbeitung wird nun unter Bezugnahme auf den Ablaufplan von 4 näher beschrieben. Die Verarbeitung wird in Schritt 401 in Reaktion auf das Starten des ASO 107 eingeleitet, und die Verarbeitung geht zu Schritt 402 über. In Schritt 402 werden die zu überwachenden Arbeitslasten 104 aus den ASO-Daten 301 identifiziert, und die Verarbeitung geht zu Schritt 403 über. In Schritt 403 werden die Datenquellen, auf denen Daten zu sammeln ist, aus den ASO-Daten 301 identifiziert, und die Verarbeitung geht zu Schritt 404 über. In Schritt 404 werden CCWD, CCPI und ESI/s für jede relevante Arbeitslast in die ASO-Daten 301 protokolliert, und dieser Protokollierungsprozess wird für die Dauer der Verarbeitung des ASO 107 fortgesetzt.
  • Die vom Vorhersagefunktionsmodul 203 durchgeführte Verarbeitung wird nun unter Bezugnahme auf den Ablaufplan von 5 näher beschrieben. Die Verarbeitung wird in Schritt 501 als Reaktion auf den Start des ASO 107 eingeleitet, und die Verarbeitung geht zu Schritt 502 über. In Schritt 502 wird der Affinitätsmesswert (AM) für die zu überwachenden Arbeitslasten aus den ASO-Kennzahlen 302 identifiziert, und die Verarbeitung geht zu Schritt 503 über. In Schritt 503 wird der AM für jede zu überwachende Arbeitslast 104 aus den gesammelten ASO-Daten 301 berechnet, und die Verarbeitung geht zu Schritt 504 über. In Schritt 504 wird der berechnete AM mit dem AM-Grenzwert verglichen, und die Verarbeitung geht zu Schritt 505 über. In Schritt 505 geht die Verarbeitung zu Schritt 506 weiter, wenn der aktuelle berechnete AM-Wert den AM-Grenzwert überschreitet. In Schritt 506 wird eine Empfehlung, die Verarbeitung der relevanten Arbeitslast einer kleineren Affinitätsdomäne zuzuweisen, an das Zuteilungsmodul 205 übertragen, und die Verarbeitung geht zu Schritt 507 über. In Schritt 507 wartet die Verarbeitung auf ein Signal aus dem Arbeitslastplatzierungsverwalter-Modul 206, das den nächsten Datenzyklus anzeigt. Wenn ein solches Signal erhalten wird, kehrt die Verarbeitung zu Schritt 503 zurück und fährt wie oben beschrieben fort. Wenn der aktuelle berechnete AM-Wert den AM-Grenzwert in Schritt 505 nicht überschreitet, wird keine Antwort an das Zuteilungsmodul 205 übertragen, und die Verarbeitung geht zu Schritt 507 über und setzt wie oben beschrieben fort.
  • Die vom Prüfprogrammmodul 204 durchgeführte Verarbeitung wird nun unter Bezugnahme auf den Ablaufplan von 6 näher beschrieben. Die Verarbeitung wird in Schritt 601 als Reaktion auf den Start des ASO 107 eingeleitet, und die Verarbeitung geht zu Schritt 602 über. In Schritt 602 wird der Leistungsmesswert (PM) für die zu überwachenden Arbeitslasten aus den ASO-Maßzahlen 302 identifiziert, und die Verarbeitung geht zu Schritt 603 über. In Schritt 603 wird der PM für jede zu überwachende Arbeitslast 104 aus den gesammelten ASO-Daten 301 berechnet, und die Verarbeitung geht zu Schritt 604 über. In Schritt 604 wird der berechnete PM mit dem PM-Grenzwert verglichen, und die Verarbeitung geht zu Schritt 605 über. In Schritt 605 geht die Verarbeitung zu Schritt 606 weiter, wenn der aktuelle berechnete PM-Wert dem PM-Grenzwert nicht entspricht oder diesen überschreitet. In Schritt 606 wird eine Empfehlung, die Verarbeitung der relevanten Arbeitslast einer größeren Affinitätsdomäne zuzuweisen, an das Zuteilungsmodul 205 übertragen, und die Verarbeitung geht zu Schritt 607 über. In Schritt 607 wartet die Verarbeitung auf ein Signal aus dem Arbeitslastplatzierungsverwalter-Modul 206, das den nächsten Datenzyklus anzeigt. Wenn ein solches Signal erhalten wird, geht die Verarbeitung zu Schritt 608 über, um den PM-Grenzwert zu aktualisieren, bevor sie zu Schritt 603 zurückkehrt, um wie oben beschrieben fortzufahren. Wenn der aktuelle berechnete PM-Wert dem PM-Grenzwert in Schritt 605 entspricht oder diesen überschreitet, wird keine Antwort an das Zuteilungsmodul 205 übertragen, und die Verarbeitung geht zu Schritt 707 über und fährt wie oben beschrieben fort.
  • Die durch die Kombination der Zuteilungsmodule 205 und des Arbeitslastplatzierungsverwalter-Moduls 206 durchgeführte Verarbeitung wird nun unter Bezugnahme auf den Ablaufplan von 7 weiter beschrieben, wobei die Schritte 706 und 711 die Funktionen des Zuteilungsmoduls 205 aufweisen. Die Verarbeitung wird in Schritt 701 beim Start des ASO 107 eingeleitet, und die Verarbeitung geht zu Schritt 702 über. In Schritt 702 werden die zu überwachenden Arbeitslasten 104 identifiziert, und die darauf folgende Verarbeitung wird für jede überwachte Arbeitslast durchgeführt. Die Verarbeitung geht danach zu Schritt 703 über und wartet, bis die vorab festgelegte Datenzyklusperiode verstrichen ist, und geht dann zu Schritt 704 über. In Schritt 704 werden die Vorhersagefunktions- und Prüfprogrammmodule 203, 204 in Bezug auf den Datenzyklus signalisiert, und die Verarbeitung geht zu Schritt 705 über. In Schritt 705 geht die Verarbeitung zu Schritt 706 über, wenn Ergebnisse von den Vorhersagefunktions- und Prüfprogrammmodulen 203, 204 erhalten werden. In Schritt 706 geht die Verarbeitung zu Schritt 707 weiter, wenn zwischen den Ergebnissen kein Konflikt besteht. In Schritt 707 wird der Begrenzungsfaktor für die relevante Arbeitslast geprüft, um zu ermitteln, ob eine Veränderung der Affinitätsdomäne zulässig ist, und die Verarbeitung geht zu Schritt 708 über, wenn dies der Fall ist. In Schritt 708 wird die relevante Anweisung durch Ausgeben der geeigneten Anweisung an den Kernel 106 umgesetzt, und die Verarbeitung geht zu Schritt 709 über. In Schritt 709 wird der Begrenzungsfaktor für die relevante Arbeitslast aktualisiert, so dass dieser die Änderung der Affinitätsdomäne widerspiegelt, und die Verarbeitung kehrt zu Schritt 703 zurück und fährt wie oben beschrieben fort. Wenn in Schritt 705 keine Antworten von den Vorhersagefunktions- und Prüfprogrammmodulen 203, 204 erhalten werden, geht die Verarbeitung zu Schritt 710 über und vermindert den Begrenzungsfaktor für die relevante Arbeitslast, bevor sie zu Schritt 703 zurückkehrt und wie oben beschrieben fortfährt. Wenn in Schritt 706 in Konflikt stehende Ergebnisse erhalten werden, geht die Verarbeitung zu Schritt 711 über. In Schritt 711 wird das Ergebnis aus dem Prüfprogrammmodul 203 ausgewählt, und die Verarbeitung geht zu Schritt 707 über und fährt wie oben beschrieben fort. Wenn eine bestimmte Arbeitslast in Schritt 707 infolge ihres aktuellen Begrenzungsfaktors nicht verschoben werden darf, geht die Verarbeitung zu Schritt 710 über, wo der Begrenzungsfaktor vermindert wird, bevor sie zu Schritt 703 zurückkehrt, um wie oben beschrieben fortzufahren.
  • Bei einer weiteren Ausführungsform ist das Zuteilungsmodul so eingerichtet, dass es bei der Lösung eines Konflikts zwischen den Vorhersagefunktions- und Prüfprogrammmodulen andere Eingaben berücksichtigt. Anders ausgedrückt, die vom Zuteilungsmodul bereitgestellte Lösung kann auf einer Vielzahl von Faktoren beruhen. Bei einer weiteren Ausführungsform können die Funktionen des Zuteilungsmoduls und des Arbeitslastplatzierungsverwalter-Moduls durch separate Module bereitgestellt werden.
  • Bei einer weiteren Ausführungsform kann das ASO, wenn es merkt, dass es aufgrund einer nicht geeigneten Umgebung nicht in der Lage ist, die Leistung zu optimieren, so eingerichtet sein, dass es in einen Schlafmodus (hibernation mode) übergeht und erst dann aufwachen, wenn die Umgebung anzeigt, dass das ASO eine Leistungsverbesserung bereitstellen kann.
  • Bei einer weiteren Ausführungsform wird eine Mittelung des AM oder des PM über eine vorab festgelegte Anzahl von Messperioden durchgeführt, um die Empfindlichkeit des Systems in Bezug auf kleine Leistungsschwankungen zu verringern. Wenn der gemittelte AM dem AM-Grenzwert für die vorab festgelegte Anzahl von aufeinander folgenden Perioden entspricht oder diesen überschreitet, empfiehlt die Vorhersagefunktion eine kleinere Affinitätsdomäne. Wenn der gemittelte PM unter dem PM-Grenzwert für die vorab festgelegte Anzahl von aufeinander folgenden Perioden liegt, empfiehlt das Prüfprogramm im Gegenzug eine größere Affinitätsdomäne.
  • Bei einer weiteren Ausführungsform wird der Begrenzungsfaktor mit einem Multiplikationsfaktor erweitert. Wenn der Arbeitslastplatzierungsverwalter eine Arbeitslast in einer größeren Domäne platziert, wird der Begrenzungsfaktor auf X + alter Begrenzungsfaktor·Multiplikator festgelegt, und der Multiplikator wird danach um 1 erhöht (z. B. X = 20, anfänglicher Multiplikator = 0). Solange der Begrenzungsfaktor über 0 liegt, darf der Arbeitslastplatzierungsverwalter eine Arbeitslast nicht in einer kleineren Domäne platzieren, darf sie jedoch unabhängig vom Wert des Begrenzungsfaktors in einer größeren platzieren. In jeder Messperiode wird der Begrenzungsfaktor um 1 verringert, wenn er über 0 liegt. Der Multiplikator wird wieder auf 0 zurückgesetzt, wenn der Begrenzungsfaktor 0 erreicht. Dadurch wird der Begrenzungsfaktor für Arbeitslasten, die das ASO häufig zu verschieben versucht, erhöht, wobei dennoch Arbeitslasten, die allmählicher variieren, verschoben werden können.
  • Bei einer weiteren Ausführungsform wird der Begrenzungsfaktor auf einen kleineren Wert eingestellt, wenn in eine kleinere Domäne verschoben wird und kein Multiplikator angewandt wird. Diese Anordnung verringert die Geschwindigkeit des Verschiebens hin zu kleineren Domänen. Beispielsweise können fünf Messperioden zwischen jeder Verschiebung aus einer Book-Affinitätsdomäne in eine Einzelkern-Affinitätsdomäne erforderlich sein.
  • Bei einer weiteren Ausführungsform ist die Häufigkeit des Wechsels zwischen Affinitätsdomänen dadurch beschränkt, dass die Aktivierung der Vorhersagefunktion und des Prüfprogramms verzögert und auch die Betriebsperiode für die Vorhersagefunktion und das Prüfprogramm eingeschränkt wird.
  • Wie der Fachmann verstehen wird, sind einige Empfehlungen aus der Vorhersagefunktion und dem Prüfprogramm für den Arbeitslastplatzierungsverwalter womöglich nicht umsetzbar. Zwei Affinitätsdomänen weisen beispielsweise eine Einzelkern-Domäne und eine Doppelkern-Domäne auf. Es werden zwei Arbeitslasten A und B ausgeführt. Die Arbeitslast A wurde bereits in die Doppelkern-Domäne komprimiert, und die Arbeitslast B wird aktuell auf alle drei Kernen ausgeführt. Die Vorhersagefunktion kann das Platzieren der Arbeitslast B in einer kleineren Domäne empfehlen, aber der Arbeitslastplatzierungsverwalter kann feststellen, dass das Platzieren beider Arbeitslasten in der Doppelkern-Domäne nicht annehmbar ist und dass beide Arbeitslasten zu groß sind, um auf nur einen Kern platziert zu werden. Der Arbeitslastplatzierungsverwalter kann aus diesem Grund so eingerichtet sein, dass er die Arbeitslast A auf zwei Kernen komprimiert belässt und die Arbeitslast B auf allen drei Kernen ausführt.
  • Bei einer weiteren Ausführungsform ist die Vorhersagefunktion so eingerichtet, dass sie bei der Ermittlung, ob die Größe der Affinitätsdomäne für eine bestimmte Arbeitslast zu verringern ist, weitere Maßzahlen zu berücksichtigt. Solche weiteren Maßzahlen können so ausgelegt sein, dass sie die Anzahl der Umkehrvorgänge von Affinitätsdomänenänderungen durch das Prüfprogramm verringern. Beispielsweise kann eine CPI-Stack-Aufgliederung verwendet werden, um die potenziellen Vorteile gegenüber den potenziellen Nachteilen aus einer Affinitätsdomänenänderung abzuwägen.
  • Bei einer weiteren Ausführungsform ist die Vorhersagefunktion mit Daten versehen, die nichteinheitliche Elemente der Prozessortopologie identifizieren. Beispielsweise können sechs Kerne auf einem Socket und zwei Kerne auf einem weiteren Socket bereitgestellt sein. Die Vorhersagefunktion kann über die Topologie informiert werden und die Größe der untergeordneten Elemente der aktuellen Domäne berücksichtigen. Die Vorhersagefunktion ist sodann eingerichtet, dass sie eine Mindestdomänengröße an den Arbeitslastplatzierungsverwalter zu überträgt, so dass der Arbeitslastplatzierungsverwalter das Platzieren in einer zu kleinen Domäne vermeiden kann.
  • Bei einer weiteren Ausführungsform ist das Prüfprogramm so eingerichtet, dass es den Leistungsverlauf von Arbeitslasten in jeder Domäne aufzeichnet. Das Prüfprogramm ist darüber hinaus so eingerichtet, dass es einen geringfügigen Leistungsabfall, z. B. 5%, auf einer bestimmten Domäne ermöglicht, ohne eine Rückkehr zur vorherigen größeren Domäne zu empfehlen. Das Tolerieren eines kleinen Leistungsabfalls ermöglicht, dass eine Arbeitslast an Zwischendomänen vorbei geschoben werden kann, um andere Domänen zu erreichen, mit denen die Leistung merklich verbessert werden kann. Nach einem effektiven Erfassen der Leistung in diversen Affinitätsdomänen kann das Prüfprogramm so eingerichtet sein, dass es gesammelte Verlaufsleistungsdaten verwendet, um eine Empfehlung zum Verschieben in die Domäne abzugeben, in der die Arbeitslast die beste Leistung erzielt. Beispielsweise werden bei einem Begrenzungsfaktor von 3 in der Abwärtsrichtung drei Proben des Leistungsmesswerts für jede Affinitätsprobe bereitgestellt. Nachdem jede Ebene erfasst wurde, ist das Prüfprogramm so eingerichtet, dass es eine Verschiebung in die Affinitätsdomäne mit der besten Durchschnittsleistung empfiehlt.
  • Bei einer weiteren Ausführungsform sind die Vorhersagefunktion und das Prüfprogramm so eingerichtet, dass sie gewährleisten, dass die relevanten leistungsbezogenen Attribute einer Arbeitslast für einen Zeitraum stabil sind, bevor eine Optimierung der Arbeitslast versucht wird. Der Leistungsmesswert, die Prozesslast und die Auslastung sind drei mögliche Attribute. Nach Anwenden einer Optimierung werden diese Maßzahlen sodann auf gleiche Weise in der neuen Domäne überwacht.
  • Bei einer weiteren Ausführungsform ist das ASO so eingerichtet, dass es größere Systemereignisse erkennt, z. B. das Hinzufügen von Prozessoren oder Speichern oder Partitionsmigrationsereignisse, und kann als Reaktion darauf so eingerichtet sein, dass es das Zurücksetzen aller Optimierungen empfiehlt.
  • Wie der Fachmann verstehen wird, können beliebige geeignete Maßzahlen, Statistiken oder Messwerte verwendet werden, um den Affinitätsmesswert und den Leistungsmesswert bereitzustellen, die sich für eine bestimmte Anwendung des ASO eignen. Darüber hinaus kann die Definition der Affinitätsdomänen variiert werden und muss nicht hierarchisch, jedoch so eingerichtet sein, dass sie für eine beliebige Anwendung für das ASO geeignet ist.
  • Ausführungsformen der Erfindung können auf Ein-Socket-Systeme anwendbar sein. Beispielsweise kann es vorteilhaft sein, Threads mit einer starken Interaktion am gleichen Kern zu platzieren. Ein Ausschlusskonflikt bietet eine weitere Möglichkeit, bei der das ASO in einer Ein-Chip-Umgebung vorteilhaft sein kann. Das Einschränken der Platzierung von Software-Threads, die um einen Ausschluss für einen Teilsatz verfügbarer Hardware-Threads konkurrieren, kann zu einer Leistungsverbesserung führen.
  • Ausführungsformen der Erfindung sind so eingerichtet, dass sie eine schnellere und mit weniger Unterbrechungen verbundene Platzierung oder Arbeitslasten als Optimierungsfunktionen auf der Grundlage von Suchen ermöglichen, und sie sind weniger konservativ als vorhersagende Optimierungsfunktionen. Die Vorhersagefunktion verhindert ein Verschieben von Arbeitslasten, bei denen die Wahrscheinlichkeit, dass sie von einem Wechsel in eine Affinitätsdomäne profitieren, gering ist, und stoppt im Allgemeinen ein Verschieben hin zu einer kleineren Domäne zum geeigneten Zeitpunkt. Andererseits kann die Vorhersagefunktion weniger konservativ sein, da das Prüfprogramm jedwede Empfehlungen von der Vorhersagefunktion, die sich als falsch herausstellten, umkehren kann.
  • Ausführungsformen der Erfindung sind so eingerichtet, dass sie das Handhaben mehrerer paralleler Platzierungen effizienter als Optimierungsfunktionen auf der Grundlage von Suchen oder vorhersagende Optimierungsfunktionen ermöglichen, da das Vorhersagefunktionsmodul weniger Experimentiervorgänge moderiert. Die Anzahl der erforderlichen Experimentiervorgänge wird durch einen Ansatz des reinen Experimentierens stark verringert, was bei einem ausgelasteten System mit vielen Arbeitslasten vorteilhaft sein kann. Eine vorhersagende Optimierungsfunktion steht einem äußerst komplexen Vorhersageproblem gegenüber, wenn sie viele Arbeitslasten gleichzeitig handhabt.
  • Ausführungsformen der Erfindung sind einfacher zu testen und robuster als vorhersagende Optimierungsfunktionen. Durch das Vorhandensein von zwei einfachen Komponenten mit im Allgemeinen gegensätzlichen Zielen unter Verwendung unterschiedlicher Maßzahlen wird der Testaufwand verringert und das parallele Testen der beiden Komponenten ermöglicht. Nach einer Domänenverschiebung ist das Vorhersagefunktionsmodul so eingerichtet, dass es Maßzahlen aus der neuen Domäne sammeln. Somit hat die Vorhersagefunktion die einfache Aufgabe, vorherzusagen, ob die Möglichkeit einer Leistungsverbesserung in der nächsten Domäne besteht. Dies steht im Gegensatz zur wesentlichen Aufgabe des Vorhersagens, welche Domäne zur besten Leistung führt.
  • Der Fachmann wird verstehen, dass die Vorrichtung, die die gesamte vorliegende Erfindung oder einen Teil davon darstellt, eine Universalvorrichtung sein kann, deren Software so eingerichtet ist, dass sie eine gesamte Ausführungsform der Erfindung oder einen Teil davon bereitzustellen. Bei der Vorrichtung könnte es sich um eine einzelne Einheit oder eine Gruppe von Einheiten handeln, und die Software könnte ein einzelnes Programm oder ein Satz von Programmen sein. Darüber hinaus kann jede beliebige Software, die zur Umsetzung der Erfindung verwendet wird, über ein beliebiges geeignetes Übertragungs- oder Speichermittel übertragen werden, so dass die Software auf eine oder mehrere Einheiten geladen werden kann.
  • Zwar wurde die vorliegende Erfindung durch Beschreiben ihrer Ausführungsformen veranschaulicht und die Ausführungsformen ziemlich ausführlich beschrieben, jedoch hat der Anmelder nicht die Absicht, den Umfang der beiliegenden Ansprüche auf solche Details einzuschränken oder in irgendeiner Weise zu beschränken. Weitere Vorteile und Abänderungen sind für den Fachmann leicht ersichtlich. Aus diesem Grund ist die Erfindung in ihren breiteren Aspekten nicht auf die spezifischen Details der repräsentativen Vorrichtung und des repräsentativen Verfahren sowie die gezeigten und beschriebenen veranschaulichenden Beispiele beschränkt. Demgemäß kann von solchen Details abgewichen werden, ohne sich vom Umfang des allgemeinen Erfindungsgedanken des Anmelders zu entfernen.

Claims (23)

  1. Verfahren zum Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem, wobei das Verfahren die Schritte aufweist: Definieren eines Satzes von Affinitätsdomänen für eine Vielzahl von Prozessorkernen, wobei jede Affinitätsdomäne einen Satz der Prozessorkerne aufweist; Definieren eines Affinitätsmesswerts, der so eingerichtet ist, dass er angibt, wenn eine bestimmte Arbeitslast in eine kleinere Affinitätsdomäne verschoben werden sollte, die weniger Prozessorkerne aufweist; Definieren eines Leistungsmesswerts, der so eingerichtet ist, dass er die Leistung einer bestimmten Arbeitslast angibt; Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert; wenn der Affinitätsmesswert angibt, dass eine bestimmte Arbeitslast in eine kleine Affinitätsdomäne verschoben werden sollte, Verschieben der Arbeitslast in eine kleinere Affinitätsdomäne; oder wenn der Leistungsmesswert eine Verringerung der Leistung anzeigt, Verschieben der Arbeitslast in eine größere Affinitätsdomäne.
  2. Verfahren nach Anspruch 1, das ferner den Schritt aufweist: wenn die Angaben aus dem Affinitätsmesswert und dem Leistungsmesswert in Konflikt stehen, Lösen des Konflikts in Bezug auf ein vorab festgelegtes Protokoll.
  3. Verfahren nach Anspruch 2, wobei das vorab festgelegte Protokoll aufweist, dass die Arbeitslast gemäß der Angabe aus dem Leistungsmesswert in eine größere Affinitätsdomäne zu verschieben ist.
  4. Verfahren nach einem vorstehenden Anspruch, wobei der Satz von Affinitätsdomänen eine Hierarchie von Affinitätsdomänen aufweist, die nach Anzahl der Prozessorkerne in einer bestimmten Affinitätsdomäne angeordnet ist.
  5. Verfahren nach einem vorstehenden Anspruch, das ferner den Schritt aufweist: Anweisen des Arbeitslastplatzierungsmittels gemäß den Angaben aus den Affinitäts- oder Leistungsmesswerten.
  6. Verfahren nach einem vorstehenden Anspruch, wobei der Affinitätsmesswert und der Leistungsmesswert einander ausschließende Werte aufweisen.
  7. Verfahren nach einem vorstehenden Anspruche, wobei der Affinitätsmesswert einen Messwert für die Verarbeitungszeit, die eine bestimmte Arbeitslast auf Daten wartend verbringt, als Teil der Gesamtverarbeitungszeit aufweist.
  8. Verfahren nach einem vorstehenden Anspruch, wobei der Leistungsmesswert einen Messwert der pro Sekunde ausgeführten Speicherungsanweisungen für eine bestimmte Arbeitslast aufweist.
  9. Verfahren nach einem vorstehenden Anspruch, wobei das Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert periodisch durchgeführt wird.
  10. Verfahren nach einem vorstehenden Anspruch, wobei das Verschieben einer bestimmten Arbeitslast zwischen Domänen beschränkt wird.
  11. Verfahren nach einem vorstehenden Anspruch, das von einem Betriebssystem-Hintergrundprogramm durchgeführt wird.
  12. Vorrichtung zum Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem bereit, wobei die Vorrichtung funktionsfähig ist zum: Definieren eines Satzes von Affinitätsdomänen für eine Vielzahl von Prozessorkernen, wobei jede Affinitätsdomäne einen Satz der Prozessorkerne aufweist; Definieren eines Affinitätsmesswerts, der so ausgelegt ist, dass er angibt, wann eine bestimmte Arbeitslast in eine kleinere Affinitätsdomäne verschoben werden sollte, die weniger Prozessorkerne aufweist; Definieren eines Leistungsmesswerts, der so eingerichtet ist, dass er die Leistung einer bestimmten Arbeitslast angibt; Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert; wenn der Affinitätsmesswert angibt, dass eine bestimmte Arbeitslast in eine kleine Affinitätsdomäne verschoben werden sollte, Verschieben der Arbeitslast in eine kleinere Affinitätsdomäne; oder wenn der Leistungsmesswert eine Verringerung der Leistung angibt, Verschieben der Arbeitslast in eine größere Affinitätsdomäne.
  13. Vorrichtung nach Anspruch 12, die ferner funktionsfähig ist zum: Lösen des Konflikts in Bezug auf ein vorab festgelegtes Protokoll, wenn die Anzeigen aus dem Affinitätsmesswert und dem Leistungsmesswert in Konflikt stehen.
  14. Vorrichtung nach Anspruch 13, wobei das vorab festgelegte Protokoll aufweist, dass gemäß der Angabe aus dem Leistungsmesswert die Arbeitslast in eine größere Affinitätsdomäne zu verschieben ist.
  15. Vorrichtung nach einem der Ansprüche 12 bis 14, wobei der Satz von Affinitätsdomänen eine Hierarchie von Affinitätsdomänen aufweist, die nach Anzahl der Prozessorkerne in einer bestimmten Affinitätsdomäne angeordnet ist.
  16. Vorrichtung nach einem der Ansprüche 12 bis 15, die ferner funktionsfähig ist zum: Anweisen des Arbeitslastplatzierungsmittels gemäß den Anzeigen aus den Affinitäts- oder Leistungsmesswerten.
  17. Vorrichtung nach einem der Ansprüche 12 bis 16, wobei der Affinitätsmesswert und der Leistungsmesswert einander ausschließende Werte aufweisen.
  18. Vorrichtung nach einem der Ansprüche 12 bis 17, wobei der Affinitätsmesswert einen Messwert für die Verarbeitungszeit, die eine bestimmte Arbeitslast auf Daten wartend verbringt, als Teil der Gesamtverarbeitungszeit aufweist.
  19. Vorrichtung nach einem der Ansprüche 12 bis 18, wobei der Leistungsmesswert einen Messwert der pro Sekunde ausgeführten Speicherungsanweisungen für eine bestimmte Arbeitslast aufweist.
  20. Vorrichtung nach einem der Ansprüche 12 bis 19, wobei das Messen einer bestimmten Arbeitslast gemäß dem Affinitätsmesswert und dem Leistungsmesswert periodisch durchgeführt wird.
  21. Vorrichtung nach einem der Ansprüche 12 bis 20, wobei das Verschieben einer bestimmten Arbeitslast zwischen Domänen beschränkt wird.
  22. Vorrichtung nach einem der Ansprüche 12 bis 21, die von einem Betriebssystem-Hintergrundprogramm bereitgestellt wird.
  23. Computerprogramm, das auf einem computerlesbaren Medium gespeichert und in einen internen Speicher eines Computers ladbar ist, das Softwarecode-Teile aufweist, die so eingerichtet sind, dass sie das Verfahren nach einem der Ansprüche 1 bis 11 durchführen, wenn das Programm auf einem Computer ausgeführt wird.
DE112012002545.8T 2011-07-26 2012-06-13 Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem Active DE112012002545B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EPE111753372 2011-07-26
EP111753372 2011-07-26
EP11175337 2011-07-26
PCT/IB2012/052984 WO2013014545A1 (en) 2011-07-26 2012-06-13 Managing workloads in a multiprocessing computer system

Publications (2)

Publication Number Publication Date
DE112012002545T5 true DE112012002545T5 (de) 2014-06-18
DE112012002545B4 DE112012002545B4 (de) 2019-12-12

Family

ID=47600570

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012002545.8T Active DE112012002545B4 (de) 2011-07-26 2012-06-13 Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem

Country Status (6)

Country Link
US (1) US9864641B2 (de)
JP (1) JP2014523598A (de)
CN (1) CN103649938B (de)
DE (1) DE112012002545B4 (de)
GB (1) GB2507229B (de)
WO (1) WO2013014545A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10581687B2 (en) 2013-09-26 2020-03-03 Appformix Inc. Real-time cloud-infrastructure policy implementation and management
US10291472B2 (en) * 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US20160179680A1 (en) * 2014-12-18 2016-06-23 Dell Products L.P. Systems and methods for integrated rotation of processor cores
US10228973B2 (en) * 2016-03-08 2019-03-12 Hulu, LLC Kernel policy optimization for computing workloads
US10545674B1 (en) * 2016-06-30 2020-01-28 EMS EP Holding Company LLC Method and system for SSD performance jitter detection and avoidance
US10248534B2 (en) 2016-11-29 2019-04-02 International Business Machines Corporation Template-based methodology for validating hardware features
US11068314B2 (en) 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US10868742B2 (en) 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
JP6911544B2 (ja) * 2017-06-02 2021-07-28 富士通株式会社 プログラム、情報処理装置及び情報処理方法
US10698737B2 (en) * 2018-04-26 2020-06-30 Hewlett Packard Enterprise Development Lp Interoperable neural network operation scheduler
KR102563648B1 (ko) 2018-06-05 2023-08-04 삼성전자주식회사 멀티 프로세서 시스템 및 그 구동 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996822B1 (en) 2001-08-01 2006-02-07 Unisys Corporation Hierarchical affinity dispatcher for task management in a multiprocessor computer system
JP4119162B2 (ja) * 2002-05-15 2008-07-16 株式会社日立製作所 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
JP4148700B2 (ja) 2002-05-30 2008-09-10 松下電器産業株式会社 目画像撮像装置
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
US7290260B2 (en) 2003-02-20 2007-10-30 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
JP4308086B2 (ja) * 2004-05-31 2009-08-05 富士通株式会社 自律制御プログラム及びその記録媒体、自律制御装置並びに自律制御方法
US7996842B2 (en) * 2006-03-30 2011-08-09 Oracle America, Inc. Computer resource management for workloads or applications based on service level objectives
US7941805B2 (en) 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
CN101464813A (zh) * 2007-12-19 2009-06-24 国际商业机器公司 用于多核处理器上的自动工作量分配的系统和方法
CN101227320B (zh) * 2007-12-28 2013-07-31 中国移动通信集团浙江有限公司 多处理器系统负荷均衡配置方法
US8484642B2 (en) * 2010-11-17 2013-07-09 Intel Corporation Processor core selection based at least in part upon at least one inter-dependency
US9116750B2 (en) * 2012-08-08 2015-08-25 International Business Machines Corporation Optimizing collective communications within a parallel computer
US9086925B2 (en) * 2013-01-18 2015-07-21 Nec Laboratories America, Inc. Methods of processing core selection for applications on manycore processors

Also Published As

Publication number Publication date
WO2013014545A1 (en) 2013-01-31
US20150242245A1 (en) 2015-08-27
DE112012002545B4 (de) 2019-12-12
CN103649938A (zh) 2014-03-19
JP2014523598A (ja) 2014-09-11
GB201402519D0 (en) 2014-04-02
GB2507229A (en) 2014-04-23
CN103649938B (zh) 2016-01-20
US9864641B2 (en) 2018-01-09
GB2507229B (en) 2014-09-10

Similar Documents

Publication Publication Date Title
DE112012002545B4 (de) Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem
DE3751284T2 (de) Verfahren für die Abschätzung der Leistung eines Datenprozessorsystems.
DE3687805T2 (de) Ein-ausgabesteuersystem in einem virtuellen maschinensystem.
DE112011100739T5 (de) Programmatisches Ermitteln eines Ausführungsmodus für eine Anforderungszuteilungunter Verwendung von historischen Masszahlen
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
CN102868573B (zh) Web服务负载云测试方法和装置
DE112010004420T5 (de) Verfahren und System zur Verbesserung der Ausführungszeit von Software durch Optimierung elnes Leistungsmodells
DE3784998T2 (de) Verfahren zur Steuerung des Prozessorzugriffs zu Eingangs/Ausgangselementen.
DE112012000245T5 (de) Aktivitätsaufzeichnungssystem für eine parallele Softwareumgebung
CN111143143B (zh) 一种性能测试方法及装置
DE102012203534B4 (de) Hardware-Charakterisierung für die Anwendung in Bezug auf virtuelle Umgebungen
DE112015004564B4 (de) Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung
DE112013002995T5 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE102012215192A1 (de) Verwalten der Wärmeverteilung unter Speichermodulen eines Computersystems
DE102019101225A1 (de) Verfahren, Systeme und computerlesbare Medien zum Bereitstellen von Cloud-Sichtbarkeit
DE202017106569U1 (de) Analyse grossangelegter Datenverarbeitungsaufträge
DE112017001376T5 (de) Erkennen und Vorhersagen von Engpässen in komplexen Systemen
WO2002006949A2 (de) Verfahren und vorrichtung zur messung der laufzeit einer task in einem echtzeitsystem
DE102013105848A1 (de) Vorri chtung und Verfahren zum Unterstützen eines Tests eines Anwendungsdienstes unter Verwendung mehrerer Clouds
DE102020214951A1 (de) Verfahren zum dynamischen Zuweisen von Speicherbandbreite
EP1634176A2 (de) Clusteranordnung für dezentrale lastverteilung
DE102012221253B4 (de) Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür
DE102012103654A1 (de) Installieren und Prüfen einer Anwendung auf einer stark genutzten Computerplattform
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses
Kalmegh et al. Analyzing query performance and attributing blame for contentions in a cluster computing framework

Legal Events

Date Code Title Description
R012 Request for examination validly filed
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