1.0X: CLI-Erweiterung neu skalieren

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:

#!/bin/bash #RESCALE_NAME="Hallo Welt!" Modul laden Hallo-WeltQuelle /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 "hello-world" > $(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 Einstellungsdirektiven 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>
{Marble|Nickel|Emerald|Iron|Gold|Obsidian|...}

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.


#RESCALE_ANALYSIS_VERSION=<string>

Die zu verwendende Version der ausgewählten Analyse. Diese Einstellung ist optional. Wird sie weggelassen, wird die neueste Version verwendet. Falls angegeben, sollte der Wert „versionCode“ für eine bestimmte Analyseversion verwendet werden. Die Befehle Der Abschnitt in diesem Dokument enthält Anweisungen zum Abrufen einer Liste gültiger Werte für diese Option.


#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_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 läuft, 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=Nickel #RESCALE_ANALYSIS=converge_open_mpi module load 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=Nickel #RESCALE_ANALYSIS=converge_open_mpi converge-mpi -n all -v 2.1