Freigeben über


Konfigurationseigenschaften für den MPI-Clusterdebugger

Mit den Konfigurationseigenschaften des MPI-Clusterdebuggers können Sie festlegen, wie die Debugsitzung ausgeführt werden soll. Diese Informationen werden für die folgenden Aufgaben verwendet:

  • Auswählen des Clusters und der Knoten, auf denen die Debugsitzung ausgeführt werden soll

  • Angeben der Anzahl der auszuführenden Prozesse

  • Angeben der Bereitstellungsinformationen

  • Angeben der Skripts vor und nach dem Debuggen

In der folgenden Tabelle werden die Konfigurationseigenschaften für den MPI-Clusterdebugger beschrieben:

Konfigurationseigenschaften des MPI-Clusterdebuggers

Eigenschaft Beschreibung Standardwert

Umgebung ausführen

Gibt an, welcher Hauptknoten beim Starten des Debuggers auf dem Cluster verwendet werden soll, wie viele MPI-Prozesse zu starten sind und ggf. die Zuordnung von Prozessen pro Berechnungsknoten.

Für die Anforderung bestimmter Knoten und die selektive Zuordnung von Prozessen wählen Sie HPC-Knoten bearbeiten aus der Dropdownliste Umgebung ausführen. Das Dialogfeld Knotenauswahl wird geöffnet. Weitere Überlegungen finden Sie unter Auswahl bestimmter Knoten und Verwendung des Parameters "-hosts".

Alternativ können Sie auch localhost/<number of processes> angeben, um den Debugger lokal zu starten.

Dd560807.note(de-de,VS.100).gifHinweis:
Die in dieser Eigenschaft angegebene Ressourcenauswahl überschreibt alle Ressourcenzuordnungen, die in der Beschreibungsdatei des Einzelvorgangs festgelegt sind.

localhost/1

Bereitstellungsverzeichnis

Gibt das Verzeichnis an, in das die Projektausgabedateien beim Starten des Debuggers kopiert werden. Dieses Verzeichnis befindet sich normalerweise auf dem Hauptknoten des Clusters und muss eine Netzwerkfreigabe sein, die von allen Berechnungsknoten der Debugsitzung gelesen werden kann.

Die Verzeichnisfreigabe CcpSpoolDir wird erstellt, wenn HPC Pack 2008 auf dem Hauptknoten installiert ist.

Wenn kein Bereitstellungsverzeichnis vorhanden ist und Sie im angegebenen Stammverzeichnis über eine Schreibberechtigung verfügen, wird das Bereitstellungsverzeichnis automatisch erstellt.

Lokales Debugging:

Keine

Clusterdebugging:

\\headnode\CcpSpoolDir\$(UserName)\$(ProjectName)

Arbeitsverzeichnis

Gibt das von den jeweiligen Prozessen verwendete Arbeitsverzeichnis an. Hier wird die ausführbare Datei ausgeführt.

Wenn während des Clusterdebuggings dieses Verzeichnis nicht identisch mit dem Bereitstellungsverzeichnis ist, werden die Dateien vom Bereitstellungsverzeichnis in die Arbeitsverzeichnisse der Berechnungsknoten kopiert.

Lokales Debugging:

Das Ausgabeverzeichnis für das Visual Studio-Projekt.

Clusterdebugging:

Das Verzeichnis %tmp%.

Anwendungsbefehl

Gibt den Namen oder den Pfad der Anwendung an, die MPI auf den einzelnen Clusterknoten ausführt (dabei handelt es sich um die Anwendung, die Sie in Visual Studio debuggen). Bei dem Pfad kann es sich um eine freigegebene Ressource oder um einen lokalen Pfad handeln

Der Debugger kopiert die Anwendungsdatei in den Bereitstellungsordner.

$(TargetFileName)

Anwendungsargumente

Gibt Argumente an, die an die Anwendung übergeben werden sollen.

Keine

MPIShim-Speicherort

Gibt den vollständigen Pfad zur ausführbaren Datei "MPIshim" auf dem Entwicklungscomputer an. Visual Studio versucht, "MPIshim" aus diesem Verzeichnis in das Bereitstellungsverzeichnis zu kopieren.

"MPIshim" ist in Visual Studio enthalten und wird mit den Komponenten für das Remotedebuggen installiert, um das parallele Debuggen zu ermöglichen.

Bei einem vollständig benutzerdefinierten Start des MPI-Clusterdebuggers können Sie für diese Eigenschaft einen Wert festlegen.

%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger

Befehl „MPIExec“

Gibt den vollständigen Pfad für das MPI-Programm an, das den Start Ihrer MPI-Anwendung koordiniert.

