Základní postup pro počítání v MetaCentru
1. krok – Založení účtu v MetaCentru
2. krok – Počítání v MetaCentru
1) Přihlášení:
Uživatel se přihlašuje pomocí ssh na některý z login strojů, tzv. čelních uzlů, a to login jménem a
heslem pro MetaCentrum nebo pomocí systému Kerberos. (Přehled čelních uzlů je na
https://wiki.metacentrum.cz/wiki/%C4%8Celn%C3%AD_uzel).
Např.
ssh [email protected]
ssh [email protected]
Pro přihlašování do MetaCentra doporučujeme využívat systém Kerberos. Používání Kerbera má tu
výhodu, že uživatel nemusí zadávat své heslo pokaždé, kdy se chce přihlásit nebo kdy potřebuje
kopírovat data. Heslo zadává pouze jednou denně pomocí příkazu kinit. Příkazem kinit se vytvoří tzv.
Kerberos lístek. Dobu platnosti tohoto lístku lze zjistit pomocí příkazu klist.
Základní kroky pro nastavení Kerbera na stroji, ze kterého se bude uživatel přihlašovat:
1. přidat do konfiguračního souboru /etc/ssh/ssh_config následující řádky:
Host *.metacentrum.cz
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
2. nainstalovat si balíček krb5-client
3. zkopírovat konfigurační soubor krb5.conf do adresáře /etc (soubor je ke stažení na stránce
http://meta.cesnet.cz/metafiles/krb5.conf)
Pokud má uživatel na stroji nastavený firewall, musí povolit port 88.
Základní kroky pro použití Kerbera:
1. spustit příkaz kinit [email protected] a zadat heslo do MetaCentra. (Tento příkaz se spouští pouze
jednou denně, vygenerovaný Kerberos listek platí 24 hodin).
2. přihlásit se na některý z čelních uzlů pomocí ssh (bez hesla)
(Přihlašování ze systému Linux: https://wiki.metacentrum.cz/wiki/P%C5%99%C3%ADstup_ke_zdroj
%C5%AFm_MetaCentra_z_Linuxu, ze systému Windows: https://wiki.metacentrum.cz/wiki/P
%C5%99%C3%ADstup_ke_zdroj%C5%AFm_MetaCentra_z_Windows).
2) Příprava dat - datové prostory:
Uživatel má k dispozici tři typy datových prostorů:
- sdílené prostory /storage (např. /storage/praha1/home/username), prostory jsou sdílené přes nfs4 na
všech čelních a výpočetních uzlech a jsou zálohované
- uživatelský /home v rámci každého subklastru, obvykle mountován z nejbližšího /storage
- rychlý lokální /scratch na jednotlivých výpočetních uzlech, není zálohovaný. Pro přístup se používá
systémová proměnná $SCRATCHDIR. Na několika málo subklastrech je k dispozici ještě tzv. sdílený
/scratch.shared.
Přehled svazků /storage a příklady subklastrů, jejichž /home je z daného /storage mountován:
/storage/praha1/
luna, kalpa, tarkil
/storage/brno2/
mandos, manwe
/storage/brno3-cerit/
zegox, zewura
/storage/plzen1/
minos, nympha
/storage/budejovice1/
hildor, hermes
/storage/jihlava1-cerit/
zigur, zapat
/storage/ostrava1/
doom
(Podrobné informace na https://wiki.metacentrum.cz/wiki/Souborov%C3%A9_syst
%C3%A9my_v_MetaCentru )
3) Kompilace programu
Kompilace programů je vhodné provádět přes interaktivní úlohu, aby se příliš nezatěžoval čelní uzel
(https://wiki.metacentrum.cz/wiki/Interaktivn%C3%AD_%C3%BAloha ).
Např.
qsub -I -q q_4h -l nodes=1:ppn=1
Intelovský překladač ifort a knihovny MKL jsou nainstalované v adresáři /software a je nutné je
inicializovat pomocí modulu. (Přehled dostupných verzí je na
https://wiki.metacentrum.cz/wiki/INTEL_CDK)
Nejprve je potřeba inicializovat systém modulů:
v případě bash:
. /packages/run/modules-2.0/init/sh
v případě csh:
source /packages/run/modules-2.0/init/csh
a potom přidat vhodný modul překladače, např. verzi 15.0:
module add intelcdk-15
Pro paralelní úlohy stačí přidat pouze modul pro OpenMPI. Tento modul nahraje i potřebný intelovský
překladač a potřebné knihovny, proto není nutné přidávat ještě modul intelcdk-15:
module add openmpi-1.8.2-intel
Přehled modulů pro OpenMPI:
Modul
Verze OpenMPI
Verze překladače
openmpi-1.8.2-intel
openmpi-1.8.2
intelcdk-15
openmpi-1.8.0-intel
openmpi-1.8.0
intelcdk-14
openmpi-1.6.5-intel
openmpi-1.6.5
intelcdk-12
Pozn.:
module avail
module display <jméno_modulu>
vypíše všechny dostupné moduly
vypíše obsah daného modulu
4) Úprava spouštěcího skriptu:
Pro výběr vhodných požadavků na zdroje lze využít tzv. “Sestavovač příkazu qsub” v “Osobním
pohledu” na stránce http://metavo.metacentrum.cz/cs/state/index.html.
Kromě počtu výpočetních uzlů a výpočetních jader je možné specifikovat vlastnosti strojů, např.
konkrétní klastr, typ procesoru (xeon, opteron), pro paralelní úlohy infiniband, pro sdílený prostor nfs4
apod. (Přehled klastrů: http://metavo.metacentrum.cz/pbsmon2/hardware).
Dále je nutné uvést požadavek na velikost paměti. Defaultní hodnota je pouhých 400 MB. Pokud úloha
překročí defaultní, příp. požadovanou hodnotu, frontový systém úlohu ukončí. To platí také v případě,
kdy úloha překročí defaultní nebo nastavenou hodnotu walltime.
Např.
#PBS -l nodes=1:ppn=4:nfs4:infiniband
#PBS -l mem=5gb
#PBS -l walltime=03:00:00
Analogicky jako při kompilaci je potřeba před spuštěním vlastního programu inicializovat systém
modulů:
v případě bash:
. /packages/run/modules-2.0/init/sh
v případě csh:
source /packages/run/modules-2.0/init/csh
a přidat všechny potřebné moduly:
např. pro paralelní úlohy stačí přidat pouze modul openmpi. Tento modul nahraje i všechny potřebné
intelovské knihovny a knihovny pro infiniband:
module add openmpi-1.8.2-intel
Seznam všech dostupných aplikací (modulů) je na stránce
https://wiki.metacentrum.cz/wiki/Seznam_aplikac%C3%AD. Aplikace jsou nainstalované v adresáři
/software
Pro paralelní úlohy s openmpi se pro příkaz mpiexec používá následující syntaxe:
mpiexec ./<Váš program>
Další informace jsou na https://wiki.metacentrum.cz/wiki/MPI_a_InfiniBand.
Pokud úloha pracuje s většími soubory, je vhodné využít lokální prostor /scratch (pro přístup se
používá systémová proměnná $SCRATCHDIR).
(https://wiki.metacentrum.cz/wiki/%C3%9Alo%C5%BEi%C5%A1t%C4%9B_scratch)
Defaultní velikost přiděleného prostoru /scratch je pouze 400 MB, proto je nutné zadat požadavek:
Např.:
#PBS -l scratch=10gb
Využití lokálního prostoru /scratch znamená pomocí spouštěcího skriptu:
- nakopírovat vstupní data do $SCRATCHDIR
- spustit ve $SCRATCHDIR výpočet
- nakopírovat výstupní data ze $SCRATCHDIR zpátky do pracovního adresáře na /storage/lokalita/,
odkud byla úloha spuštěna ($PBS_O_WORKDIR)
- promazat $SCRATCHDIR
-------------------Pozn.:
Pokud chce uživatel využívat /scratch ve svých paralelních úlohách, které spouští na více uzlech, tzn.
data ve /scratch mají být sdílena mezi uzly, musí požadovat sdílený /scratch (typ shared).
V současné době je tento typ /scratch k dispozici pouze v lokalitách Ostrava, Brno a České Budějovice,
a to pouze na některých subklastrech. Jméno lokality musí být v požadavku na zdroje uvedeno
(vlastnost uzlu ostrava, brno nebo budejovice), jinak může frontový systém přiřadit uzly z různých
klastrů a paralelní úloha potom zhavaruje.
Uzly jsou ke sdílenému /scratch připojené přes Infiniband.
Např.:
#PBS -l nodes=2:ppn=4:ostrava
#PBS -l scratch=20gb:shared
Přidělený adresář je uložen v systémové proměnné $SCRATCHDIR. Během výpočtu lze data
kontrolovat v adresáři /scratch.shared/home/username
5) Zadávání úlohy do fronty:
Úlohy se zadávají do fronty příkazem qsub
qsub -q <jméno fronty> ./<Váš skript>
Příklady front:
q_2h - do 2 hodin
q_1d - od 4 do 24 hodin
q_1w - od 96 do 168 hodin
luna – až 2160 hodin (fronta určená pouze pro uživatele FZÚ)
Přehled všech front je na http://metavo.metacentrum.cz/pbsmon2/queues/list
Upozornění: Pokud je úloha zadávána z čelního uzlu MetaCentra do fronty v rámci Cerit-CS, je nutné
uvést jméno fronty včetně specifikace plánovacího serveru, např. [email protected]
6) Sledování spuštěných úloh:
Informace o zadané úloze lze zjistit příkazem “qstat -f JobId” nebo na stránce
http://metavo.metacentrum.cz/cs/state/index.html – volba “Osobní pohled” – odkaz “Výpis úloh”
Pozn.: Při dotazu na úlohy zadané v prostředí Cerit-SC je třeba uvést specifikaci plánovacího serveru:
qstat -u username wagap.cerit-sc.cz
7) Výstupní soubory:
Po ukončení běhu úlohy budou standardní výstupní a chybové soubory v domovském adresáři uživatele
/home na čelním uzlu, ze kterého byla úloha zadána do fronty.
Užitečné odkazy:
MetaCentrum: http://metavo.metacentrum.cz/
Cerit-SC: http://www.cerit-sc.cz/cs/
Uživatelská dokumentace MetaCentra: https://wiki.metacentrum.cz/wiki/Kategorie:Pro_u
%C5%BEivatele
Přehled subklastrů: http://metavo.metacentrum.cz/pbsmon2/hardware
Přehled front: http://metavo.metacentrum.cz/pbsmon2/queues/list
Seznam čelních uzlů: https://wiki.metacentrum.cz/wiki/%C4%8Celn%C3%AD_uzel
Přehled souborových systémů: https://wiki.metacentrum.cz/wiki/Souborov%C3%A9_syst
%C3%A9my_v_MetaCentru
Přihlášování ze systému Linux: https://wiki.metacentrum.cz/wiki/P%C5%99%C3%ADstup_ke_zdroj
%C5%AFm_MetaCentra_z_Linuxu
Přihlašování ze systému Windows: https://wiki.metacentrum.cz/wiki/P
%C5%99%C3%ADstup_ke_zdroj%C5%AFm_MetaCentra_z_Windows
Seznam dostupných aplikací: https://wiki.metacentrum.cz/wiki/Seznam_aplikac
%C3%AD_v_MetaCentru
Přehled dostupných intelovských překladačů a knihoven:
https://wiki.metacentrum.cz/wiki/INTEL_CDK
Informace k paralelním úlohám: https://wiki.metacentrum.cz/wiki/MPI_a_InfiniBand
Interaktivní úloha: https://wiki.metacentrum.cz/wiki/Interaktivn%C3%AD_%C3%BAloha
Použití /scratch: https://wiki.metacentrum.cz/wiki/%C3%9Alo%C5%BEi%C5%A1t%C4%9B_scratch
Sestavovač příkazu qsub: http://metavo.metacentrum.cz/cs/state/index.html - volba Osobní pohled
Přehled zadaných úloh: http://metavo.metacentrum.cz/cs/state/index.html - volba Osobní pohled
V případě problémů lze kontaktovat uživatelskou podporu [email protected]
Download

Základní postup pro počítání v MetaCentru