Skrypty
Aby uruchomić zadanie na naszych zasobach musi ono być obudowane w odpowiedni skrypt.
Poniżej znajdują się przykładowe skrypty uruchomieniowe w PBS i SLURM
Skrypt należy indywidualnie zmodyfikować chcąc uruchomić zdanie wykorzystujące konkretne oprogramowanie zainstalowane na naszych klastrach
Skrypt uruchomieniowy PBS:
#!/bin/bash #PBS -l nodes=1:ppn=4 #PBS -l mem=4gb #PBS -l walltime=01:00:00 #PBS -o $PBS_JOBID.stdout #PBS -e $PBS_JOBID.stderr # SEKCJA MODUŁ Ustawiamy sciezki lub ladujemy odpowiednie moduly module load nazwa_modułu # Ustawiamy zmienna $TMPDIR export TMPDIR="/tmp/lustre_shared/${USER}/${PBS_JOBID}" # Ustawiamy zmienne aplikacji export SCR=${TMPDIR} # Ustawiamy zmienne pomocnicze INPUT_DIR="input" OUTPUT_DIR="output" OUTPUT_FILE="OUTPUT" # Tworzymy katalog tymczasowy mkdir -p ${TMPDIR} # Kopiujemy dane wejsciowe do katalogu wskazywanego zmienna $TMPDIR cp ${PBS_O_WORKDIR}/${INPUT_DIR}/* ${TMPDIR} # Przechodzimy do katalogu $TMPDIR cd $TMPDIR # Naglowek cat << EOF ------------------------------------------------------------------------------- Start of calculations [$(date)] EOF echo -n 'Job is running on node: ';awk '!x[$0]++' $PBS_NODEFILE | tr '\n' ' ' echo -e '\n' cat << EOF ------------------------------------------------------------------------------- Support: support-hpc@man.poznan.pl ------------------------------------------------------------------------------- Variables ------------------------------------------------------------------------------- PBS: qsub is running on $PBS_O_HOST PBS: originating queue is $PBS_O_QUEUE PBS: executing queue is $PBS_QUEUE PBS: working directory is $PBS_O_WORKDIR PBS: execution mode is $PBS_ENVIRONMENT PBS: job identifier is $PBS_JOBID PBS: job name is $PBS_JOBNAME PBS: node file is $PBS_NODEFILE PBS: PATH = $PBS_O_PATH EOF # SEKCJA RUN Wykonujemy obliczenia #Tutaj należy wpisać komendę wykonującą obliczenia # Stopka cat << EOF ------------------------------------------------------------------------------- End of calculations [$(date)]. ------------------------------------------------------------------------------- EOF # Konczymy obliczenia, zawartosc katalogu $TMPDIR/output kopiujemy # do katalogu z ktorego zakolejkowano zadanie. mkdir $PBS_O_WORKDIR/${OUTPUT_DIR} cp -r $TMPDIR/* $PBS_O_WORKDIR/${OUTPUT_DIR}/ # Czyscimy katalog roboczy rm -rf $TMPDIR
Przykładowy skrypt uruchomieniowy SLURM:
#!/bin/bash #SBATCH --nodes=1 #SBATCH --ntasks-per-node=24 #SBATCH --mem=4gb #SBATCH --time=01:00:00 # SEKCJA MODUŁ Ustawiamy sciezki lub ladujemy odpowiednie moduly module load nazwa_modułu # Ustawiamy zmienna $TMPDIR export TMPDIR="/tmp/lustre_shared/${USER}/${SLURM_JOBID}" # Ustawiamy zmienne aplikacji export SCR=${TMPDIR} # Ustawiamy zmienne pomocnicze INPUT_DIR="input" OUTPUT_DIR="output" OUTPUT_FILE="OUTPUT" # Tworzymy katalog tymczasowy mkdir -p ${TMPDIR} # Kopiujemy dane wejsciowe do katalogu wskazywanego zmienna $TMPDIR cp ${SLURM_SUBMIT_DIR}/${INPUT_DIR}/* ${TMPDIR} # Przechodzimy do katalogu $TMPDIR cd $TMPDIR # Naglowek cat << EOF ------------------------------------------------------------------------------- Start of calculations [$(date)] EOF cat << EOF ------------------------------------------------------------------------------- Support: support-hpc@man.poznan.pl ------------------------------------------------------------------------------- EOF # SEKCJA RUN Wykonujemy obliczenia #Tutaj należy wpisać komendę wykonującą obliczenia # Stopka cat << EOF ------------------------------------------------------------------------------- End of calculations [$(date)]. ------------------------------------------------------------------------------- EOF # Konczymy obliczenia, zawartosc katalogu $TMPDIR/output kopiujemy # do katalogu z ktorego zakolejkowano zadanie. mkdir $SLURM_SUBMIT_DIR/${OUTPUT_DIR} cp -r $TMPDIR/* $SLURM_SUBMIT_DIR/${OUTPUT_DIR}/ # Czyscimy katalog roboczy rm -rf $TMPDIR