meta data stránky
  •  

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
computing:cluster:fronty:start [2022/12/21 14:24] Jan Pechcomputing:cluster:fronty:start [2024/09/17 11:33] (aktuální) Jan Pech
Řádek 5: Řádek 5:
  
  
-Níže naleznete základní popis práce s frontami, specifika spouštění konkrétních aplikací jsou popsány na samostatných stránkách:+Aktuální vytížení clusteru zobrazuje, kromě [[computing:cluster:fronty:start#zakladni_prikazy|příkazů systému SLURM]], příkaz 
 + 
 +''freenodes'' 
 + 
 +{{:computing:cluster:fronty:computing:cluster:fronty:freenodes.png?direct&400|}} 
 + 
 +**Uživatelé zadáním úlohy do fronty přenechávají spuštění výpočtu frontovému systému. Úloha je do fronty zařazena v pořadí dle interních priorit systému a čeká na spuštění. Frontový systém úlohu spustí hned jak jsou dostupné výpočetní kapacity, <wrap em>uživatelé proto dostupnost výpočetní kapacity sami sledovat nemusí</wrap>, mohou se z clusteru odhlásit a vyčkat na dokončení výpočtu (lze nastavit i notifikační email, viz [[computing:cluster:fronty:start#parametry_prikazu_srun_a_sbatch|Přehled příkazů]]).** 
 + 
 +Níže naleznete základní popis práce s frontovým systémem (SLURM), specifika spouštění konkrétních aplikací jsou na samostatných stránkách:
   * [[computing:cluster:fronty:abaqus|Abaqus]]   * [[computing:cluster:fronty:abaqus|Abaqus]]
   * [[computing:cluster:fronty:ansys|Ansys (Fluent)]]   * [[computing:cluster:fronty:ansys|Ansys (Fluent)]]
Řádek 13: Řádek 21:
   * [[computing:cluster:fronty:paraview|Paraview]]   * [[computing:cluster:fronty:paraview|Paraview]]
   * [[computing:cluster:fronty:pmd|PMD]]   * [[computing:cluster:fronty:pmd|PMD]]
-\\+ 
 ====== Frontový systém SLURM ====== ====== Frontový systém SLURM ======
-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 jejich paralelizaci. Správa front a úloh v nich je možná po přihlášení na administrativní uzel "kraken".+Frontový systém se stará o optimální využití clusteru, přináší řadu nástrojů pro zadávání úlohjejich kontrolu a paralelizaci. Všechny úkony provádíme po přihlášení na administrativní uzel "kraken" (ssh username@kraken). 
 + 
 +Kompletní dokumentace je na adrese [[https://slurm.schedmd.com|slurm.schedmd.com]]
  
 ==== Základní příkazy: ==== ==== Základní příkazy: ====
  
 === Spouštění úloh === === Spouštění úloh ===
- +K dispozici jsou 2 příkazy pro zařazení úlohy do fronty, ''srun'' a ''sbatch'': 
-  srun <volby> <spouštěný_program> <parametry_spouštěného_programu> +  srun <parametry> <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í..).+//Klíčový příkaz pro zadání úlohy do fronty.// Pro paralelní úlohy nahrazuje příkaz "mpirun" (mpi knihovny v modulech proto ani příkaz mpirun nenabízí..).\\ 
 +''srun'' v této podobě vyžádá prostředky dle ''<parametry>'' a program na nich spustí. Spouštíte-li **ne**paralelní úlohu, ponechte parametr ''-n 1'' (výchozí), zvolíte-li vyšší hodnotu, neparalelní program se spustí n-krát! 
   sbatch <script_file>   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" (komerční kódy bývají spouštěny bez //srun//).// Nejběžnější způsob pro zadávání úlohy do fronty je právě sbatch+skript.+//Zadání úlohy do fronty dle připraveného skriptu, viz příklady níže. Součástí skriptu pro paralelní úlohy bývá řádka s příkazem "srun" (komerční kódy bývají spouštěny bez //srun//, podobně jako kódy).// Nejběžnější způsob pro zadávání úlohy do fronty je právě sbatch+skript.
  
 === Řízení úloh === === Řízení úloh ===
Řádek 33: Řádek 45:
   squeue   squeue
 //Vypíše informace o běžících úlohách ve frontovém systému.// //Vypíše informace o běžících úlohách ve frontovém systému.//
 +
 +Význam zkratek ve výpisu //squeue// ([[https://curc.readthedocs.io/en/latest/running-jobs/squeue-status-codes.html|kompletní přehled zde]]):
 +
 +- ve sloupci "ST" (status): **R** - running, **PD** - pending (čeká na alokaci výp. zdrojů), **CG** - completing (část procesů je dokončena, ale některé jsou stále aktivní),...
 +
 +- ve sloupci REASON: **Priority** - ve frontě je/jsou úloha/y s vyšší prioritou, **Dependency** - úloha čeká na dokončení úlohy v závislosti a bude spuštěna poté, **Resources** - úloha čeká na uvolnění potřebných výp. zdrojů,...
 +
  
   scancel <number>   scancel <number>
Řádek 48: Řádek 67:
 Úlohy je možné spouštěn na více uzlech, ale vždy jen na jedné části serveru kraken: Úlohy je možné spouštěn na více uzlech, ale vždy jen na jedné části serveru kraken:
  
-  * část **M** - stroje kraken-m1 až m9 (všichni uživatelé)+  * část **M** - stroje kraken-m1 až m10 (všichni uživatelé)
   * část **L** - stroje kraken-l1 až l4 (omezený přístup)   * část **L** - stroje kraken-l1 až l4 (omezený přístup)
  
Řádek 69: Řádek 88:
  
 Na clusteru Kraken je k dispozici 6 front ("partition") rozdělených dle délky běhu úlohy (express, short, long) a části clusteru ("Mxxx" a "Lxxx"). Nespecifikuje-li uživatel frontu přepínačem ``-````-partition`` užije se defaultní hodnota (Mexpress): Na clusteru Kraken je k dispozici 6 front ("partition") rozdělených dle délky běhu úlohy (express, short, long) a části clusteru ("Mxxx" a "Lxxx"). Nespecifikuje-li uživatel frontu přepínačem ``-````-partition`` užije se defaultní hodnota (Mexpress):
-^  cluster part  ^  partition    time limit  ^ +^  cluster part  ^  partition   node   ^  time limit  ^ 
-|  M (nodes kraken-m[1-9])  |  **Mexpress**  |  6 hours  | +|  M (nodes kraken-m[1-10])  |  **Mexpress**   kraken-m[1-10]   6 hours  | 
-|  :::  |  Mshort  |  2 days  | +|  :::  |  Mshort  |  kraken-m[1-10]  |  **days** 
-|  :::  |  Mlong    **1 week** +|  :::  |  :::  |  :::  |  3 days  | 
-|  :::  |  :::  |  2 weeks  | +|  :::  |  Mlong   |  kraken-m[3-6],kraken-m8  |  **1 week** 
-|  L (nodes kraken-l[1-4])  |  Lexpress  |  6 hours  | +|  :::  |  :::  |  :::  |  2 weeks  | 
-|  :::  |  Lshort  |  2 days  | +|  L (nodes kraken-l[1-4])  |  Lexpress   kraken-l[1-4]   6 hours  | 
-|  :::  |  Llong  |  **1 week** +|  :::  |  Lshort   kraken-l[1-4]   2 days  | 
-|  :::  |  :::  |  2 months (max)  | +|  :::  |  Llong   kraken-l[1-4]   **1 week** 
-|  admin node only  |  NoCompute  |  **1 hour** +|  :::  |  :::  |  :::  |  2 months (max)  | 
-|  :::  |  :::  |  8 hours  |+|  admin node only  |  NoCompute   kraken   **1 hour** 
 +|  :::  |  :::  |  :::  |  8 hours  |
 *bold=default *bold=default
  
 +Detaily nastavení lze zobrazit také příkazem 
 +  scontrol show partition [partition_name]
  
 ==== Parametry příkazů ''srun'' a ''sbatch'' ==== ==== Parametry příkazů ''srun'' a ''sbatch'' ====
Řádek 108: Řádek 129:
  
 Do jmen souborů výstupu (output, error) lze začlenit proměnné jako jméno nodu (%N), číslo úlohy (%J), jméno uživatele (%u), apod... Výpis standardní chyby zadaný ve skriptu ''#SBATCH -e slurm.%N.%J.%u.err'' bude v souboru ''slurm.kraken-m123.12345.username.err'' Do jmen souborů výstupu (output, error) lze začlenit proměnné jako jméno nodu (%N), číslo úlohy (%J), jméno uživatele (%u), apod... Výpis standardní chyby zadaný ve skriptu ''#SBATCH -e slurm.%N.%J.%u.err'' bude v souboru ''slurm.kraken-m123.12345.username.err''
 +
 +Začátek běhu nově zadávané úlohy lze podmínit např. dokončením úlohy již běžící
 +``sbatch --dependency=after:123456:+5 myjob.slurm``,
 +123456 je zde číslo úlohy (dle výpisu squeue) a "+5" značí prodlevu 5 minut od ukončení předchozí a započetí nové úlohy.
  
 Kompletní seznam parametrů naleznete např. na stránce [[https://slurm.schedmd.com/sbatch.html|Slurm-sbatch]]. Kompletní seznam parametrů naleznete např. na stránce [[https://slurm.schedmd.com/sbatch.html|Slurm-sbatch]].