1.1X Rescale CLI Advanced

Die App verwendet standardmäßig den SGE-Eingabeparser, um Informationen aus dem Laufzeitskript zu analysieren, die als Einstellungen für Rescale verwendet werden sollen, und um unerwünschte clusterspezifische Einstellungen im Eingabeübermittlungsskript (nicht im Wrapper-Skript) zu analysieren. Beispielsweise kann der Benutzer ein Skript mit dem Namen submit.sh das sieht so aus:

#RESCALE_NAME="Hello World!" 
module load hello-world 
source /home/rescale/environments/hello_world/usr/lib64/openmpi/bin/mpirun 
echo "hello-world" 
> $(hostname)

Der Parser versucht sicherzustellen, dass er die Gruppe bestimmte Zeile module load... um sicherzustellen, dass das Skript in dieser Zeile keinen Fehler verursacht. Es wird dann versuchen, alle Befehle zu entfernen, die die Umgebung ändern. In diesem Fall die Zeilen nach Quelle wird analysiert, damit es nicht mit der Rescale-Umgebung interferiert. Darüber hinaus versucht der Parser, absolute Referenzen auf ausführbare Dateien/Binärdateien zu entfernen, da es sehr wahrscheinlich ist, dass sich die ausführbare Datei nicht am selben Speicherort auf Rescale wie auf dem lokalen Cluster befindet. In diesem Fall wird der Verweis auf mpirun wird über die PATH CLI-Direktive in der Rescale-Umgebung referenziert. Das resultierende Skript wird dann in einer Datei mit dem Namen run.sh und wird so aussehen:

#!/bin/bash #RESCALE_NAME="Hallo Welt!" #Modul laden Hallo Welt #Quelle /home/rescale/environments/hello_world mpirun echo "Hallo Welt" > $(Hostname)

Der Befehl „Analyse neu skalieren“ wird auf ./run.sh. Dieses Skript wird zusammen mit den Eingabedateien zu Rescale hochgeladen.

Die App unterstützt die Verwendung von Rescale-spezifischen Anweisungen innerhalb des Übermittlungsskripts, sodass der Benutzer seine Jobs genau nach seinen Wünschen konfigurieren kann. Die aktuell verfügbaren Variablen sind unten aufgeführt. Wenn diese Variablen nicht enthalten sind, wird der Standardwert verwendet.


#RESCALE_CORES=<integer>
{1|2|4|8|16|32|64|128|...}

Die Anzahl der zu verwendenden Kerne. Abhängig von der Core Typ, die zulässigen Werte sind eine Teilmenge der aufgeführten Optionen. Der Standardwert für diese Option ist der SGE #$ -pe Wert.


#RESCALE_CORE_TYPE=<string>
{Emerald|Carbon|Ammonite|Peridot|Tantalum|Graphite|...}

Das Kerntyp neu skalieren zu verwenden. Siehe die Befehle Anweisungen zum Abrufen einer Liste gültiger Werte für diese Option finden Sie im Abschnitt „Informationen zum Abrufen einer Liste gültiger Werte für diese Option“ in diesem Dokument.


#RESCALE_NAME=<string>

Der Name Ihres Jobs. Der Standardwert für diese Option ist SGE #$ -N Wert.


#RESCALE_PROJECT_ID=<project name>

Verwenden Sie dies, wenn Aufträge einem Projekt zugewiesen werden müssen, wie in den Plattformeinstellungen des Unternehmens festgelegt.


#RESCALE_ANALYSIS=<string>
{abaqus|adina|aermod|ansys_cfx|ansys_fluent|...|user_included|...}

Die verwendete Analyse. Dies sollte auf einen Analysecodewert eingestellt werden. Die Befehle Abschnitt in diesem Dokument enthält Anweisungen zum Abrufen einer Liste gültiger Werte für diese Option. Der Standardwert ist ein beliebiger Analysename, der analysiert werden kann und im Abschnitt module or source Zeilen des Skripts.

