GNU/Linux >> Znalost Linux >  >> Linux

Použijte proměnnou Bash ve skriptu SLURM sbatch

Slurm přestane zpracovávat #SBATCH direktivy na prvním řádku spustitelného kódu ve skriptu. Pro uživatele, jejichž #SBATCH direktivy nejsou závislé na kódu, který se snaží spustit nad těmito direktivami, stačí zadat #SBATCH řádky nahoře.

Pokud, jako u OP, jsou vaše možnosti dávek závislé na příkazech, které jste umístili nad ně, viz další odpověď.

Dávkový skript může obsahovat volby, kterým předchází "#SBATCH" před všemi spustitelnými příkazy ve skriptu . sbatch přestane zpracovávat další direktivy #SBATCH, jakmile bude ve skriptu dosaženo první řádky bez komentáře.

Z dávkových dokumentů, můj důraz.


Tohle nebude fungovat. Co se stane, když spustíte

sbatch myscript.sh

je, že slurm analyzuje skript pro tyto speciální řádky #SBATCH, vygeneruje záznam úlohy a někde uloží dávkový skript. Dávkový skript se provede až později, když se úloha spustí.

Musíte tedy strukturovat svůj pracovní postup trochu jiným způsobem a před odesláním úlohy nejprve vypočítat počet procesů, které potřebujete. Všimněte si, že můžete použít něco jako

sbatch -n $numProcs myscript.sh

, nemusíte skript generovat automaticky (také mpirun by měl být schopen získat počet procesů ve vaší alokaci automaticky, není třeba používat "-np").


Linux
  1. Jak používat šifrované heslo ve skriptu Linux Bash Shell

  2. Bash skriptování (I)

  3. Proč nemohu použít CD ve skriptu Bash?

  1. Neobvyklé způsoby použití proměnných uvnitř Bash skriptů

  2. Použijte Expect ve skriptu Bash k zadání hesla příkazu SSH

  3. Jak používat zdrojový příkaz ve skriptu potrubí Jenkins

  1. Jak používat příkaz if else Conditionals ve skriptu Bash

  2. Spusťte příkaz bash na jenkins pipeline

  3. Exportujte proměnnou z bash a použijte ji v Pythonu