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 anacondaPrzejście do katalogu roboczego i utworzenie katalogu dla zadania:
cd /work/$USER
mkdir python-test
cd python-testW 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.pyPrzesłanie zadania do systemu kolejkowego Slurm:
sbatch wykonaj.shPostę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.outWitaj świecie!