Są to specjalne przygotowane przez administratorów systemu skrypty do uruchamiania poszczególnych wersji danego programu. Skrypty są przygotowane, by prawidłowo skonfigurować środowisko pracy (ładowanie wymaganych modułów, ustawienie zmiennych środowiskowych, alokacja zasobów, dobierania wymaganej wersji oprogramowanie itd.). Dostępne są skrypty w formacie: sub-<nazwa_programu>-<numer_wersji><, które są dostępne wyłącznie na węźle dostępowym ui.wcss.pl.
Aktualna ich lista znajduje się poniżej:
sub-cfx-2024 sub-gaussian sub-orca-6.0.1-avx2
sub-abaqus sub-cfx-2025 sub-gromacs sub-orca-6.1.0-avx2
sub-abaqus-2021 sub-comsol-5.6 sub-gromacs-2021 sub-orca-avx
sub-abaqus-2023 sub-comsol-5.6-llm sub-interactive sub-psi4
sub-abaqus.old sub-comsol-6.0 sub-interactive-bem2-cpu sub-psi4-1.3.2
sub-abinit sub-comsol-6.0-llm sub-interactive-lem-cpu sub-qespresso
sub-abinit-10.2.5 sub-comsol-6.1 sub-interactive-lem-gpu sub-r
sub-abinit-10.2.7 sub-comsol-6.1-llm sub-k8s-buildtainer.sh sub-r-4.1.0
sub-abinit-10.4.7 sub-cp2k sub-kkrgen8.6.0 sub-r-4.2.1
sub-abinit-10.6.5 sub-cpmd-4.3 sub-kkrscf8.6.0 sub-raspa
sub-abinit-9.4.1 sub-cpmd-4.3.new sub-matlab sub-raspa-2.0
sub-alphafold-2.3.2 sub-crystal sub-molpro sub-sprkkr8.6.0-local
sub-alphafold-3.0.1 sub-crystal-17_1.0.2 sub-namd sub-turbomole
sub-ams sub-dalton sub-namd-2.14 sub-turbomole-7.6
sub-ams-2022.103 sub-dalton-2020 sub-namd-3.0 sub-turbomole-7.9
sub-ams-2023.104 sub-dalton-2020.old sub-namd-3.0-cuda sub-vasp-5.4.4
sub-ams-2024.102 sub-dirac sub-nwchem-7.0.2 sub-vasp-5.4.4-vtst
sub-bash sub-dirac-19 sub-openmolcas sub-vasp-6.2.0
sub-bash-mpi sub-dirac-22 sub-orca sub-vasp-6.4.0
sub-castep-24.1-mpi sub-dirac-23.0 sub-orca-4.2.1 sub-vasp-6.4.2
sub-castep-24.1-serial sub-fds-6.7.6 sub-orca-5.0.2 sub-vasp-6.4.3
sub-cfour sub-fluent sub-orca-5.0.3 sub-vasp-6.5.0
sub-cfour-2.1 sub-fluent-2022 sub-orca-5.0.3-xtb-6.5.0 sub-vasp-6.5.1
sub-cfour-2.1-serial sub-fluent-2023 sub-orca-5.0.4 sub-vasp-6.6.0
sub-cfx sub-fluent-2024 sub-orca-5.0.4-nbo7
sub-cfx-2022r1 sub-fluent-2025 sub-orca-6.0.0-avx2
slurm-<jobid>.out które zapewniają dużo informacji podczas debugowania lub potrzeby zgłoszenia problemu na nasz helpdesk.TMPDIR wewnątrz zadania. Ścieżka jest widoczna w pliku slurm-<jobid>.out.sbatch czy srun systemu kolejkowego.--cores oraz --ntasks. My te flagi wybieramy za użytkownika priorytetyzując wydajność zadań.-N odpowiada sub-skryptowej fladze -n.W celu wyświetlenia pomocy danego skryptu wystarczy wpisać jego nazwę i kliknąć przycisk ENTER lub skorzystać z flagi --help. Przykład dla skryptu dla oprogramowania gaussian
> sub-gaussian --help
sub-gaussian @ WCSS
Usage: sub-gaussian [OPTIONS] INPUT
Option Default Description
----------------------------------------------------------------------------------------
--debug Print sub script and exit. (requires input)
-C | --copy *.chk Copy additional files to TMPDIR.
Example: --copy="file.inp *.chk"
-B | --copy-back Copy specified files back from TMPDIR.
Example: --copy-back="myfile.cube *.wfn"
| --clean-tmp false Remove contents of TMPDIR after the job ends:
- false (default option)
- success (if job didnt fail)
- always (clean even if job failed)
----------------------------------------------------------------------------------------
-p | --partition lem-cpu Set partition (queue).
-n | --nodes 1 Set number of nodes.
-c | --cores 8 Set number of cores
-m | --memory 100 In GB (must be integer value).
-s | --storage Shortcut for --gres=storage:<type>:<value>
--storage=shm:200g
-t | --time 1 In hours.
| --gres E.g. 10GB tmpdir on /dev/shm would be:
--gres=storage:shm:10g
| --mail none Possible options: BEGIN,END,FAIL,ALL.
Example: --mail BEGIN,END
| --reservation Allocate from existing reservation.
-w | --nodelist Request specific list of nodes by their names.
| --name Job name to be appended after wcss prefix.
----------------------------------------------------------------------------------------
--formchk Use 'formchk' command after calculations are finished.
Flaga copy służy do przekazania dodatkowych plików poza plikiem wejściowym do zadania. W powyższym przykładzie widnieje parametr default: *.chk . Oznacza to, że dla gaussiana domyślnie kopiowane do TMPDIR w zadaniu są wszystkie pliki typu checkpoint znajdujące się w katalogu z którego zakolejkowano zadanie.
Flaga służy do skopiowania plików po zakończonym zadaniu do katalogu z którego wysłano zadanie. Należy jednak znać nazwy plików do skopiowania lub schemat ich nazwy. Jeżeli koniecznie wymagane są wszystkie pliki będące w TMPDIR, wtedy można skorzystać z --copy-back \$TMPDIR co będzie skutkowało skopiowaniem całego katalogu którego nazwa jest numerem zadania do katalogu SLURM_SUBMIT_DIR (z którego zakolejkowano zadanie).
Flaga sluży do wyczyszczenia katalogu roboczego po zadaniu w celu nie przechowywania danych po zakończeniu zadania. Domyślnie dane przechowywane są przez okres 2 tygodni.
domyślna opcja, powoduje że dane nie są usuwane
usunie dane z katalogu roboczego jedynie jeżeli zadanie zakończone było pomyślnie
usunie dane z katalogu roboczego nawet jeżeli zadanie zakończyło się błędem
Poniższe flagi służą do definiowania alokacji zasobów w systemie kolejkowym
----------------------------------------------------------------------------------------
-p | --partition lem-cpu Set partition (queue).
-n | --nodes 1 Set number of nodes.
-c | --cores 8 Set number of cores
-m | --memory 100 In GB (must be integer value).
-s | --storage Shortcut for --gres=storage:<type>:<value>
--storage=shm:200g
-t | --time 1 In hours.
| --gres E.g. 10GB tmpdir on /dev/shm would be:
--gres=storage:shm:10g
| --mail none Possible options: BEGIN,END,FAIL,ALL.
Example: --mail BEGIN,END
| --reservation Allocate from existing reservation.
-w | --nodelist Request specific list of nodes by their names.
| --name Job name to be appended after wcss prefix.
----------------------------------------------------------------------------------------
Flaga --storage jest wyłącznie krótszą wersją flagi --gres=storage:<type>:<size> i ma priorytet nad flagą gres.
Jeżeli chcę skopiować wynikowy plik, dla przykładu plik *.chk z programu gaussian
bez kopiowania plików wyjściowych:
sub-gaussian input.inp
z kopiowaniem wszystkich plików z rozszerzeniem chk:
sub-gaussian input.inp --copy-back="*.chk"
z kopiowaniem wybranego pliku precious.chk:
sub-gaussian input.inp --copy-back="precious.chk
z kopiowaniem wszystkich plików wyjściowych
sub-gaussian input.inp --copy-back=\$TMPDIR
Przykład korzystania z flag --copy oraz --copy-back dla programu Quantum ESPRESSO za pomocą sub-qespresso oraz dodatkowej flagi dla tego programu, --exec która umożliwia wybranie innego niż domyślnego programu wykonującego.
> sub-qespresso --help
sub-qespresso @ WCSS
Usage: sub-qespresso [OPTIONS] INPUT
Option Default Description
----------------------------------------------------------------------------------------
--debug Print sub script and exit. (requires input)
-C | --copy *.UPF Copy additional files to TMPDIR.
Example: --copy="file.inp *.chk"
-B | --copy-back Copy specified files back from TMPDIR.
Example: --copy-back="myfile.cube *.wfn"
| --clean-tmp false Remove contents of TMPDIR after the job ends:
- false (default option)
- success (if job didnt fail)
- always (clean even if job failed)
----------------------------------------------------------------------------------------
...slurm flags here...
----------------------------------------------------------------------------------------
--exec pw.x Set ESPRESSO executable.
admin@ui.wcss.pl > sub-qespresso -c 32 -m 100 scf.in
sub-qespresso @ WCSS
job name - qespresso-latest:FeCNT_scf.in
partition - lem-cpu
nodes - 1
cores - 32 per node
memory - 100 GB per node
time limit - 1 hours
mail type - none
inputs - scf.in
sbatch: [AUTOMATIC PARTITION CHOICE] Based on jobtime: 60m, selecting partition 'lem-cpu-short'
Submitted batch job 4390980
4390980 . Po zakończeniu obliczeń posiadam dwa dodatkowe pliki, scf-4390980.log oraz slurm-4390980.out .admin@ui.wcss.pl > ls -1
C.pbe-n-kjpaw_psl.1.0.0.UPF
Fe.pbe-spn-kjpaw_psl.0.2.1.UPF
DOS.in
scf.in
nscf.in
scf-4390980.log
slurm-4390980.out
slurm-4390980.out lokalizację plików z WORKDIR.(są one przechowywane przez 2 tygodnie po zakończeniu obliczeń)
admin@ui.wcss.pl > tail slurm-4390980.out
WORKDIR_FILES = /lustre/tmp/slurm/finished_jobs/4390980/LOCAL/r11ch01b04
Jednocześnie w pliku wejściowym było ustalone, że pliki wyjściowe powinny być składowane w katalogu o nazwie out, więc cała ścieżka do plików wyjściowych będzie następująca:
/lustre/tmp/slurm/finished_jobs/4390980/LOCAL/r11ch01b04/out
--copy dla następnego pliku wejściowego :admin@ui.wcss.pl > sub-qespresso -c 32 -m 100 nscf.in --copy="/lustre/tmp/slurm/finished_jobs/4390980/LOCAL/r11ch01b04/out"
sub-qespresso @ WCSS
job name - qespresso-latest:FeCNT_nscf.in
partition - lem-cpu
nodes - 1
cores - 32 per node
memory - 100 GB per node
time limit - 1 hours
mail type - none
inputs - nscf.in
sbatch: [AUTOMATIC PARTITION CHOICE] Based on jobtime: 60m, selecting partition 'lem-cpu-short'
Submitted batch job 4390981
slurm-4390981.out, nscf-4390981.log .admin@ui.wcss.pl > ls -1
C.pbe-n-kjpaw_psl.1.0.0.UPF
Fe.pbe-spn-kjpaw_psl.0.2.1.UPF
DOS.in
nscf-4390981.log
nscf.in
scf-4390980.log
scf.in
slurm-4390980.out
slurm-4390981.out
dos.x zamiast pw.x.admin@ui.wcss.pl > tail -n 1 slurm-4390981.out
WORKDIR_FILES = /lustre/tmp/slurm/finished_jobs/4390981/LOCAL/r11ch01b04
admin@ui.wcss.pl > sub-qespresso -c 32 -m 100 DOS.in --copy="/lustre/tmp/slurm/finished_jobs/4390981/LOCAL/r11ch01b04/out" --exec="dos.x"
sub-qespresso @ WCSS
job name - qespresso-latest:DOS.in
partition - lem-cpu
nodes - 1
cores - 32 per node
memory - 100 GB per node
time limit - 1 hours
mail type - none
inputs - DOS.in
sbatch: [AUTOMATIC PARTITION CHOICE] Based on jobtime: 60m, selecting partition 'lem-cpu-short'
Submitted batch job 4390983
admin@ui.wcss.pl > ls -1
C.pbe-n-kjpaw_psl.1.0.0.UPF
Fe.pbe-spn-kjpaw_psl.0.2.1.UPF
DOS-4390983.log
DOS.in
nscf-4390981.log
nscf.in
scf-4390980.log
scf.in
slurm-4390980.out
slurm-4390981.out
slurm-4390983.out
Na potrzeby uruchamiania zmodyfikowanych skryptów lub własnych skryptów, posiadamy dwa skrypty które pozwolą uruchomić zadania zgodnie z polityką klastra i otrzymania odpowiednich informacji w pliku slurm-<jobid>.out.
Są to:
sub-bash
sub-bash-mpi
Pozwalają one na wstawienie własnego skryptu w miejscu w którym normalnie wykonywałyby się inne obliczenia. Wszystkie flagi będą działały jak w innych sub-skryptach. Skrypt zgodnie z konwencją zmienia katalog roboczy na TMPDIR w zadaniu, podany skrypt bash będzie kopiowany automatycznie, a pozostałe potrzebne pliki mogą być kopiowane albo we własnym skrypcie, albo z użyciem flagi --copy.