DE102010019783A1 - Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und entsprechendes System - Google Patents

Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und entsprechendes System Download PDF

Info

Publication number
DE102010019783A1
DE102010019783A1 DE102010019783A DE102010019783A DE102010019783A1 DE 102010019783 A1 DE102010019783 A1 DE 102010019783A1 DE 102010019783 A DE102010019783 A DE 102010019783A DE 102010019783 A DE102010019783 A DE 102010019783A DE 102010019783 A1 DE102010019783 A1 DE 102010019783A1
Authority
DE
Germany
Prior art keywords
local
local agent
administrator
data
agents
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.)
Pending
Application number
DE102010019783A
Other languages
English (en)
Inventor
Anmelder Gleich
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE102010019783A priority Critical patent/DE102010019783A1/de
Priority to PCT/EP2011/057292 priority patent/WO2011138430A2/de
Publication of DE102010019783A1 publication Critical patent/DE102010019783A1/de
Priority to US13/667,472 priority patent/US20130061248A1/en
Pending legal-status Critical Current

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/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/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/5044Allocation 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 hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten umfassend mindestens ein Teilprogramm, bei dem ein Verwalter mindestens zwei lokale Agenten steuert und mit mindestens einem Teilprogramm versieht, wobei der Verwalter die Steuerunrchführt, die mindestens eine der folgenden Informationen umfassen: a) die Lokalisierung der zu verarbeitenden Daten und b) die zur Verfügung stehende Rechenkapazität auf den lokalen Agenten, wobei der Verwalter zumindest den Transport von Daten zu den lokalen Agenten und die Zuteilung von Teilprogrammen an die lokalen Agenten steuert. Das erfindungsgemäße Verfahren und das erfindungsgemäße System 1 erlauben in vorteilhafter Weise den Aufbau hoch performanter Rechensysteme, die kostengünstig und gut skalierbar sind. So können die Kosten, die zum Zeitpunkt der Einreichung dieser Anmeldung für so genannte Supercomputer anfallen, bei gleicher Rechenleistung und verringertem Energieverbrauch deutlich gesenkt werden.