Falls gewünscht, Benutzer der CLI-Version 1.1.209 oder höher (überprüfen Sie Ihre Version mit rescale-cli --version) kann mehrere RESCALE_ANALYSIS/RESCALE_ANALYSIS_VERSION Paaren.


#RESCALE_ANALYSIS_VERSION=<string>

Die spezifische Version der ausgewählten Analyse, die verwendet werden soll. Die Befehle Der Abschnitt in diesem Dokument enthält Anweisungen zum Abrufen einer Liste gültiger Werte für diese Option.

Dies ist eine optionale Einstellung. Wird sie weggelassen oder (ab CLI-Version 1.1.209) auf eine leere Zeichenfolge gesetzt, wird die neueste Version verwendet. Falls angegeben, sollte dies auf den Wert „versionCode“ für eine bestimmte Analyseversion gesetzt werden.

In Fällen, in denen der Benutzer mehrere Analysen bereitstellen möchte (verfügbar in CLI-Version 1.1.209+), alle Analysen ohne explizite Versionen (die die neueste verfügbare Version der Software verwenden) muss zuletzt angegeben werden. Hier sind beispielsweise zwei Möglichkeiten, einen Job mit der neuesten Version von analysis1 und einer bestimmten Version von analysis2 zu starten:

Option 1: Neueste explizit angeben (empfohlen):

#RESCALE_ANALYSIS=analysis1
#RESCALE_ANALYSIS_VERSION=
#RESCALE_ANALYSIS=analysis2
#RESCALE_ANALYSIS_VERSION=v2.0

Option 2: Verwenden Sie implizit die neueste Version von analysis1:

#RESCALE_ANALYSIS=analysis2
#RESCALE_ANALYSIS_VERSION=v2.0
#RESCALE_ANALYSIS=analysis1

#RESCALE_EXISTING_FILES=<comma delimited list of strings>

Beispielsweise: #RESCALE_EXISTING_FILES=<file1-ID>,<file2-ID>,<file3-ID>

Dieses Flag enthält die aufgelisteten Datei-IDs, sofern sie bereits in diesem Job in Rescale gespeichert sind. Das Abrufen der Datei-IDs ist nicht einfach und erfordert Zugriff auf die API. Bitte wenden Sie sich an den Rescale-Support (support@rescale.com) dafür. Wenn die aufgelisteten Datei-IDs nicht vorhanden sind, schlägt der Job fehl Validierungsprüfungen. Für diese Option gibt es keinen Standardwert.


#USE_RESCALE_LICENSE

Verwenden Sie die von Rescale bereitgestellten Lizenzen für den Analysecode. Wenn bereits vorhandene Lizenzen verwendet werden sollen, können diese mithilfe von CLI-Direktiven im Ausführungsskript eingerichtet werden.


#RESCALE_ENV_<varname>=<value>

Wird zum Festlegen der Lizenz verwendet Server Informationen zum Rescale-Cluster. Ersetzen Sie durch den Namen der CLI-Direktive und durch den Speicherort des Lizenzservers. Beispiel: #RESCALE_ENV_RLM_LICENSE=8112@license-proxy.rescale.com erstellt eine RLM_LICENSE CLI-Direktive gesetzt auf 8112@license-proxy.rescale.com auf den Clusterknoten.


#RESCALE_USER_DEFINED_LICENSE_SETTINGS=<stringified-json-value-of-license-settings> 

{"featureSets":[{"name":"USER_SPECIFIED","features":[{"name":"MPPDYNA","count":1000}]}]}}]}

Den benutzerdefinierten Lizenzeinstellungen sollte ein stringifiziertes JSON mit dem folgenden Schema übergeben werden:

  • featureSets:<Array> | Eine Reihe von Wörterbüchern mit Funktionssätzen
    • Ein Feature-Set ist ein Wörterbuch mit dem folgenden Schema:
      • name: <String> | Der Name des für die Lizenz verwendeten Funktionssatzes.
      • features: <Array> | Ein Array von Wörterbüchern, die die Lizenzeinstellungen enthalten name und der count für die Anzahl der zu nutzenden Lizenzen.
        • name: <String> | Der Name der Funktionslizenz.
        • count: <Integer> | Die Anzahl der zu verwendenden Funktionslizenzen.

