ParseError: syntax error, unexpected 'include' (T_INCLUDE), expecting identifier (T_STRING) or '{'
More info is available in the error log.
jdi na: Hledat / Uživatelské nástroje / Hlavní Obsah / Změnit šířku obsahu
Dokumentace ÚT AV ČR
Umístění: start » computing » cluster_kraken » navody » system_front
Toto je starší verze dokumentu!
Frontový systém pomáhá optimálnímu využití prostředků clusteru, přináší řadu nástrojů pro spouštění a správu běhu úloh i jejich paralelizaci. Správa front a úloh v nich je možná jedině na administratovním uzlu „kraken“.
Nejběžnějšími příkazy jsou:
sinfo
vypíše přehled front a jejich aktuální využití
srun <volby> <spouštěný_program> <parametry_spouštěného_programu>
klíčový příkaz pro zadání úlohy do fronty. Pro paralelní úlohy nahrazuje zároveň příkaz „mpirun“ (mpi knihovny v modulech proto ani příkaz mpirun nenabízí..).
sbatch <script_file>
zadání úlohy do fronty dle připraveného skriptu, viz příklady níže. Součástí skriptu bývá řádka s příkazem „srun“. Nejběžnější způsob pro zadávání úlohy do fronty je právě sbatch+skript.
squeue
vypíše přehled běžících úloh, vč. čísla úlohy ve frontě, uživatelského pojmenování, stavu (čekající/běh/…)
scancel <number>
ukončí úlohu <number> zařazenou ve frontě
Na clusteru Kraken je k dispozici 6 front rozdělených dle délky běhu úlohy (express, short, long) a části clusteru:
| name | nodes | length |
|---|---|---|
| Mexpress | M | 6 hours (default) |
| Mshort | 2 days | |
| Mlong | 2 weeks | |
| Lexpress | L | 6 hours |
| Lshort | 2 days | |
| Llong | 2 weeks |
Parametry pro srun resp. skript pro sbatch
| option | description | example |
|---|---|---|
| -J, –job-name=<jobname> | Job name, shown e.g. in output of squeue | |
| –mail-type=<type> | Send email with BEGIN, END, FAIL, ALL,… | |
| -n, –ntasks=<number> | Number of resources (~cores) to be allocated for the task | -n 50 |
| -N, –nodes=<nodes> | Number of nodes to be used | -N 3 |
| –ntasks-per-node=<ntasks> | Request that ntasks be invoked on each node | |
| -o, –output=<filename_pattern> | Name of file where slurm will output | -o out.txt |
| -p, –partition=<partition_names> | Request a specific partition for the resource allocation | -p Mshort |
| -w, –nodelist=<node_name_list> | Request a specific list of hosts | -w kraken-m2,kraken-m[5-6] |
| -x, –exclude={<host1[,<host2>…]} | Request that a specific list of hosts not be included in the resources allocated to this job | –exclude=kraken-m[7-9] |
Všechny volby vypíšeme jako jeden příkaz srun
srun -n 8 -N 2 HelloWorld
nebo připravíme soubor pro sbatch, např. muj_test_front.sh:
#!/bin/bash #SBATCH --job-name=test #SBATCH --output=output.txt # #SBATCH -n 7 #SBATCH -N 3 #SBATCH -p Mexpress #SBATCH --mail-type=ALL #SBATCH --mail-user=uzivatel@it.cas.cz module load HelloWorld cd ~/test_front srun HelloWorld
Předání úlohy systému:
sbatch muj_test_front.sh
Základní skript pro spuštění 2D úlohy v aplikaci Fluent (verze 2020 R1) ve frontě přes příkaz sbatch:
#!/bin/bash #SBATCH --job-name=fluent_test #SBATCH --output=slurm-%j.out #SBATCH --partition=Mexpress #SBATCH --exclude=kraken-m[7-9] #SBATCH --ntasks=4 FLUENTNODES="$(scontrol show hostnames)" FLUENTNODES=$(echo $FLUENTNODES | tr ' ' ',') /ansys_inc/v211/fluent/bin/fluent -ssh 2ddp -mpi=openmpi -slurm -t $SLURM_NTASKS -cnf=$FLUENTNODES -g -i my_journal_file.jou
Vzhledem k nastavení licencí pro ANSYS není doporučeno úlohy dělit mezi více uzlů. Výpočetní uzly mají vzhledem k zakoupeným licencím dostatečný počet jader, rozdělení úlohy mezi více uzlů tak způsobí jen zpomalení výpočtu.
Aktuálně nelze kvůli speciálním požadavkům ANSYSu na nastavení SSH spouštět ANSYS přes fronty na strojích kraken-m7,…,kraken-m9 (proto #SBATCH –exclude=kraken-m[7-9]). Uživatele by ale toto dočasné nastavení nemělo omezovat.
Běh na 5 jádrech v rámci 1 uzlu lze zadat skriptem pro „sbatch“:
#!/bin/bash #SBATCH --job-name=Abaqus_test #SBATCH --output=slurm_out.txt #SBATCH -N 1 #SBATCH -n 5 /var/DassaultSystemes/SIMULIA/Commands/abaqus job=PLATE_HOLE.inp cpus=$SLURM_NTASKS
Comsol umí využít proměnné, které poskytuje SLURM, skript pro „sbatch“ je proto poměrně jednoduchý. Jediná odlišnost je, že počet jader volíme pomocí proměnných „–nodes“ a „–ntasks-per-node“, proměnnou „–ntasks“ si Comsol dopočítává sám. Rozdělení úlohy mezi více nodů výpočet značně zpomaluje, je proto doporučeno ponechat „–nodes=1“.
#!/bin/bash #SBATCH --job-name=comsol_test #SBATCH --output=test.%j.output #SBATCH --error=test.%j.error #SBATCH --nodes=1 #SBATCH --ntasks-per-node=8 comsol batch -mpibootstrap slurm -inputfile in.mph -outputfile out.mph
Více se lze dočíst zde: COMSOL