Wenn auf Ihren Berechnungsknoten eine andere MPI-Bibliotheksimplementierung installiert ist und Sie zum Starten der Anwendung den zugehörigen MPI-Stapel verwenden möchten, können Sie mit dieser Eigenschaft den vollständigen Pfad für die EXE-Datei auf dem jeweiligen Berechnungsknoten angeben. Wenn der Pfad nicht auf allen Knoten identisch ist, müssen Sie "MPIexec.exe" und die abhängigen Bibliotheken zur Eigenschaft Zusätzliche bereitzustellende Dateien für den Debugger hinzufügen.

Wenn der angegebene MPI-Stapel den Parameter -hosts nicht unterstützt, können unter bestimmten Umständen Laufzeitfehler auftreten. Weitere Informationen finden Sie unter Auswahl bestimmter Knoten und Verwendung des Parameters "-hosts".

MPIexec.exe

Zusätzliche MPIExec-Argumente

Gibt zusätzliche Argumente an, die an "MPIexec.exe" übergeben werden sollen. Sie können beispielsweise zusätzliche Argumente verwenden, um Umgebungsvariablen für die mit "MPIexec.exe" gestarteten Prozesse festzulegen.

Wenn Sie den Parameter -hosts angeben, können unter bestimmten Umständen Laufzeitfehler auftreten. Weitere Informationen finden Sie unter Auswahl bestimmter Knoten und Verwendung des Parameters "-hosts".