Description

  • Gegenstand der vorliegenden Erfindung ist ein Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und ein entsprechendes System. Hierbei handelt es sich um ein Verfahren, bei dem ein Programm mindestens ein Teilprogramm umfasst, welches auf mindestens zwei lokalen Agenten durchgeführt wird.
  • Die Bereitstellung von Hoch- und Höchstleistungsrechnern zur Datenverarbeitung ist in den vergangenen Jahren immer kostenintensiver geworden. Neben auf spezielle Hochleistungshardware zurückgreifende Spezialrechner, die in Anschaffung und Unterhalt hohe Kosten verursachen, wurde vermehrt auf sogenannte Cluster aus Rechnern zurückgegriffen. Diese stellen einen Rechnerverbund dar, bei dem die zu erledigenden Aufgaben auf mehrere üblicherweise ein und dieselbe Hardware umfassende parallel arbeitende Computer verteilt wird.
  • Hiervon ausgehend liegt der vorliegenden Erfindung die Aufgabe zugrunde, die aus dem Stand der Technik bekannten Nachteile zumindest teilweise zu überwinden.
  • Diese Aufgabe wird gelöst durch ein Verfahren und ein System mit den Merkmalen der unabhängigen Ansprüche. Abhängige Ansprüche sind auf vorteilhafte Weiterbildungen gerichtet.
  • Das erfindungsgemäße Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten umfassend mindestens ein Teilprogramm beruht darauf, dass ein Verwalter mindestens zwei lokale Agenten steuert und mit mindestens einem Teilprogramm versieht, wobei der Verwalter die Steuerung der lokalen Agenten basierend auf Steuerdaten durchführt, die mindestens eine der folgenden Informationen umfassen:
    • a) die Lokalisierung der zu verarbeitenden Daten und
    • b) die zur Verfügung stehende Rechenkapazität auf den lokalen Agenten, wobei der Verwalter zumindest den Transport von Daten zu den lokalen Agenten und die Zuteilung von Teilprogrammen an die lokalen Agenten steuert.
  • Unter einem Verwalter wird insbesondere ein Computer verstanden, auf dessen Hardware eine entsprechende Software abläuft. Unter einem lokalen Agenten wird insbesondere ein Computer verstanden, auf dessen Hardware eine entsprechende Software abläuft. Unter dem Transport von Daten wird das Auslesen der Daten aus entsprechenden Speichern und das Übertragen der Daten in einen anderen Speicher verstanden. Unter einem Teilprogramm wird auch allgemein eine Rechenaufgabe verstanden.
  • Ein lokaler Agent umfasst insbesondere die folgenden Komponenten:
    • 1. Hardware, insbesondere umfassend mindestens ein Speichermedium wie beispielsweise eine Festplatte, einen Flash-Speicher, ein Festkörper- oder Halbleiterlaufwerk (Solid State Drive, SSD) oder ähnliches, einen Grafikprozessor (Graphics Processing Unit, GPU), mindestens einen Mikroprozessor und entsprechende Schnittstellen (Interfaces); und
    • 2. Software.
  • Der lokale Agent weist insbesondere eine Software auf, die Daten lädt, Rechenaufgaben ausführt und Ergebnisse speichert. Der lokale Agent weist insbesondere Informationen auf, die das eigene Leistungsvermögen bezogen auf Rechenleistung und gespeicherte Daten und angeschlossene Systeme umfassen. Bevorzugt werden diese Informationen intern auf dem lokalen Agenten verwaltet und insbesondere an den Verwalter kommuniziert. Insbesondere ist der lokale Agent auch geeignet und bestimmt, den Resourcenverbrauch pro Rechenaufgabe zu ermitteln und an den Verwalter zu kommunizieren.
  • Insbesondere weisen die lokalen Agenten Prozessoren in Standardtechnologie auf, die ein definiertes Interface, eine Laufzeitumgebung, einen internen Datenspeicher und einen Metadatenspeicher aufweisen und durch diese definiert sind. Lokale Agenten sind insbesondere in der Lage, entsprechende Arbeitsaufträge in Form von Teilprogrammen und/oder Rechenaufgaben selbstständig auszuführen. Bevorzugt wird das erfindungsgemäße Verfahren so durchgeführt, dass ein lokaler Agent die entsprechenden Ergebnisse des Teilprogramms und/oder der Rechenaufgabe an den Verwalter kommuniziert. Bevorzugt wird die Speicherung von Daten entweder in einem lokalen Filesystem auf dem lokalen Agenten, insbesondere in komprimierter und/oder verschlüsselter Form oder in einem externen Applikationsspeicher durchgeführt.
  • Bevorzugt umfasst ein lokaler Agent mindestens einen Plattenspeicher umfassend mindestens eine Festplatte, einen schnellen Datenspeicher (Randomn Access Memory, RAM), eine schnelle Recheneinheit umfassend mindestens einen Grafikprozessor, und ein Mikroprozessor zur Verarbeitung der Kommunikation und Transferleistungen. Bevorzugt werden dabei die lokalen Agenten so gesteuert, dass die zu verarbeitenden Daten auf dem lokalen internen Speicher der Grafikprozessoren gehalten werden als eine Art „In-Memory Database”.
  • Lokale Agenten haben folgende Fähigkeiten und Funktionen:
    • – das Holen (Laden) externer Daten;
    • – das Ausführen lokaler Berechnungen;
    • – das Ausführen externer Berechnungen;
    • – das Schreiben externer Daten;
    • – die Beantwortung von Fragen oder Anfragen bezüglich externer Daten;
    • – die Beantwortung von Fragen oder Anfragen bezüglich interner Daten; und
    • – die Lieferung von internen Daten.
  • Unter dem Ausführen externer Berechnungen wird die Steuerung der Durchführung einer Berechnung auf einem externen Rechner, also die Steuerung eines anderen Rechners verstanden. In diesem Falle übernimmt also auch der lokale Agent Steueraufgaben für einen Drittrechner. Dies ist insbesondere dann von Vorteil, wenn ein bestehendes System erweitert werden soll und/oder die Migration von Anwendungen von anderen Rechnern in das System gemäß der vorliegenden Erfindung stufenweise erfolgen soll.
  • Bevorzugt wird das erfindungsgemäße Verfahren so durchgeführt, dass der Verwalter auf eine bestimmte Anzahl üblicher lokaler Agenten (beispielsweise einen üblichen Pool oder Cluster) zurückgreifen kann, jedoch gleichzeitig in Kontakt mit einer weiteren Anzahl (einem oder mehr) potentiellen lokalen Agenten, die üblicherweise nicht vom Verwalter gesteuert werden. Jedoch kann dieser, wenn auf den potentiellen lokalen Agenten Rechenleistung zur Verfügung steht, die nicht auf diesem für andere Prozesse genutzt wird. Insbesondere ist es so möglich, die Resourcen eines Grafikprozessors auf einem potentiellen lokalen Agenten zu nutzen, die gerade nicht benötigt werden.
  • Das erfindungsgemäße Verfahren kann insbesondere auch mit lokalen Agenten mit unterschiedlicher Hardware eingesetzt werden. So ist es beispielsweise möglich, das entsprechend eingesetzte System unproblematisch mit neuen lokalen Agenten zu erweitern, ohne dass dies den Betrieb stören würde.
  • Bevorzugt wird eine einheitliche Programmiersprache vorzusehen, durch welches das System für den Anwender als ein einziges Rechnersystem wahrnehmbar wird. Bevorzugt ist ein Mechanismus vorgesehen, der die einheitliche Programmiersprache in eine auf den jeweiligen lokalen Agenten verständliche Programmiersprache umsetzt.
  • Die Steuerung der lokalen Agenten erfolgt bevorzugt von einem Verwalter, der eine zentrale Datenbank (Inventory) der lokalen Agenten und eine Metadatenbank umfasst. Die Metadatenbank enthält Informationen über die Position der gespeicherten Daten, also Informationen, aus denen sich schließen lässt, auf welcher Einheit, beispielsweise einem lokalen Agenten oder einem externen Applikationsspeicher, die Daten gespeichert sind und/oder Informationen über die Rechenmöglichkeit, also Informationen über die grundsätzliche und/oder die aktuell verfügbare Rechenkapazität auf den jeweiligen lokalen Agenten. Das Inventory dokumentiert pro lokalem Agenten die Rechenmöglichkeiten, also die grundsätzliche Rechenkapazität des lokalen Agenten, einen Performanceindikator und/oder einen Usageindikator. Basierend auf diesen Daten wird in einer bevorzugten Ausgestaltung entschieden, auf welchem lokalen Agenten die jeweilige Rechenaufgabe ausgeführt wird.
  • Unter der grundsätzlichen Rechenkapazität wird die vollständige prinzipiell oder grundsätzlich mögliche Rechenleistung des entsprechenden lokalen Agenten verstanden. Der Performanceindikator ist ein Maß für die Leistungsfähigkeit des entsprechenden lokalen Agenten. In ihm werden Faktoren wie die Leistung des mindestens einen zentralen Mikroprozessors (central processing unit, CPU), gegebenenfalls des mindestens einen Grafikprozessors, die Größe des Speichers, etc. abgebildet. Unter dem Usageindikator wird eine Messgröße verstanden, in die Größen wie die aktuelle Auslastung der CPU und gegebenenfalls des Grafikprozessors, die verbrauchte Rechenzeit, etc. einfließen.
  • Bevorzugt wird durch eine Programmierumgebung mit Hilfe einer Metasprache das gesamte Funktionsspektrum der Programmierumgebung definiert, bevorzugt umfasst die Programmierumgebung eine Eventschnittstelle und ein Scheduler, die für eine gesteuerte Ausführung der jeweiligen Rechenaufgaben auf den beteiligten lokalen Agenten verantwortlich sind. Unter einer Eventschnittstelle wird eine definierte Schnittstelle der Programmierumgebung verstanden, über die Ereignisse (Events) an die Programmierumgebung zur Auslösung einer Aktion geschickt werden können. Bei diesen Events kann es sich beispielsweise um Interrupts oder eine Systemveränderung handeln, also beispielsweise die Mitteilung, dass eine bestimmte Datei existiert, dass sich ein Dateninhalt geändert hat etc.
  • Die Provisionierung, also die Verteilung der Teilprogramme auf die verschiedenen lokalen Agenten, erfolgt bevorzugt wie folgt: Pro Rechenaufgabe werden in den lokalen Agenten die Nutzungszeiten, also die benötigte Zeit pro Rechenaufgabe, dokumentiert und werden an den Verwalter kommuniziert. In dessen Inventory erfolgt eine bevorzugt eine Abrechnung der verbrauchten Zeiten basierend auf hinterlegten Rechenkosten pro lokalem Agenten. Das Inventory des Verwalters enthält für jeden lokalen Agenten die Kosten pro Zeiteinheit und pro Datenvolumen.
  • Die Provisionierung erfolgt insbesondere so, dass eine Optimierung im Hinblick auf die Energieeffizient, die Kosteneffizient und/oder die Zeiteffizienz bei der Abarbeitung des jeweiligen Programms erfolgt. Bevorzugt ist es möglich, gleiche Rechenaufgaben an lokale Agenten unterschiedlicher Ausgestaltung, also insbesondere unterschiedlicher Architektur zu delegieren. Dies gestattet in vorteilhafter Weise die Migration von bestimmten Programmen von alter Hardware auf neue Hardware bei gleichzeitiger Redundanz während der Migrationsphase.
  • Bevorzugt wird bei der Speicherung der im erfindungsgemäßen Verfahren benötigten und erzeugten Daten wie folgt verfahren: Durch die Verteilung der möglichen Rechenaufgaben auf mehrere Rechner wird eine Redundanz erzeugt, die die Ausfallsicherheit erhöht. Die Daten werden in den lokalen Agenten bevorzugt persistent, das heißt nicht flüchtig, gespeichert. Diese persistenten Daten gehen auch nach Beenden des Teilprogramms oder bei unvorhersehbarem Herunterfahren des lokalen Agenten nicht verloren. Durch diese Persistenz innerhalb der lokalen Agenten kann sichergesellt werden, dass auch beim Ausfall der Kommunikationswege zwischen lokalem Agenten und Verwalter die Funktion der lokalen Agenten gewährleistet bleibt.
  • Bevorzugt werden die Daten auf dem lokalen Agenten in einem Standardfileformat komprimiert und/oder verschlüsselt gespeichert.
  • Bevorzugt erfolgt die Kommunikation zwischen den lokalen Agenten und/oder zwischen den lokalen Agenten und dem Verwalter über mobile Agenten Bei einem mobilen Agenten handelt es sich insbesondere um einen Code, insbesondere einen ausführbaren Code, der zwischen lokalem Agenten und Verwalter und zwischen zwei lokalen Agenten transferiert werden kann. Mobile Agenten haben insbesondere die Eigenschaft, dass sie Zustände, Daten und/oder Programmcode transportieren kann. Dies bedeutet, dass man beispielsweise auch neuen, notwendigen Programmcode an einen oder mehrere lokale Agenten transferieren kann.
  • Gemäß einer vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens enthält zumindest ein Teil der lokalen Agenten mindestens einen Grafikprozessor (Graphics Processing Unit, GPU) und die entsprechende Verarbeitung von Daten erfolgt zumindest teilweise auf dem Grafikprozessor.
  • Die Verarbeitung der Daten auf einem Grafikprozessor hat Vorteile gegenüber der Verarbeitung auf einem üblichen Prozessor. Übliche Prozessoren sind so gestaltet, dass sie eine Vielzahl von Aufgaben, die zum Betrieb eines Computers notwendig sind, neben den üblichen Rechenleistungen erfüllen. Dies mindert die Performance und insbesondere die Performance pro Kaufpreis. Im Gegensatz dazu weisen Grafikprozessoren üblicherweise eine hohe grundsätzliche Rechenleistung aus und insbesondere pro Kaufpreis. So ist es vorteilhaft mit dem Einsatz von lokalen Agenten mit einem oder mehreren Grafikprozessoren zum Abarbeiten der Teilprogramme zu arbeiten.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung greift der Verwalter bei der Steuerung auf Steuerdaten zurück, die mindestens eine der folgenden Informationen umfassen:
    • a) die Art des mindestens einen Grafikprozessors eines lokalen Agenten;
    • b) die Anzahl der Grafikprozessoren eines lokalen Agenten;
    • c) die grundsätzliche Rechenleistung des mindestens einen Grafikprozessors eines lokalen Agenten; und
    • d) die Auslastung des Grafikprozessors des lokalen Agenten.
  • Insbesondere kann der Verwalter größere oder mehrere Teilprogramme lokalen Agenten zuweisen, die mehr Grafikprozessoren aufweisen als andere lokale Agenten. Insbesondere die Berücksichtigung der aktuellen Auslastung des Grafikprozessors des lokalen Agenten kann zu einer vorteilhaften besseren und schnelleren Ausführung des Programms führen. Die Art und/oder die grundsätzliche Rechenleistung des mindestens einen Grafikprozessors können ebenso in vorteilhafter Weise bei der Verteilung der Teilprogramme auf die verschiedenen lokalen Agenten zu einer effektiven Lastverteilung berücksichtigt werden. Bevorzugt werden mindestens drei dieser Informationen bei der Steuerung durch den Verwalter, also bei der Verteilung der Rechenaufgaben bzw. Teilprogramme auf die unterschiedlichen lokalen Agenten berücksichtigt.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens melden die lokalen Agenten mindestens einen der folgenden Parameter an den Verwalter:
    • a) die nötige Rechenzeit für die dem lokalen Agenten zugewiesene Teilprogramm;
    • b) die nötige Speicherkapazität zur Bearbeitung des dem lokalen Agenten zugewiesenen Teilprogramms;
    • c) die grundsätzliche Rechenleistung des lokalen Agenten;
    • d) die grundsätzliche Speicherkapazität des lokalen Agenten; und
    • e) die grundsätzliche Konfiguration des lokalen Agenten.
  • Die Kommunikation mindestens eines dieser Parameter an den Verwalter, bevorzugt mindestens zwei dieser Parameter an den Verwalter erlauben diesem eine effektive Verwaltung des gesamten Programms und dessen Verteilung auf die einzelnen lokalen Agenten.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens hält der Verwalter folgende Daten der lokalen Agenten vor:
    • a) den Energieverbrauch bei mindestens einem Auslastungszustand des lokalen Agenten;
    • b) die Betriebskosten des lokalen Agenten pro Zeiteinheit;
    • c) die Betriebskosten des lokalen Agenten pro Datenvolumen; und
    • d) die Transportkosten für den Transport von Code zwischen lokalem Agenten und Verwalter.
  • Die Kenntnis des Energieverbrauchs bei mindestens einem Auslastungszustand des lokalen Agenten, insbesondere bei voller Auslastung, und bevorzugt bei zwei oder mehr Auslastungszuständen erlaubt eine energieeffiziente Steuerung durch den Verwalter. Die Kenntnis der Betriebskosten des lokalen Agenten erlaubt eine Kostenoptimierte Steuerung durch den Verwalter. Die Transportkosten ergeben sich beispielsweise aus der Entfernung des lokalen Agenten vom Verwalter und der Leitungskapazität, sowie den Kosten für die Bereitstellung der Leitung.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens erfolgt die Verteilung der Teilprogramme auf die lokalen Agenten basierend auf einem Algorithmus, der mindestens eine der folgenden Größen minimiert:
    • a) den Energieverbrauch zur Abarbeitung des Programmes;
    • b) die entstehenden Kosten zur Abarbeitung des Programmes; und
    • c) die zur Abarbeitung des Programmes benötigte Zeit.
  • Basierend auf den dem Verwalter vorliegenden Informationen kann eine Optimierung auf einen möglichst geringen Energieverbrauch, möglichst geringe Kosten oder eine möglichst kurze Zeit zur Abarbeitung des Programmes erfolgen. Alternativ können auch zwei dieser Größen oder alle drei Größen optimiert werden, wobei es möglich ist, eine Gewichtung beispielsweise auf einen möglichst geringen Energieverbrauch unter in Kaufnehmen einer etwas längeren Rechenzeit vorzusehen oder ähnliches.
  • Ferner wird ein System geeignet und bestimmt zur Durchführung des erfindungsgemäßen Verfahrens vorgeschlagen. Dieses System umfasst Hardwarekomponenten und kann insbesondere auch auf einem Datenträger umfasst sein. Bevorzugt umfasst das System Hardware umfassend mindestens drei Recheneinheiten, davon ein Verwalter und zwei lokale Agenten. Die für das Verfahren offenbarten Details lassen sich auf das erfindungsgemäße System übertragen und anwenden, wobei hier geeignete Mittel zur Durchführung der entsprechenden Verfahrensschritte ausgebildet sind.
  • Im Folgenden soll die Erfindung kurz anhand der beigefügten Figur erläutert werden, die schematisch ein Ausführungsbeispiel zeigt. Die Erfindung ist nicht auf die dort gezeigten Details beschränkt.
  • 1 zeigt schematisch ein System 1 zur Datenverarbeitung gemäß der vorliegenden Erfindung. Das System 1 umfasst einen Verwalter 2 und mehrere lokale Agenten 3. Diese sind über entsprechende Verbindungen 4, die der Übersichtlichkeit halber nicht alle mit einem Bezugszeichen versehen sind, mit dem Verwalter 2 verbunden. Die lokalen Agenten 3 umfassen jeweils mehrere Grafikprozessoren (nicht gezeigt), Plattenspeicher (nicht gezeigt) und einen Mikroprozessor (nicht gezeigt). Der Verwalter 3 enthält eine Metadatenbank und ein Inventory. Für jeden lokalen Agenten 3 ist in diesen Datenbanken gespeichert, welche grundsätzliche Rechenkapazität der lokale Agent 3 aufweist, wie hoch seine Auslastung ist, ebenso dessen Performanceindikator und Usageindikator. Weiterhin ist in der Metadadenbank des Verwalters 2 die Position jeder notwendiger Daten entweder auf einem lokalen Agenten 3 oder auf einem externen Applikationsspeicher 5 gespeichert, sowie die grundsätzliche Rechenkapazität der einzelnen lokalen Agenten 3. Aufgrund dieser Daten erfolgt die Verteilung der Teilprogramme durch den Verwalter 2 auf die lokalen Agenten 3.
  • Die lokalen Agenten 3 weisen Grafikprozessoren auf, die zum Berechnen der Rechenaufgaben/Teilprogramme eingesetzt werden. Diese sind preiswert, so dass kostengünstig eine hohe Rechenleistung bereitgestellt werden kann.
  • Weiterhin ist ein potentieller lokaler Agent 6 gezeigt, der nicht zum System 1 gehört, der aber ebenfalls mit dem Verwalter 2 verbindbar ist. Im Falle von voller Auslastung des Systems 1 und nur teilweiser Auslastung des potentiellen lokalen Agenten 6 kann dieser zumindest zeitweise in das System 1 eingebunden werden und so einerseits die Rechenleistung des Systems 1 erhöhen und andererseits die vorhandenen Resourcen im potentiellen lokalen Agenten 6 sinnvoll nutzen.
  • Das erfindungsgemäße Verfahren und das erfindungsgemäße System 1 erlauben in vorteilhafter Weise den Aufbau hoch performanter Rechensysteme, die kostengünstig und gut skalierbar sind. So können die Kosten, die zum Zeitpunkt der Einreichung dieser Anmeldung für so genannte Supercomputer anfallen, bei gleicher Rechenleistung und verringertem Energieverbrauch deutlich gesenkt werden.
  • Bezugszeichenliste
  • 1
    System
    2
    Verwalter
    3
    lokaler Agent
    4
    Verbindung
    5
    externer Applikationsspeicher
    6
    potentieller lokaler Agent

