Grundlegendes zu Parallel Computing-Aufträgen
Die am häufigsten verwendeten Arten von parallelen Computing-Aufträgen, die Sie auf einem HPC Pack-Cluster ausführen können, sind: MPI-Aufträge, parametrische Aufräumaufträge, Aufgabenflussaufträge, Service Oriented Architecture (SOA)-Aufträgeund Microsoft Excel-Berechnungsabladevorgang Aufträge. HPC Pack bietet Auftrags- und Aufgabeneigenschaften, Tools und APIs, mit denen Sie verschiedene Arten von parallelen Computing-Aufträgen definieren und übermitteln können.
In diesem Thema:
Auslagerung von Microsoft Excel-Berechnungen
MPI-Auftrag
MS-MPI, eine Microsoft-Implementierung von Message Passing Interface (MPI), die für Windows entwickelt wurde, ermöglicht MPI-Anwendungen die Ausführung als Aufgaben auf einem HPC-Cluster.
Ein MPI-Vorgang ist systemintern parallel. Eine parallele Aufgabe kann abhängig von der Anwendung und der Software, die sie unterstützt, eine Reihe von Formen annehmen. Bei einer MPI-Anwendung besteht eine parallele Aufgabe in der Regel aus einer einzigen ausführbaren Datei, die gleichzeitig auf mehreren Kernen ausgeführt wird, wobei die Kommunikation zwischen den Prozessen erfolgt.
Das folgende Diagramm veranschaulicht einen parallelen Vorgang:
Für eine Aufgabe, die eine MPI-Anwendung ausführt, muss dem Aufgabenbefehl mpiexec
vorangestellt werden: Daher müssen Befehle für parallele Aufgaben im folgenden Format vorliegen: mpiexec [mpi_options] <myapp.exe> [arguments]
, wobei myapp.exe
der Name der auszuführenden Anwendung ist. Der Befehl mpiexec
verwendet eine Reihe von Argumenten, mit denen Sie die Platzierung des MPI-Prozesses, die Netzwerkaffinität und andere Laufzeitparameter steuern können. Weitere Informationen zu diesen Parametern finden Sie in der Microsoft HPC Pack-Befehlszeilenreferenz.
Anmerkung
Für parallele Aufgaben enthält Windows HPC Server 2008 ein MPI-Paket, das auf dem MPICH2-Standard des Argonne National Laboratory basiert. Die Microsoft-Implementierung von MPI, die als MS-MPI-bezeichnet wird, umfasst das Startprogramm mpiexec
, einen MPI-Dienst für jeden Knoten und ein Software Development Kit (SDK) für die Entwicklung von Benutzeranwendungen. Windows HPC Server 2008 unterstützt auch Anwendungen, die ihre eigenen parallelen Verarbeitungsmechanismen bereitstellen.
Weitere Informationen zum SDK finden Sie unter Microsoft HPC Pack.
Informationen zum Erstellen eines Einzelaufgaben- oder MPI-Auftrags finden Sie unter Define a Basic or MPI Task - Job Manager.
Parametrischer Aufräumauftrag
Ein parametrischer Aufräumauftrag besteht aus mehreren Instanzen derselben Anwendung, in der Regel einer seriellen Anwendung, die gleichzeitig ausgeführt wird, und mit Eingaben, die von einer Eingabedatei und ausgabe bereitgestellt werden, die an eine Ausgabedatei gerichtet ist. Die Eingabe und Ausgabe sind in der Regel eine Reihe von indizierten Dateien (z. B. Input1, Input2, Input3..., Output1, Output2, Output3...) eingerichtet, um sich in einem einzigen gemeinsamen Ordner oder in separaten gemeinsamen Ordnern zu befinden. Es gibt keine Kommunikation oder Interabhängigkeit zwischen den Aufgaben. Die Vorgänge können abhängig von den Ressourcen, die in einem Cluster verfügbar sind, bei ausführung des Auftrags parallel ausgeführt werden oder nicht parallel ausgeführt werden.
Das folgende Diagramm veranschaulicht einen parametrischen Aufräumauftrag:
Informationen zum Erstellen eines parametrischen Aufräumauftrags finden Sie unter Definieren einer parametrischen Aufräumaufgabe – Job Manager.
Aufgabenflussauftrag
In einem Vorgangsflussauftrag werden eine Reihe von im Gegensatz zu Vorgängen in einer vorgegebenen Reihenfolge ausgeführt, in der Regel, da eine Aufgabe vom Ergebnis eines anderen Vorgangs abhängt. Ein Auftrag kann viele Aufgaben enthalten, von denen einige parametrisch, einige serial und einige parallel sind. Sie können z. B. einen Vorgangsflussauftrag erstellen, der aus MPI- und parametrischen Vorgängen besteht. Sie können die Reihenfolge festlegen, in der Aufgaben ausgeführt werden, indem Sie Abhängigkeiten zwischen den Aufgaben definieren.
Das folgende Diagramm veranschaulicht einen Aufgabenflussauftrag:
Aufgabe 1 wird zuerst ausgeführt. Beachten Sie, dass nur Aufgaben 2 und 3 parallel ausgeführt werden können, da keines von der anderen abhängig ist. Aufgabe 4 wird ausgeführt, nachdem Aufgaben 2 und 3 beide abgeschlossen wurden.
Informationen zum Erstellen eines Aufgabenflussauftrags finden Sie unter Definieren von Aufgabenabhängigkeiten – Job Manager.
SOA-Auftrag
Service Oriented Architecture (SOA) ist ein Ansatz zum Erstellen verteilter, lose gekoppelter Systeme. In einem SOA-System werden unterschiedliche Rechenfunktionen als Softwaremodule verpackt, die als Dienstebezeichnet werden. Dienste können über ein Netzwerk verteilt und von anderen Anwendungen aufgerufen werden. Wenn Beispielsweise Anwendungen wiederholte parallele Berechnungen ausführen, können die Kernberechnungen als Dienste verpackt und in einem Cluster bereitgestellt werden. Dadurch können Entwickler peinlich parallele Probleme lösen, ohne den Code auf niedriger Ebene neu zu schreiben und Anwendungen schnell zu skalieren. Anwendungen können schneller ausgeführt werden, indem Kernberechnungen über mehrere Diensthosts verteilt werden (Computeknoten). Endbenutzer führen die Anwendung auf ihren Computern und Clusterknoten berechnungen aus.
Eine Client--Anwendung stellt eine Schnittstelle für den Endbenutzer bereit, um auf die Funktionalität eines oder mehrerer Dienste zuzugreifen. Entwickler können Cluster-SOA-Clientanwendungen erstellen, um Zugriff auf Dienste bereitzustellen, die in einem Windows HPC-Cluster bereitgestellt werden. Im Back-End sendet die Clientanwendung einen Auftrag, der eine Service- Aufgabe an den Cluster enthält, eine Sitzung mit dem Brokerknoten initiiert und Dienstanforderungen sendet und Antworten empfängt (Berechnungsergebnisse). Der Auftragsplaner auf dem Kopfknoten weist dem Dienstauftrag Ressourcen gemäß den Auftragsplanungsrichtlinien zu. Eine Instanz des Service--Vorgangs wird für jede zugeordnete Ressource ausgeführt und lädt den SOA-Dienst. Der Auftragsplaner versucht, die Ressourcenzuordnung basierend auf der Anzahl der Serviceanfragen anzupassen.
Anmerkung
Wenn der Client eine dauerhafte Sitzung erstellt hat, speichert der Broker alle Nachrichten mit MSMQ. Antworten, die vom Broker gespeichert werden, können jederzeit vom Client abgerufen werden, auch nach absichtlicher oder unbeabsichtigter Trennung.
Das folgende Diagramm veranschaulicht, wie ein SOA-Auftrag auf dem Cluster ausgeführt wird:
Weitere Informationen zum Erstellen von SOA-Clients für einen HPC-Cluster finden Sie unter SOA Applications and Microsoft HPC Pack.
Anmerkung
HPC Services für Excel verwenden die SOA-Infrastruktur, um Microsoft Excel-Berechnungen in einen Cluster zu entladen.
Entladen der Microsoft Excel-Berechnung
HPC Services für Excel, die in einigen Versionen von HPC Pack enthalten sind, unterstützen eine Reihe von Modellen zum Entladen von Excel-Berechnungen in einen HPC Pack-Cluster. Arbeitsmappen, die für die Clusterbeschleunigung geeignet sind, umfassen unabhängige Berechnungen, die parallel ausgeführt werden können. Viele komplexe und lange ausgeführte Arbeitsmappen werden iterativ ausgeführt, d. h., sie führen eine einzelne Berechnung mehrmals über verschiedene Eingabedatenmengen aus. Diese Arbeitsmappen können komplexe Vba-Funktionen (Microsoft Visual Basic for Applications) oder berechnungsintensive XLL-Add-Ins enthalten. HPC Services für Excel unterstützen das Entladen von Arbeitsmappen in den Cluster oder das Entladen von UDFs in den Cluster.
Microsoft Excel 2010 erweitert das UDF-Modell auf den Cluster, indem Excel 2010 UDFs in einem Windows HPC-Cluster ausgeführt werden können. Wenn ein unterstützter Cluster verfügbar ist, können Benutzer Excel 2010 anweisen, diesen Cluster zu verwenden, indem sie einen Clusterconnector auswählen und den Clusternamen in den Optionen Erweiterten des Dialogfelds Excel-Optionen angeben. Im Cluster funktionieren UDFs ähnlich wie herkömmliche UDFs, mit der Ausnahme, dass die Berechnung von einem oder mehreren Servern ausgeführt wird. Der hauptvorteil ist die Parallelisierung. Wenn eine Arbeitsmappe Aufrufe an lange ausgeführte UDFs enthält, können mehrere Server verwendet werden, um Funktionen gleichzeitig auszuwerten. Um auf dem Cluster ausgeführt werden zu können, müssen die UDFs in einer clustersicheren XLL-Datei enthalten sein.
Weitere Informationen finden Sie unter HPC Services für Excel.
Weitere Verweise
Informationen zu den Auftrags- und Aufgabeneigenschaften, mit denen Sie Ihre parallelen Computeraufträge definieren können, finden Sie unter:
Informationen zum Erstellen, Übermitteln und Überwachen von Aufträgen mithilfe des HPC-Auftrags-Managers finden Sie unter:
Informationen zum Erstellen, Übermitteln und Überwachen von Aufträgen mithilfe eines Eingabeaufforderungsfensters oder HPC PowerShell sowie für Entwicklerressourcen, einschließlich Informationen zur Verwendung des SDK, des SOA-Programmiermodells und des Offloadings von Excel-Berechnungen, finden Sie in weiteren Artikeln in diesem Dokumentationssatz.