Weitere Informationen zum Befehl MPIexec finden Sie unter mpiexec Command Reference (https://go.microsoft.com/fwlink/?LinkId=144910) (möglicherweise in englischer Sprache).

Keine

MPI-Netzwerksicherheitsmodus

Gibt die IP-Adressen an, die eine Verbindung zur aktuellen Instanz von Visual Studio herstellen dürfen.

Es stehen drei Sicherheitsmodi zur Verfügung:

  • Nur Verbindungen aus einem lokalen Subnetz akzeptieren

  • Verbindungen aus einem bestimmten Adressbereich akzeptieren

    Dd560807.Important(de-de,VS.100).gif Hinweis:
    Wenn Sie diese Option wählen, müssen Sie mit der Eigenschaft MPI-Netzwerkfilter den Adressbereich festlegen.

  • Verbindungen von allen Adressen akzeptieren

Verbindungen von allen Adressen akzeptieren

MPI-Netzwerkfilter

Gibt den IP-Adressbereich an, von dem Verbindungen akzeptiert werden. Geben Sie die Start-IP-Adresse und die Subnetzmaske für diesen Bereich an.

Ein Netzwerkfilter mit den Werten 192.168.0.1/255.255.255.0 zum Beispiel umfasst alle Adressen zwischen 192.168.0.1 und 192.168.0.254.

Dd560807.Important(de-de,VS.100).gif Hinweis:
Um diesen Filter zu übernehmen, wählen Sie in MPI-Netzwerksicherheitsmodus die Option Verbindungen aus einem bestimmten Adressbereich akzeptieren aus.

Keine

Debuggertyp

Gibt den Debuggertyp für den aktuell ausgeführten Code an: systemeigen, verwaltet, gemischt oder Skript.

Auto

Der Debuggertyp wird basierend auf dem Inhalt der EXE-Datei ausgewählt.

Auftragsbeschreibungsdatei

Gibt den Pfad für die Auftragsbeschreibungsdatei (XML) an, in der Aufgaben enthalten sind, die dem Debugvorgang hinzugefügt werden sollen. Die in dieser Datei angegebenen Aufgaben werden vor den vom Debugger erstellten Aufgaben hinzugefügt (der Debugger erstellt eine Bereitstellungs-, eine Debug- und eine Bereinigungsaufgabe).

Dd560807.note(de-de,VS.100).gifHinweis:
Die in den Eigenschaften des Clusterdebuggers ausgewählten Ressourcen überschreiben alle Ressourcenzuordnungen, die in der Auftragsbeschreibungsdatei festgelegt sind.

Um eine Auftragsbeschreibungsdatei aus einem neuen oder in der Warteschlange befindlichen Auftrag in der HPC-Auftrags-Manager-Konsole zu erstellen, klicken Sie im Dialogfeld Neuer Auftrag bzw. Auftrag anzeigen auf Auftrag speichern unter.

Keine

Zusätzlich bereitzustellende Dateien

Gibt Dateien und Verzeichnisse an, die zusätzlich zu den Dateien und Verzeichnissen, die vom Projekt und dessen Abhängigkeiten benötigt werden, in das Bereitstellungsverzeichnis kopiert werden sollen.

Keine

Zeitlimit des Zeitplanungsmoduls (ms)

Gibt die zeitliche Dauer (in Millisekunden) an, während der der Debugger versucht, eine Verbindung zum Hauptknoten herzustellen. Nach Ablauf der Zeit wird der Hauptknoten als ungültig betrachtet.

5000 Millisekunden

CRT bereitstellen

Gibt an, ob Visual Studio mit der Anwendung die C-Laufzeitassemblys (C Runtime, CRT) bereitstellt.

Wenn die Option Ja ausgewählt ist, werden die CRT-Assemblys mit der Anwendung bereitgestellt.

Wenn die Option Nein ausgewählt ist, werden die CRT-Assemblys nicht mit der Anwendung bereitgestellt.

Wenn die Multithreaddebug-DLLs statisch verknüpft sind, müssen Sie keine CRT-Dateien bereitstellen. Sind die Multithreaddebug-DLLs dynamisch verknüpft, müssen Sie die CRT-Dateien bereitstellen.

Ja

Bereitstellungsverzeichnis löschen

Gibt an, ob Visual Studio das Bereitstellungsverzeichnis nach dem Debuggen löscht.

Wird Ja ausgewählt, wird das Bereitstellungsverzeichnis gelöscht und die freigegebene Ressource entfernt, sobald der Debugger stoppt.

Dd560807.note(de-de,VS.100).gifHinweis:
Wenn das Bereitstellungsverzeichnis außer den von Visual Studio dort gespeicherten Dateien weitere Dateien enthält, wird es nicht gelöscht. Wenn Ihre Anwendung zum Beispiel Ausgaben in das Bereitstellungsverzeichnis erzeugt, sollten Sie ein Skript nach dem Debuggen verwenden, um das Verzeichnis zu löschen.

Wird Nein ausgewählt, wird das Bereitstellungsverzeichnis nicht gelöscht.

Ja

Skript vor dem Debuggen

Gibt den Pfad für das Skript an, das vor dem Debuggen ausgeführt wird. Das Skript wird auf demselben Computer wie Visual Studio ausgeführt.

Sie können ein Skript vor dem Debuggen beispielsweise verwenden, um Daten für Ihre Anwendung auf dem Knoten bereitzustellen oder um die Firewalleinstellungen des Clusters so anzupassen, dass der Remotedebugger zugelassen wird.

Keine

Argumente des Skripts vor dem Debuggen

Gibt die Argumentzeichenfolge an, die an das Skript vor dem Debuggen übergeben wird.

Keine

Skript nach dem Debuggen

Gibt den Pfad für das Skript an, das nach dem Debuggen ausgeführt werden soll.

Sie können ein Skript nach dem Debuggen beispielsweise verwenden, um bereitgestellte Daten oder von Ihrer Anwendung erzeugte Ausgabedateien zu löschen oder um die Firewalleinstellungen des Clusters so anzupassen, dass der Remotedebugger nach der Debugsitzung nicht mehr zugelassen wird.

Keine

Argumente des Skripts nach dem Debuggen

Gibt die Argumentzeichenfolge an, die an das Skript nach dem Debuggen übergeben wird.

Keine

Auswahl bestimmter Knoten und Verwendung des Parameters "-hosts"

Wenn Sie den MPI-Clusterdebugger konfigurieren, müssen Sie den zu verwendenden Cluster und die Anzahl der zu startenden Prozesse angeben. Optional können Sie bestimmte Knoten auswählen, die für die Debugsitzung verwendet werden sollen.

Der MPI-Clusterdebugger verwendet den Parameter -hosts mit dem Befehl MPIexec, um die Prozesse zu platzieren, wenn die beiden folgenden Bedingungen erfüllt sind:

  1. Sie wählen bestimmte Knoten aus, die für die Debugsitzung verwendet werden sollen.

  2. Die Anzahl der ausgewählten Prozesse ist kleiner als die Anzahl der Ressourcen auf den erforderlichen Knoten.

Wenn Sie bestimmte Knoten anfordern und die Gesamtzahl der Ressourcen auf den erforderlichen Knoten größer als die Anzahl der angegebenen Prozesse ist, verwendet der Debugger den Parameter -hosts zum Platzieren der Prozesse. Wenn Sie beispielsweise zwei Knoten (NODE01 und NODE02) mit je vier Cores auswählen und angeben, dass Sie sechs Prozesse starten möchten, übergibt der Debugger das folgende Argument an "MPIexec.exe": -hosts 2 NODE01 4 NODE2 2.

Tipp

Verwendet der MPI-Clusterdebugger den Parameter -hosts zum Platzieren der Prozesse, und liegt eine der folgenden Bedingungen vor, tritt ein Laufzeitfehler auf:

  • Sie haben einen MPI-Stapel angegeben, der den Parameter -hosts nicht unterstützt.

  • Sie haben den Parameter -hosts in der Eigenschaft Zusätzliche MPIExec-Argumente angegeben.

Siehe auch

Konzepte

Gewusst wie: Konfigurieren und Starten des MPI-Clusterdebuggers
Exemplarische Vorgehensweise: Starten des MPI-Clusterdebuggers in Visual Studio 2010
Debuggen von MPI-Anwendungen auf einem HPC-Cluster

Weitere Ressourcen

mpiexec Command Reference