Claims (7)

  1. Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten umfassend mindestens ein Teilprogramm, bei dem ein Verwalter mindestens zwei lokale Agenten steuert und mit mindestens einem Teilprogramm versieht, wobei der Verwalter die Steuerung der lokalen Agenten basierend auf Steuerdaten durchführt, die mindestens eine der folgenden Informationen umfassen: a) die Lokalisierung der zu verarbeitenden Daten und b) die zur Verfügung stehende Rechenkapazität auf den lokalen Agenten, wobei der Verwalter zumindest den Transport von Daten zu den lokalen Agenten und die Zuteilung von Teilprogrammen an die lokalen Agenten steuert.
  2. Verfahren nach Anspruch 1, bei dem zumindest ein Teil der lokalen Agenten mindestens einen Grafikprozessor (Graphics Processing Unit, GPU) enthält und die entsprechende Verarbeitung von Daten zumindest teilweise auf dem Grafikprozessor erfolgt.
  3. Verfahren nach Anspruch 2, bei dem der Verwalter bei der Steuerung auf Steuerdaten zurückgreift, die mindestens eine der folgenden Informationen umfassen: a) die Art des mindestens einen Grafikprozessors eines lokalen Agenten; b) die Anzahl der Grafikprozessoren eines lokalen Agenten; c) die grundsätzliche Rechenleistung des mindestens einen Grafikprozessors eines lokalen Agenten; und d) die Auslastung des Grafikprozessors des lokalen Agenten.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die lokalen Agenten mindestens einen der folgenden Parameter an den Verwalter melden: a) die nötige Rechenzeit für die dem lokalen Agenten zugewiesene Teilprogramm; b) die nötige Speicherkapazität zur Bearbeitung des dem lokalen Agenten zugewiesenen Teilprogramms; c) die grundsätzliche Rechenleistung des lokalen Agenten; d) die grundsätzliche Speicherkapazität des lokalen Agenten; und e) die grundsätzliche Konfiguration des lokalen Agenten.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Verwalter folgende Daten der lokalen Agenten vorhält: a) den Energieverbrauch bei mindestens einem Auslastungszustand des lokalen Agenten; b) die Betriebskosten des lokalen Agenten pro Zeiteinheit; c) die Betriebskosten des lokalen Agenten pro Datenvolumen; und d) die Transportkosten für den Transport von Code zwischen lokalem Agenten und Verwalter.
  6. Verfahren nach Anspruch 5, bei dem die Verteilung der Teilprogramme auf die lokalen Agenten basierend auf einem Algorithmus erfolgt, der mindestens eine der folgenden Größen minimiert: a) den Energieverbrauch zur Abarbeitung des Programmes; b) die entstehenden Kosten zur Abarbeitung des Programmes; und c) die zur Abarbeitung des Programmes benötigte Zeit.
  7. System geeignet und bestimmt zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche.
