meta data stránky
  •  
Překlady této stránky:

Toto je starší verze dokumentu!


Cluster KRAKEN

Návody

Na této stránce najdete návody pro práci se serverem kraken. Dozvíte se

  • jak se k serveru přihlásit,
  • jak přenést soubory mezi serverem a vaším počítačem
  • základní příkazy frontového systému SLURM
  • jak připravit skript úlohy
    • pro vlastní program nebo program dostupný v modulu
    • Abaqus
    • Fluent (ANSYS)
    • Comsol
    • OPENFoam

Přihlášení k serveru

Se zavedením systému front (SLURM) dochází ke změně způsobu přihlašování, to bude do budoucna možné jen přes administrativní uzel „kraken“.

Výpočetní část clusteru je rozdělena do dvou bloků, dle použitých procesorů (část „Low Core“ není přístupná všem uživatelům):

Low Core

kraken-L1 - kraken-L4

MultiCore

kraken-M1 - kraken-M9



Pro komunikaci se serverem kraken se používá protokol SSH. Na svém počítači musíte mít nainstalovaný program (SSH klient), umožňující komunikaci v tomto protokolu.

Linux

V Linuxu je obvykle SSH klient součástí instalace. Přihlášení k serveru provedeme v xterminálu pomocí příkazu:

ssh -Y uživatel@kraken

Parametr -Y můžete vynechat, pokud nepotřebujete přesměrování grafiky

Stále je funkční také přihlašování k jednotlivým výpočetním uzlům, např. ssh -Y uživatel@kraken-M1 , s koncem přechodového období ale bude přístup k výpočetním uzlům znemožněn, přístup bude jen přes administrativní uzel „kraken“.

Windows

Ve Windows není SSH klient součástí systému, proto je třeba použít samostatný program. Doporučené je použít programy:

  • KiTTY – fork programu PuTTY s několika rozšířeními. KiTTY

Pro spouštění grafických aplikací je nutné mít nainstalovaný X server.

Podrobný postup připojení

Přenos souborů

Pro pohodlný přenos souborů mezi počítačem a serverem lze použít některý z následujících programů:

Frontový systém SLURM (probíhá aktualizace)

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]
Příklad: skript pro sbatch

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
Fluent (Ansys)

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.

Abaqus

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

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

OpenFOAM