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/06/06 09:54] Jan Pechcomputing:cluster:fronty:start [2024/09/17 11:33] (aktuální) Jan Pech
Řádek 1: Řádek 1:
-Od února 2022 dochází na clusteru Kraken echodu na výhradní užití frontového systému ([[https://slurm.schedmd.com/documentation.html|SLURM]]) pro spouštění úloh na výpočetních uzlech. Výpočetní uzly nebudou samostatně dostupné ze sítě. Pro připojení ke clusteru, přípravu a zadávání úloh do frontového systému, je vyhrazen administrativní uzel "kraken".+Od února 2022 je spouštění úloh na výpočetních uzlech clusteru Kraken možné výhradně es frontový systém ([[https://slurm.schedmd.com/documentation.html|SLURM]]). Výpočetní uzly nejsou samostatně dostupné ze sítě. Pro připojení ke clusteru, přípravu a zadávání úloh do frontového systému, je vyhrazen administrativní uzel "kraken".
  
-  * <wrap em>Na výpočetních uzlech úlohy mimo frontový systém nespouštějte!</wrap> +<wrap em>Administrativní uzel není určen k běhu výpočtů</wrap>, užívejte ho především k práci s daty, zadávání úloh do front a kompilaci vlastních programů. Paralelní úlohy mimo fronty spouštět nelze. Pro výpočetně nenáročné paralelní programy (např. Paraview) je určena fronta "NoCompute", která běží jen na administrativním uzlu (ten má kvůli zpracování velkých dat navýšenou RAM na 320GB).
-  * <wrap em>Administrativní uzel není určen k běhu výpočtů!</wrap>+
  
  
-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]].