Ich versuche, einen Wert aus einer anderen Datei zu erhalten und verwende dies in einem SLURM-Submissionsskript. Allerdings bekomme ich einen Fehler, dass der Wert nicht numerisch ist, also nicht dereferenziert wird.
Hier ist das Skript:
%Vor% Wenn ich dies als normales Bash-Shell-Skript ausführe, gibt es die Anzahl der Procs korrekt aus und macht den korrekten mpirun
-Aufruf. Daher analysiert der awk
-Befehl die Anzahl der Procs korrekt und die Variable wird wie erwartet dereferenziert.
Wenn ich dies jedoch mit Hilfe von SLURM übergebe:
%Vor%Ich bekomme den Fehler:
%Vor%Kann mir jemand helfen?
Das wird nicht funktionieren. Was passiert, wenn Sie
ausführen? sbatch myscript.sh
ist, dass Slurm das Skript für diese speziellen #SBATCH-Zeilen analysiert, einen Job-Datensatz generiert und das Stapel-Skript irgendwo speichert. Das Stapelscript wird erst später ausgeführt, wenn der Job ausgeführt wird.
Sie müssen Ihren Workflow also etwas anders strukturieren und zuerst die Anzahl der benötigten Procs berechnen, bevor Sie den Job abschicken. Beachten Sie, dass Sie etwas wie
verwenden können sbatch -n $numProcs myscript.sh
, Sie müssen das Skript nicht automatisch generieren (auch mpirun sollte die Anzahl der Procs in Ihrer Zuweisung automatisch erhalten, keine Notwendigkeit, "-np" zu verwenden).