#RESCALE_WALLTIME=<# of hours>

Ein optionaler Wert, mit dem die maximale Stundenzahl festgelegt wird, die dieser Job ausgeführt werden darf. Jobs, die diese Stundenzahl überschreiten, werden beendet. Wenn nicht angegeben, wird der Standardwert für die maximale Jobstundenzahl verwendet, der in den Einstellungen Ihres Rescale-Benutzerkontos angegeben ist.


#RESCALE_LOW_PRIORITY=<boolean>
{true, false}

Ein optionaler Wert, der zum Ausführen Ihres Jobs verwendet wird bei Bedarf Modus. Wenn „On Demand“ aktiviert ist, können Jobs zunächst in einen Warteschlange Zustand, bis Ressourcen verfügbar werden. Sobald dieser On-Demand-Job ausgeführt wird, kann er höchstens einmal beendet und neu gestartet werden. In diesem Fall können Jobs bis zur doppelten Laufzeit dauern. Wenn nicht angegeben, ist der Standardwert „false“, was zum On-Demand-Prioritätsmodus führt.

Es gibt einige zusätzliche erweiterte Einstellungen, die verwendet werden können, um den SSH-Zugriff auf den Head zu ermöglichen Knoten des Rescale-Clusters. Beachten Sie, dass dies zwar für die Untersuchung und Änderung der Ergebnisse eines Auftrags nützlich sein kann, sich jedoch negativ auf die Reproduzierbarkeit der Ergebnisse auswirkt, falls Sie den Auftrag in Zukunft klonen und erneut ausführen.

Derzeit gibt es keine Möglichkeit, die IP-Adresse des Hauptknotens über die CLI abzurufen. Sie müssen die Jobstatusseite in der Web-Benutzeroberfläche verwenden, um diese Informationen zu finden.


#RESCALE_INBOUND_SSH_CIDR=<string>
for example: #RESCALE_INBOUND_SSH_CIDR=50.123.22.112/32

Wird verwendet, um einen IP-Bereich zu definieren, der eingehenden SSH-Zugriff auf den Hauptknoten des Rescale-Clusters erlaubt. Wenn dieser Wert weggelassen wird, wird der in den Einstellungen Ihres Rescale-Benutzerkontos aufgeführte Standardwert verwendet.


#RESCALE_PUBLIC_KEY=<string>
for example: #RESCALE_PUBLIC_KEY=ssh-rsa AAAA...

Wird verwendet, um den öffentlichen Schlüssel festzulegen, der der Datei „authorized_keys“ des Hauptknotens im Rescale-Cluster hinzugefügt wird. Dadurch können Sie sich mit dem zugehörigen privaten Schlüssel per SSH mit dem Hauptknoten des Rescale-Clusters verbinden. Wenn dieser Wert weggelassen wird, wird der Standardwert aus Ihren Rescale-Benutzerkontoeinstellungen verwendet.

Ein Beispielskript, das sowohl auf SGE als auch auf Rescale funktioniert, könnte etwa so aussehen (das module Zeile wird auskommentiert und der absolute Verweis auf mpirun wird entfernt):

#!/bin/bash #RESCALE_NAME="Converge Sample" #RESCALE_CORES=32 #RESCALE_CORE_TYPE=Emerald #RESCALE_ANALYSIS=converge_open_mpi Modul laden converge/usr/bin/mpirun -np 32 converge-2.1.0

Ein Beispielskript, das nur mit Rescale funktioniert, könnte etwa wie folgt aussehen. Den Befehl für die Kommandozeile finden Sie in der Analysecodetabelle (separater Anhang).

#!/bin/bash #RESCALE_NAME="Converge Sample" #RESCALE_CORES=32 #RESCALE_CORE_TYPE=Emerald #RESCALE_ANALYSIS=converge_open_mpi converge-mpi -n all -v 2.1