Proste zadanie
Przykład wysyłania zadania wsadowego napisanego w Pythonie.
Do pracy będzie potrzebne środowisko Python, więc należy załadować moduł środowiskowy anaconda
lub miniconda
:
module load anaconda
Przejście do katalogu roboczego i utworzenie katalogu dla zadania:
cd /work/$USER
mkdir python-test
cd python-test
W pliku zadanie.py
należy umieścić następujący kod:
zadanie.py
print('Witaj świecie!')
Dla wygodnej metody przekazania parametrów zadania wykorzystamy skrypt:
wykonaj.sh
#!/usr/bin/env bash
#SBATCH --job-name=witaj # nazwa zadania
#SBATCH --partition=cpu # partycja (CPU/GPU)
#SBATCH --cpus-per-task=1 # jeden CPU
#SBATCH --time=00:05:00 # limit czasu wykonania zadania - 5min
#SBATCH --output=zadanie-%j.out # schemat pliku wynikowego %j - numer zadania
#SBATCH --mail-type=ALL # konfiguracja powiadomienia e-mail
#SBATCH --mail-user=WPISZ_SWOJ_PELEN_EMAIL # adres dla powiadomień e-mail
# Przykład wykonania skryptu Pythona w trybie wsadowym Slurm
# aktywacja modułu anaconda
module load anaconda
# przejście do katalogu roboczego
cd /work/$USER/python-test || exit -1
# Wykonanie skryptu
srun python zadanie.py
Przesłanie zadania do systemu kolejkowego Slurm:
sbatch wykonaj.sh
Postęp zakolejkowanego zadania możemy sprawdzić za pomocą squeue
:
squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
71 CPU witaj mprill R 0:01 1 c1n1
Postęp jego części oraz wynik przez sacct
:
JobID JobName Partition Account AllocCPUS State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
71 witaj CPU 1 COMPLETED 0:0
71.batch batch 1 COMPLETED 0:0
71.extern extern 1 COMPLETED 0:0
71.0 python 1 COMPLETED 0:0
W katalogu roboczym zgodnie z instrukcją #SBATCH -o hello-%j.out
został utworzony plik z wyjściem zwróconym przez zadanie:
less zadanie-71.out
Witaj świecie!