-
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.