-
Die vorliegende Erfindung betrifft ein Verfahren für eine adaptive Ressourcenzuweisung für Anwendungen in einem verteilten System heterogener Rechenknoten. Ferner bezieht sich die Erfindung auf ein Computerprogramm sowie einen Rechenknoten zu diesem Zweck.
-
Es ist aus dem Stand der Technik grundsätzlich bekannt, dass ein verteiltes System von Rechenknoten zur Ausführung von Anwendungen verwendet werden kann. Hierbei ist es möglich, dass die Rechenknoten heterogen ausgebildet sind und somit die Anwendungen auf den heterogenen Rechenknoten mit unterschiedlichen Rechenkapazitäten abgebildet werden müssen. Dies kann bspw. für Rechenzentren vor Ort, für Cloud-Anwendungen und für die Verteilung eingebetteter Anwendungen auf einem heterogenen SoC (System-on-a-Chip) mit unterschiedlichen Rechenkapazitäten relevant sein. Bei vielen Anwendungen, die in der Cloud bereitgestellt werden, kann es wichtig sein, den besten Rechenknoten in einem Cluster zu finden, auf dem die Anwendung bereitgestellt werden soll. In Edge-Computing-Anwendungsfällen ist es oft wichtig, eine Anwendung funktional aufzuteilen und Teile der Anwendung auf die Edge-Geräte und einen Teil der Anwendung auf die Cloud zu verteilen. Darüber hinaus besteht bei Edge-Computing-Anwendungsfällen - im Gegensatz zu Cloud-Anwendungsfällen mit einem Cluster homogener Knoten - die zusätzliche Herausforderung für ein Mapping darin, mit der Heterogenität der Geräte und der Heterogenität der Anwendungen umzugehen.
-
Ein ungesteuertes Mapping kann zu einer suboptimalen Leistung der Anwendung führen. Zudem ist es eine Herausforderung, dass einige Anwendungen ein hohes Maß an Parallelität aufweisen, andere der Datenflusssemantik folgen, rein sequentiell sind oder eine Mischform der oben genannten sein können. Auch können die bereitgestellten Anwendungen unterschiedliche Ressourcenanforderungen haben. Bspw. können dies Anforderungen an die Rechenleistung, den Speicher, das Netzwerk und andere Ein- und Ausgabe-Ressourcen sein. Die Rechenknoten können heterogen sein und die Anwendungen nicht unabhängig sein, da sie mit anderen Anwendungen über Nachrichten im Kommunikationskanal kommunizieren.
-
Der Stand der Technik sieht im Allgemeinen ein statisches Mapping vor, was zu einer suboptimalen Nutzung der Ressourcen und einer suboptimalen Leistung der Anwendung führen kann.
-
Ferner existieren Scheduling-Lösungen, welche Anwendungen zwar dynamisch zuordnen können. Jedoch finden diese keine Anwendung bei heterogenen Rechenknoten, sondern in erster Linie auf Knotencluster in Rechenzentren mit homogener Rechenknotenstruktur. Außerdem bleibt häufig hierbei eine Ausführungsreihenfolge verschiedener Anwendungen auf den geplanten Rechenknoten unberücksichtigt. Zudem werden diese Lösungen für die Bereitstellung zustandsloser, unabhängiger Anwendungen verwendet (und nicht für Anwendungen, die miteinander interagieren) und sie berücksichtigen keine Netzwerklatenz. Damit haben herkömmliche Lösungen nur einen begrenzten Einblick in das Ressourcenverbrauchsprofil der Anwendung und berücksichtigen diese Faktoren beim Mapping häufig nicht.
-
Offenbarung der Erfindung
-
Gegenstand der Erfindung ist ein Verfahren mit den Merkmalen des Anspruchs 1, ein Computerprogramm mit den Merkmalen des Anspruchs 10 sowie ein Rechenknoten mit den Merkmalen des Anspruchs 11. Weitere Merkmale und Details der Erfindung ergeben sich aus den jeweiligen Unteransprüchen, der Beschreibung und den Zeichnungen. Dabei gelten Merkmale und Details, die im Zusammenhang mit dem erfindungsgemäßen Verfahren beschrieben sind, selbstverständlich auch im Zusammenhang mit dem erfindungsgemäßen Computerprogramm sowie dem erfindungsgemäßen Rechenknoten, und jeweils umgekehrt, so dass bezüglich der Offenbarung zu den einzelnen Erfindungsaspekten stets wechselseitig Bezug genommen wird bzw. werden kann.
-
Das Verfahren gemäß der Erfindung kann für eine adaptive Ressourcenzuweisung für Anwendungen in einem verteilten System heterogener Rechenknoten vorgesehen sein. Dabei sind die Rechenknoten vorzugsweise dadurch heterogen, dass sie unterschiedliche Rechenkapazitäten und/oder unterschiedliche Funktionalität und/oder unterschiedliche Typen von Hardware aufweisen. Die heterogenen Rechenknoten können auch als mindestens eine der nachfolgenden Gerätekategorien ausgebildet sein:
- - unterschiedliche kleinere loT-Geräte (loT steht für „Internet of Things“),
- - unterschiedliche Telefone,
- - unterschiedliche Cloud-Server, welche bspw. unterschiedliche Leistung bereitstellen,
- - unterschiedliche Rechenknoten bei einem Edge-Computing, z. B. umfassend eine Datenverarbeitungsvorrichtung in einem Fahrzeug und eine Datenverarbeitungsvorrichtung außerhalb des Fahrzeuges,
- - unterschiedliche Rechenkapazitäten bei einem SoC,
- - unterschiedliche Prozessoren,
- - unterschiedliche Rechenkapazitäten, wie Allzweck- oder Spezialfließkomma- oder Grafikverarbeitungs- oder Beschleunigungskapazitäten.
-
Damit ist es auch möglich, dass das verteilte System eine verteilte Middleware und/oder verschiedene Betriebssysteme oder Hypervisoren und/oder eine Edge-Computing-Umgebung und/oder eine loT-Umgebung und/oder eine Cloud-Computing-Umgebung und/oder einen Fahrzeug-Controller umfasst. Ebenfalls ist es optional möglich, dass die Rechenknoten zumindest teilweise mobil ausgeführt sind, sich also während der Ausführung des erfindungsgemäßen Verfahrens bewegen.
-
Neben den Rechenknoten können auch die Kommunikationsressourcen und/oder die Anwendungen heterogen sein, also unterschiedliche Leistung bereitstellen bzw. benötigen. Somit ist das Verfahren vorzugsweise besonders geeignet, für eine heterogene Umgebung eingesetzt zu werden. Ferner können die Anwendungen ebenfalls heterogen und/oder auch als Anwendungs-Container ausgeführt sein. Die Rechenkapazität kann ferner eine Rechenleistung sein, welche ein Rechenknoten zur Ausführung der Anwendung bereitstellt.
-
Ferner ist es möglich, dass zumindest teilweise während einer Laufzeit der Anwendungen, d. h. insbesondere während die Anwendungen ausgeführt werden und aktiv sind, die nachfolgenden Adaptionsschritte wiederholt und/oder automatisiert, vorzugsweise durch eine Zuweisungs- und Migrationseinheit, durchgeführt werden:
- - Durchführen einer Überwachung der Anwendungen und/oder von Ressourcen des Systems, um einen Änderungsbedarf einer Ressourcenzuweisung der Ressourcen des Systems für die Anwendungen zu ermitteln. Dieser Schritt kann auch als „Laufzeitüberwachung“ bezeichnet werden.
- - Anpassen, insbesondere Verändern, der Ressourcenzuweisung anhand des ermittelten Änderungsbedarfs. Dieser Schritt kann auch als „Mapping“ bezeichnet werden.
-
Die Durchführung der Adaptionsschritte im laufenden Betrieb der Anwendungen kann zu einem effizienteren, widerstandsfähigeren, robusteren und zuverlässigeren System führen und kann zudem die Gesamtleistung des Systems erhöhen. Unter einer Ressourcenzuweisung kann sowohl die Zuweisung von Ressourcen zu den Anwendungen als auch die Zuweisung von Anwendungen zu den Ressourcen verstanden werden. Die Ressourcen können hierbei z. B. Rechen- und Kommunikationsressourcen umfassen. Im Rahmen der Erfindung wird des Weiteren das sogenannte „Mapping“ auch als Zuweisung oder Zuordnung bezeichnet. Ferner kann unter einer Ressourcenzuweisung bevorzugt eine Konfiguration der zuzuweisenden Ressourcen oder bereits eine Umsetzung der Ressourcenzuweisung verstanden werden.
-
Eine weitere Besonderheit bei dem erfindungsgemäßen Verfahren kann zudem sein, dass die Überwachung sowohl als Überwachung der Anwendungen als auch der Ressourcen des Systems durchgeführt wird, um den Änderungsbedarf zu ermitteln. Anders als bei herkömmlichen Lösungen können daher nicht nur Veränderungen der Ressourcen wie Hardwareausfälle erkannt, sondern es kann auch eine veränderte Ressourcennachfrage der Anwendungen ermittelt werden.
-
Das erfindungsgemäße Verfahren kann die Ressourcenzuweisung dynamisch durchführen, bspw. eingehende Anwendungen dynamisch einem gewünschten Rechennoten zuordnen und eine Ausführungsreihenfolge der Anwendungen dynamisch planen. Eine Herausforderung bei der Zuordnung ist es ggf., dass es schwierig oder sogar unmöglich ist, die Ressourcenanforderungen statisch bzw. zur Entwurfszeit vorherzusagen. Ein statisches Mapping ist damit für Systeme, die sich auf Anwendungs- und Topologieebene dynamisch verändern und weiterentwickeln, häufig nicht praktikabel. Es besteht daher ein Bedarf an einer Lösung, um mit den variierenden Ressourcenanforderungen wie einem datenabhängigen Ressourcenbedarf von Anwendungen umgehen können. Die erfindungsgemäße Lösung hat dabei z. B. den Vorteil, dass mit Ausfallzeiten von Rechenknoten und schwankender Ressourcenverfügbarkeit (defekte Netzverbindungen, ausgefallene Rechenknoten) besser umgegangen werden kann.
-
Des Weiteren ist es denkbar, dass die nachfolgenden Schritte vor der und/oder nicht zur Laufzeit der Anwendungen und vor den Adaptionsschritten durchgeführt werden:
- - Ermitteln eines statischen Ressourcenprofils der Anwendungen und/oder der Ressourcen, um initial eine Ressourcenanforderung der Anwendungen zu definieren,
- - Initiales Bestimmen der Ressourcenzuweisung anhand der definierten Ressourcenanforderung.
-
Für die Bereitstellung des statischen Ressourcenprofils kann wenigstens einer der nachfolgenden Schritte durchgeführt werden:
- - Erkennen einer Verwendung von Parallelverarbeitung oder Gleitkomma-Operationen der Anwendungen,
- - Extrahieren eines Grades einer Parallelität der Anwendungen,
- - Erkennen von Speicher- und/oder Rechen- und/oder Ein- und Ausgabe Anforderungen der Anwendungen.
-
Dabei können für die voranstehend genannten Schritte bspw. Code-Analysen und/oder Techniken des maschinellen Lernens zum Einsatz kommen. Alternativ können auch benutzerspezifische Anpassungen des Ressourcenprofils erfolgen. Auch kann eine Analyse zur Ermittlung des statischen Ressourcenprofils erfolgen, bei welcher die Anwendungen auf einzelnen Rechenknoten isoliert ausgeführt und analysiert werden.
-
Außerdem kann es vorgesehen sein, dass vor einer Laufzeit der Anwendungen eine Hardwareanalyse ausgeführt wird, um das statische Ressourcenprofil zu ermitteln und/oder die Ressourcenzuweisung initial zu bestimmen. Diese kann eine Ermittlung von wenigstens einem Hardware-Merkmal umfassen, bspw. eine Anzahl von Kernen der Rechenknoten und/oder einer Art der Kerne und/oder einer Verarbeitungsgeschwindigkeit der Rechenknoten und/oder einer Speicherhierarchie und/oder dergleichen. Außerdem kann ggf. eine Netztopologie des Netzwerkes mit Hilfe der klassischen Netzwerkerkennung ermittelt werden, um festzustellen, wie die Rechenknoten im Netzwerk verteilt sind. Ebenso können optional Informationen wie die Bandbreite über verschiedene Kommunikations-Verbindungen im Netzwerk erfasst werden. Die Kommunikations-Verbindungen dienen hierbei im Netzwerk zur Kommunikation der Anwendungen untereinander.
-
Es kann weiter möglich sein, dass die heterogenen Rechenknoten unterschiedliche Rechenkapazitäten aufweisen, wobei das Anpassen der Ressourcenzuweisung den nachfolgenden Schritt umfassen kann, bei welchem insbesondere die Ressourcenzuweisung aktiv verändert wird:
- - Zuordnen der Anwendungen und/oder von Teilprozessen der Anwendungen auf die heterogenen Rechenknoten, um die Anwendungen und/oder die Teilprozesse in Abhängigkeit von dem ermittelten Änderungsbedarf mit der unterschiedlichen Rechenkapazität auszuführen.
-
Die Rechenkapazität kann somit eine Ressource sein, welche den Anwendungen zugewiesen werden kann. Die Rechenkapazität kann dabei bestimmen, mit welcher Leistung die Anwendungen ausgeführt werden können. Damit ist die Ressourcenzuweisung abhängig von den Ressourcenanforderungen der Anwendungen. Eine Veränderung der Ressourcenanforderungen während der Laufzeit kann durch die dynamische Ressourcenzuweisung somit effektiv berücksichtigt werden. Hierzu kann die Zuordnung ggf. dynamisch während der Laufzeit verändert werden.
-
Gemäß einem weiteren Vorteil kann vorgesehen sein, dass das System unterschiedliche Kommunikationsressourcen aufweist, wobei das Anpassen der Ressourcenzuweisung den nachfolgenden Schritt umfasst:
- - Zuordnen der Kommunikationsressourcen für die Anwendungen in Abhängigkeit von dem ermittelten Änderungsbedarf.
-
Auch die Kommunikationsressourcen können heterogen ausgeführt sein, also z. B. auf unterschiedlichen Typen von Hardware basieren oder eine unterschiedliche Struktur aufweisen. Bspw. können die Kommunikationsressourcen eine Reihe von drahtgebundenen und/oder drahtlosen Netzwerkverbindungen umfassen, die entsprechend unterschiedliche Bandbreite bieten. Zusätzlich kann die Bandbreite bei drahtlosen Netzwerkverbindungen nicht konstant sein. Je nach Positionierung und/oder Bewegung im Netz durch die Rechenknoten, falls es sich um mobile Rechenknoten handelt, und/oder störende, mobile Objekte kann somit die Bandbreite veränderlich sein. Die Leistung der Kommunikation der Anwendungen untereinander ist hierbei abhängig von den Anwendungen zugewiesenen Kommunikationsressourcen. Eine Veränderung der Ressourcenanforderungen während der Laufzeit kann auch hier durch die dynamische Ressourcenzuweisung somit effektiv berücksichtigt werden.
-
Vorteilhafterweise kann im Rahmen der Erfindung vorgesehen sein, dass das Durchführen der Überwachung der Anwendungen wenigstens einen der nachfolgenden Schritte umfasst:
- - Erfassen von während der Laufzeit variierender Ressourcenanforderungen, insbesondere von datenabhängigen Ressourcenanforderungen, der Anwendungen zur Ermittlung des Änderungsbedarfs,
- - Erfassen von während der Laufzeit in das System eintretenden und/oder verlassenden Anwendungen zur Ermittlung des Änderungsbedarfs.
-
Somit ist es möglich, mit dem variierenden Ressourcenanforderungen von Anwendungen, z. B. aufgrund des variierenden Datenbedarfs und/oder aufgrund eines modus- und/oder situations- und/oder kontextabhängigen Ressourcenbedarfs, umzugehen. Entsprechend wird hierbei ein Änderungsbedarf ermittelt, welcher von den Anwendungen ausgeht. Die Ressourcenanforderungen können daher auch als Ressourcennachfrage bezeichnet werden, welche eine von den Anwendungen ausgehende Nachfrage nach notwendigen Ressourcen zur Ausführung und/oder Gewährleistung einer korrekten Funktion und/oder Erfüllung einer Latenzanforderung entsprechen kann.
-
Vorteilhaft ist es zudem, wenn das Durchführen der Überwachung der Ressourcen des Systems den nachfolgenden Schritt umfasst:
- - Erfassen während der Laufzeit variierender Ressourcen des Systems, insbesondere einem Ein- und/oder Austritt von Rechenknoten und/oder einer Verminderung oder Erhöhung einer Rechenkapazität und/oder einem Ausfall wenigstens einer Kommunikationsressource, zur Ermittlung des Änderungsbedarfs.
-
Entsprechend wird hierbei ein Änderungsbedarf ermittelt, welcher von den Ressourcen ausgeht.
-
Ein weiterer Vorteil kann im Rahmen der Erfindung erzielt werden, wenn die Adaptionsschritte und insbesondere die Überwachung und/oder das Anpassen der Ressourcenzuweisung zumindest einen der nachfolgenden Schritte umfassen, welche bevorzugt durch die Zuweisungs- und Migrationseinheit ausgeführt werden:
- - Erkennen und insbesondere Aufzeichnen einer Veränderung einer Ressourcenanforderung einer Anwendung und/oder Migrieren der Anwendung mit der veränderten Ressourcenanforderung adaptiv auf einem der Rechenknoten, welcher dazu ausgeführt ist, die veränderte Ressourcenanforderung zu erfüllen,
- - Erkennen und insbesondere Aufzeichnen, wenn eine Last auf wenigstens einem der Rechenknoten einen vordefinierten Schwellenwert insbesondere über eine vordefinierte Zeitdauer hinweg übersteigt, wobei dann vorzugsweise ein Migrieren wenigstens einer Anwendung, welche auf dem wenigstens einen Rechenknoten ausgeführt wird, erfolgt,
- - Anpassen der Ressourcenzuweisung auf einem der Rechenknoten, auf welchem eine Anwendung mit einer veränderten Ressourcenanforderung ausgeführt wird, - Aufzeichnen einer Leistung der Anwendungen auf verschiedenen der Rechenknoten, um eine optimierte Ressourcenzuweisung zu ermitteln, um das Anpassen der Ressourcenzuweisung anhand der optimierte Ressourcenzuweisung durchzuführen.
-
Unter der Migration, also insbesondere einer Software-Migration, ist vorteilhafterweise zu verstehen, dass die vorhandene Anwendung in eine neue technologische Umgebung z. B. eines anderen Rechenknotens überführt wird. Darüber hinaus sind noch weitere Maßnahmen wie eine Ressourcenzuweisen und ein Scheduling denkbar, um die Ausführung der Anwendungen zu optimieren.
-
Es kann vorgesehen sein, dass die Adaptionsschritte und insbesondere die Überwachung und/oder das Anpassen der Ressourcenzuweisung zumindest einen der nachfolgenden Schritte umfassen, welche bevorzugt durch die Zuweisungs- und Migrationseinheit (engl. Mapping and Migration Engine, kurz MME) ausgeführt werden:
- - Es kann für mindestens eine oder jede Anwendung eine Rangliste der für die Ausführung am besten geeigneten Rechenknoten erstellt und aktualisiert und die Anwendung dem am besten geeigneten Rechenknoten zugewiesen werden,
- - Für jeden Satz kommunizierender Anwendungen kann die MME verschiedene Zuordnungen von Anwendungen zu Rechenknoten ausführen, um einen Kompromiss zwischen optimaler Anwendungszuordnung und Kommunikationslatenzen bereitzustellen. Hierfür können verschiedene Heuristiken und/oder Maschinenlern-Techniken verwendet werden. So kann z. B. zunächst die optimale Anwendungszuordnung gewählt und anschließend geprüft werden, ob die Kommunikationslatenz akzeptabel ist. Alternativ kann auch ein kommunikationszentriertes Mapping durchgeführt. Methoden, die sowohl die Kommunikation als auch die Anwendungsabbildung gleichzeitig berücksichtigen, sind ebenfalls anwendbar (z. B. Heuristiken oder maschinenlern-basierte Ansätze).
- - Es kann eine regelmäßige Überprüfung der Lebendigkeit einer Topologie des Netzwerkes erfolgen, um ausgefallene Rechenknoten oder Verbindungen durch das Senden von Heartbeat-Nachrichten zu entdecken.
-
Ferner kann im Rahmen der Erfindung vorgesehen sein, dass auf wenigstens einem oder jedem der Rechenknoten eine Schedulingeinheit (kurz SE oder engl. „scheduling engine“) ausgeführt wird, welche vorzugsweise mit der Zuweisungs- und Migrationseinheit wiederholt während der Laufzeit wenigstens eine Information über eine aktuelle Verfügbarkeit von wenigstens einer Ressource des Systems und/oder des Rechenknotens, auf welchem sie ausgeführt wird, und/oder die Ressourcenanforderung, und/oder den ermittelten Änderungsbedarf auszutauschen, um bevorzugt eine Ausführungsreihenfolge der Anwendungen zu definieren. Durch eine Schedulingeinheit kann ein Scheduling bereitgestellt werden, also insbesondere die zeitliche Ausführungsreihenfolge der Anwendungen oder deren Teilprozesse definiert und/oder gesteuert werden. Sobald eine Anwendung durch die Ressourcenzuweisung und vorzugsweise durch das Mapping einem Rechenknoten zugeordnet wurde, kann es vorgesehen sein, dass durch die Schedulingeinheit auch über die Priorität und die Ausführungsreihenfolge der Anwendungen auf den Rechenknoten entschieden wird. Dabei kann ggf. gewährleistet werden, dass die Anwendungen ihre zeitlichen Anforderungen erfüllt.
-
Auch kann es vorgesehen sein, dass mehrere Anwendungen auf demselben Rechenknoten abgebildet werden, sodass eine Steuerung der Ausführungsreihenfolge erforderlich wird. Die Schedulingeinheit kann hierzu auf dem entsprechenden und/oder jedem Rechenknoten ausgeführt werden. Ferner kann die Schedulingeinheit mit der MME regelmäßig interagieren, indem sie Informationen austauscht, welche von der MME genutzt werden, um Zuordnungsentscheidungen zu treffen. Dabei kann es sich um einfache Metriken wie die Prozessorauslastung oder um komplexere Metriken handeln, die auf formalen Scheduling-Analysen und/oder Maschinenlern-basierten Techniken beruhen und angeben, wie viele Arbeitslasten untergebracht werden können, ohne dass Echtzeitbeschränkungen verletzt werden. Die SE kann ferner mit der MME interagieren, um die Ressourcenanforderungen der Anwendung zu verstehen. Die SE kann dann für die dynamische Entscheidung über die Ausführungsreihenfolge und die Planungsparameter der Anwendungen auf dem gegebenen Rechenknoten zuständig sein, und zwar so, dass jede Anwendung ihre Echtzeitanforderungen erfüllt. Darüber hinaus kann eine SE, die fortgeschrittene Scheduler (mit reservierungsbasiertem Scheduling) anbietet, den Anwendungen auch garantierte Ausführungsbudgets für jeden vorkonfigurierten Zeitraum anbieten. Dies kann von der MME genutzt werden, um Anwendungen, die eine vorhersehbare Leistung und zeitliche Isolierung benötigen, auf bestimmten Rechenknoten abzubilden.
-
Es ist ferner denkbar, dass die Anwendungen als bevorzugt miteinander kommunizierende Anwendungen einer verteilten Middleware und/oder eines Betriebssystems eines Fahrzeuges und/oder eines Edge-Computing Systems und/oder eines Cloud-Computing Systems und/oder eines Fahrzeug-Controllers ausgeführt sind. Ferner ist es möglich, dass die Anwendungen auch als Anwendungscontainer ausgeführt sind. Insbesondere in den genannten Anwendungsfeldern bietet die dynamische Ressourcenzuweisung Vorteile, da in großem Ausmaße verteilte Systeme heterogener Rechenknoten zum Einsatz kommen. Anwendungscontainer sind beim Cloud- und Edge-Computing zur Containerisierung aus dem Stand der Technik bekannt.
-
Ebenfalls Gegenstand der Erfindung ist ein Computerprogramm, insbesondere Computerprogrammprodukt, umfassend Befehle, die bei der Ausführung des Computerprogrammes durch einen Computer diesen veranlassen, das erfindungsgemäße Verfahren auszuführen. Damit bringt das erfindungsgemäße Computerprogramm die gleichen Vorteile mit sich, wie sie ausführlich mit Bezug auf ein erfindungsgemäßes Verfahren beschrieben worden sind. Als der Computer kann bspw. ein Rechenknoten des Netzwerkes vorgesehen sein, welcher das Computerprogramm z. B. in der Form eines Softwaremoduls ausführt. Der Computer kann wenigstens einen Prozessor zur Ausführung des Computerprogramms aufweisen. Auch kann ein nicht-flüchtiger Datenspeicher vorgesehen sein, in welchem das Computerprogramm hinterlegt und von welchem das Computerprogramm durch den Prozessor zur Ausführung ausgelesen werden kann.
-
Ebenfalls Gegenstand der Erfindung kann ein computerlesbares Speichermedium sein, welches das erfindungsgemäße Computerprogramm umfasst. Das Speichermedium ist bspw. als ein Datenspeicher wie eine Festplatte und/oder ein nicht-flüchtiger Speicher und/oder eine Speicherkarte ausgebildet. Das Speichermedium kann z. B. in mindestens einem oder jedem Rechenknoten des Netzwerkes integriert sein.
-
Darüber hinaus kann das erfindungsgemäße Verfahren auch als ein computerimplementiertes Verfahren ausgeführt sein.
-
Ebenfalls Gegenstand der Erfindung ist ein Rechenknoten, eingerichtet zur Ausführung eines erfindungsgemäßen Verfahrens. Damit bringt der erfindungsgemäße Rechenknoten die gleichen Vorteile mit sich, wie sie ausführlich mit Bezug auf ein erfindungsgemäßes Verfahren beschrieben worden sind.
-
Weitere Vorteile, Merkmale und Einzelheiten der Erfindung ergeben sich aus der nachfolgenden Beschreibung, in der unter Bezugnahme auf die Zeichnungen Ausführungsbeispiele der Erfindung im Einzelnen beschrieben sind. Dabei können die in den Ansprüchen und in der Beschreibung erwähnten Merkmale jeweils einzeln für sich oder in beliebiger Kombination erfindungswesentlich sein. Es zeigen:
- 1 schematisch einen Ablauf eines erfindungsgemäßen Verfahrens,
- 2 schematisch eine Struktur von Teilen eines verteilten Systems.
-
In 1 ist ein erfindungsgemäßes Verfahren für eine adaptive Ressourcenzuweisung 402 für Anwendungen 100 in einem verteilten System 10 heterogener Rechenknoten 200 visualisiert. Hierbei ist vorgesehen, dass zumindest teilweise oder vollständig während einer Laufzeit der Anwendungen 100 die nachfolgenden Adaptionsschritte wiederholt und automatisiert durch eine Zuweisungs- und Migrationseinheit 500 durchgeführt werden. Zunächst kann dabei gemäß einem ersten Schritt ein Durchführen einer Überwachung 401 der Anwendungen 100 und von Ressourcen des Systems 10 vorgesehen sein, um einen Änderungsbedarf einer Ressourcenzuweisung 402 der Ressourcen des Systems 10 für die Anwendungen 100 zu ermitteln. Der erste Schritt kann auch als Online-Überwachung bezeichnet werden. Die Ressourcenanforderungen der ausgeführten Anwendungen können auf diese Weise während der Systemlaufzeit dynamisch aktualisiert und verfeinert werden. Gemäß einem zweiten Schritt kann anhand des ermittelten Änderungsbedarfs ein Anpassen der Ressourcenzuweisung 402 durchgeführt werden.
-
Zusätzlich ist es möglich, dass vor der Laufzeit der Anwendungen 100 und vor den Adaptionsschritten ein in 2 visualisiertes, statisches Ressourcenprofil 310 der Anwendungen 100 ermittelt wird. Damit kann initial u.a. eine Ressourcenanforderung 320 der Anwendungen 100 definiert werden. Auf der Grundlage von (statischen/offline) Entwurfszeitinformationen kann daraus eine erste gute Einsatz- und Systemkonfiguration als „Ausgangspunkt“ abgeleitet werden. Anschließend kann, ggf. ebenfalls vor der Laufzeit der Anwendungen 100, das initiale Bestimmen der Ressourcenzuweisung 402 anhand der definierten Ressourcenanforderung 320 durchgeführt werden. Damit können statische Informationen des Ressourcenprofils 310 (die z. B. mit Methoden der Systemtechnik gewonnen werden) kombiniert werden mit Informationen, die während der Online-Überwachung gewonnen werden. Auf diese Weise ist es möglich, dass auf dynamische Änderungen im System (auf Software- und Hardwareebene) reagiert wird und gleichzeitig Garantien in Bezug auf die Entwurfszeitspezifikation und die Anforderungen gegeben werden können. Ferner kann es möglich sein, dass bei der Ressourcenzuweisung 402 Berechnungen und Kommunikation gemeinsam mit den Eigenschaften des verteilten Systems 10 berücksichtigt werden.
-
In 2 ist ebenfalls eine Struktur dargestellt, in welcher eine Zuweisungs- und Migrationseinheit 500 und eine Schedulingeinheit 510 zumindest teilweise gemeinsam die Adaptionsschritte durchführen können. So kann auf wenigstens einem oder jedem der Rechenknoten 200 eine Schedulingeinheit 510 ausgeführt werden, welche mit der Zuweisungs- und Migrationseinheit 500 wiederholt während der Laufzeit wenigstens eine Information über eine aktuelle Verfügbarkeit von wenigstens einer Ressource des Systems 10 und/oder des Rechenknotens 200, auf welchem sie ausgeführt wird, und/oder die Ressourcenanforderung 320, und/oder den ermittelten Änderungsbedarf austauscht, um eine Ausführungsreihenfolge der Anwendungen 100 zu definieren. Die Schedulingeinheit 510 kann dabei das Scheduling 403 ggf. auf Betriebssystemebene durchführen. Somit wird ein hierarchisches Scheduling-Problem gelöst: Auf der Orchestrierungsebene und anschließend auch auf der Betriebssystemebene (d. h. welcher Anwendungsthread wird auf welchen Prozessor zusammen mit welcher Ausführungsreihenfolge ausgeführt, um z.B. Zeitanforderungen zu erfüllen).
-
In 2 sind außerdem beispielhaft verschiedene Funktionsblöcke dargestellt, um das erfindungsgemäße Verfahren umzusetzen. Vor einer Laufzeit der Anwendungen 100, d. h. „offline“, kann eine statische Ermittlung der Ressourcen 406, also insbesondere unter Berücksichtigung der Hardware, und eine statische Ermittlung der Ressourcenanforderungen 414 hinsichtlich der Anwendungen 100 durchgeführt werden.
-
Die statische Ermittlung der Ressourcenanforderungen 414 kann ggf. für sämtliche der N Anwendungen 100 erfolgen, welche im System 10 vorgesehen sind. Ein Ergebnis dieser statischen Ermittlung kann anschließend für die statische Ermittlung von Berechnungskapazitätsanforderungen 420, von Kommunikationsressourcenanforderungen 421 und von Ressourcenmerkmalsanforderungen 422 der Anwendungen 100 genutzt werden. Die Berechnungskapazitätsanforderungen 420 sind bspw. Anforderungen an eine Rechenleistung der Rechenknoten 200. Die Kommunikationsressourcenanforderungen 421 umfassen z. B. Anforderungen an eine Kommunikationsbandbreite und/oder - geschwindigkeit. Die Ressourcenmerkmalsanforderungen 422 umfassen z. B. Anforderungen an bestimmte technische Merkmale der Hardware der Rechenknoten 200. Es ist optional möglich, dass diese Ermittlung anschließend während einer Laufzeit der Anwendungen 100 ebenfalls online wiederholt und dynamisch durchgeführt und verfeinert wird, sodass eine dynamische Anpassung 405 vorgesehen sein kann. Die Ergebnisse dieser Ermittlung kann für eine Definition einer Ressourcenanforderung 320 genutzt werden. Ferner können dafür auch QoS (Quality of Service) Anforderungen 423 berücksichtigt werden. Daraus kann anschließend eine Ressourcenzuweisung 402 durch die Zuweisungs- und Migrationseinheit 500 erfolgen.
-
Ferner können aus der statischen Ermittlung der Ressourcen 406 u.a. Hardwaremerkmale 410 und/oder eine dynamische Verfügbarkeit 411 und/oder eine Kommunikationsbandbreite 412 ermittelt werden. Es kann sich hierbei anders als bei den Ressourcenanforderungen 414 um einen Ist-Zustand der verfügbaren Hardware handeln. Auch diese ermittelten Ergebnisse können der Zuweisungs- und Migrationseinheit 500 übermittelt und für die Ressourcenzuweisung 402 berücksichtigt werden. Ferner kann auch für diese Ermittlung eine dynamische Anpassung 405 während der Laufzeit der Anwendungen 100 vorgesehen sein, durch die spätere Änderungen der Ressourcen erkannt werden können.
-
Darüber hinaus kann eine Laufzeitüberwachung und -profilierung der Anwendungen 100 und der Topologie 210 von den Blöcken „dynamische Überwachung der Ressourcen“ 407 und „dynamische Überwachung der Anwendungen“ 415 zur Laufzeit der Anwendungen 100 getrennt durchgeführt werden und zur Anpassung der Ressourcenanforderung 320 dienen. Diese verfeinerte Spezifikation der Ressourcenanforderung 320 kann dann kontinuierlich (oder zu vordefinierten Zeitpunkten oder bei Änderungen eines Systemzustands des Systems 10) in die Zuweisungs- und Migrationseinheit 500 eingespeist werden, die somit die Rückkopplungsschleife schließt.
-
Das erfindungsgemäße Verfahren kann ferner durch ein Computerprogramm 2 bereitgestellt sein, welches durch einen Computer 200, wie einem Rechenknoten 200 ausgeführt wird.
-
Die voranstehende Erläuterung der Ausführungsformen beschreibt die vorliegende Erfindung ausschließlich im Rahmen von Beispielen. Selbstverständlich können einzelne Merkmale der Ausführungsformen, sofern technisch sinnvoll, frei miteinander kombiniert werden, ohne den Rahmen der vorliegenden Erfindung zu verlassen.