DE102010019783A 2010-05-06 2010-05-06 Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und entsprechendes System Pending DE102010019783A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102010019783A DE102010019783A1 (de) 2010-05-06 2010-05-06 Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und entsprechendes System
PCT/EP2011/057292 WO2011138430A2 (de) 2010-05-06 2011-05-06 Verfahren zum durchführen eines programmes zur verarbeitung von daten und entsprechendes system
US13/667,472 US20130061248A1 (en) 2010-05-06 2012-11-02 Method for executing a program for processing data, and corresponding system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010019783A DE102010019783A1 (de) 2010-05-06 2010-05-06 Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und entsprechendes System

Publications (1)

Publication Number Publication Date
DE102010019783A1 true DE102010019783A1 (de) 2011-11-10

Family

ID=44454059

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010019783A Pending DE102010019783A1 (de) 2010-05-06 2010-05-06 Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und entsprechendes System

Country Status (3)

Country Link
US (1) US20130061248A1 (de)
DE (1) DE102010019783A1 (de)
WO (1) WO2011138430A2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886310B2 (en) 2014-02-10 2018-02-06 International Business Machines Corporation Dynamic resource allocation in MapReduce

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5349682A (en) * 1992-01-31 1994-09-20 Parallel Pcs, Inc. Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US8446417B2 (en) * 2004-06-25 2013-05-21 Nvidia Corporation Discrete graphics system unit for housing a GPU
US8365181B2 (en) * 2004-07-12 2013-01-29 Hewlett-Packard Development Company, L.P. Method and system for guiding scheduling decisions in clusters of computers using dynamic job profiling
US8108844B2 (en) * 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US8205208B2 (en) * 2007-07-24 2012-06-19 Internaitonal Business Machines Corporation Scheduling grid jobs using dynamic grid scheduling policy
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US20090160867A1 (en) * 2007-12-19 2009-06-25 Advance Micro Devices, Inc. Autonomous Context Scheduler For Graphics Processing Units
US8225325B2 (en) * 2008-06-06 2012-07-17 Apple Inc. Multi-dimensional thread grouping for multiple processors
US8368701B2 (en) * 2008-11-06 2013-02-05 Via Technologies, Inc. Metaprocessor for GPU control and synchronization in a multiprocessor environment
US8502828B2 (en) * 2010-04-12 2013-08-06 Nvidia Corporation Utilization of a graphics processing unit based on production pipeline tasks

Also Published As

Publication number Publication date
WO2011138430A3 (de) 2012-04-05
WO2011138430A2 (de) 2011-11-10
US20130061248A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
DE102016221811B4 (de) Zuordnung von Ressourcen mit mehrschichtigem Speicher
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112012004747B4 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
CN108334409B (zh) 一种细粒度的高性能云资源管理调度方法
DE112019002981T5 (de) Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE112012004893T5 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE102006046717B4 (de) Dynamisch migrierende Kanäle
DE102011007714B4 (de) Verfahren für die Verwendung mit einem Batterieüberwachungssystem, Batterieüberwachungssystem und Verwendung des Verfahrens
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur
DE3650160T2 (de) Sonderzweckprozessor zur Übernahme vieler Betriebssystemfunktionen in einem grossen Datenverarbeitungssystem.
DE102007044137B4 (de) Nachfragebasierte Zuweisung von Verarbeitungsressourcen
DE102010019783A1 (de) Verfahren zum Durchführen eines Programmes zur Verarbeitung von Daten und entsprechendes System
DE202016107380U1 (de) Systeme zum Speichern und Auslesen von Inhalten
DE112019000308T5 (de) Computerprogrammprodukt und Recheneineit
DE102016203828A1 (de) Auf Zugriffsrechten beruhender Speicherfixierungsmechanismus
EP3901780A1 (de) Digitale schaltanordnung und verfahren zur konfiguration zumindest einer konfigurierbaren hardwarekomponente
DE102007023048A1 (de) Intelligentes System zur Bestimmung einer optimalen Partitionsgrösse in einer auf Bestellung fertigenden Umgebung
DE102019219260A1 (de) Verfahren zum Betreiben einer Recheneinheit
DE112021005394T5 (de) Tag-gesteuerte planung von datenverarbeitungsressourcen zur funktionsausführung
WO2014019722A1 (de) Vorrichtung und verfahren zur realisierung eines steuersystems mit hoher verfügbarkeit und/oder integrität
EP3217281A2 (de) Verfahren zur verwaltung der kartensoftware einer smartcard

Legal Events

Date Code Title Description
R012 Request for examination validly filed