Spouštění aplikací

Navigace: Rozhraní | Dávkový systém PBS | | Systém modulů

Obsah

Produkční a testovací prostředí

v MetaCentru udržujeme dvě prostředí, které se liší stabilitou a svými vlastnostmi:

produkční prostředí
zaručuje maximální stabilitu, změny jsou prováděny až po důkladném otestování v testovacím prostředí. Produkční prostředí obsluhuje Torque server arien.ics.muni.cz (nelze se na něj přihlásit přímo).
testovací prostředí
obsahuje vylepšení, která chceme testovat a posléze nasadit i v produkčním prostředí. Vítáme dobrovolné uživatele testovacího prostředí, nicméně jim negarantujeme stabilitu. Jako lákadlo obsahuje testovací prostředí obvykle nejnovější a tedy nejvýkonnější stroje. 

V prvním čtvrtletí 2011 došlo k přechodu z plánovacího systému PBS Pro (obsluhoval server skirit-f.ics.muni.cz) na plánovací systém Torque obsluhovaný  Torque severem arien.ics.muni.cz. Server skirit-f.ics.muni.cz byl vypnut a server arien.ics.muni.cz byl celý převeden do produkčního prostředí.

Pro obsluhu obou prostředí použijte některý z následujících čelních uzlů clusterů skirit.ics.muni.cz, arda.ics.muni.cz, tarkil.cesnet.cz, konos.fav.zcu.cz, hermes.prf.jcu.cz, nympha.zcu.cz, perian.ncbr.muni.cz. Nehlaste se na Torque server arien.ics.muni.cz přímo, nebudou Vám obvyklé příkazy fungovat.

Přihlášení k čelnímu uzlu je podrobně popsáno v oddíle Dokumentace / Přihlašování. Na wiki je k dispozici návod pro úplné začátečníky.

Stručné shrnutí plánování úloh

K čemu je plánování úloh dobré se dozvíte na wiki.
Dostupné stroje a pomocníka pro sestavení qsub najdete v osobním pohledu.

Aplikace se v MetaCentru spouští zásadně přes plánovací systém PBS jako úlohy pomocí příkazu qsub. Při zadání úlohy je třeba zadat několik zásadních věcí:

Pro sestavení podmínek můžete využít pomůcku Sestavovač qsub.

Příklad

Chci naplánovat ke spuštění úlohu trvající maximálně 24 hodin, vyžadující 2 stroje, každý se 4 procesory a 4GB fyzické paměti (tj. 1GB paměti na každý procesor), přičemž procesory mají být Intel Xeon umístěné v Brně a pro každý procesor potřebuji licenci Fluentu:

qsub -q normal -l nodes=2:ppn=4:brno:xeon,mem=4gb,fluent=8 uloha.sh

Postup plánovače

Plánovač při vybírání úloh pro spuštění postupuje tak, že si nejprve seřadí všechny čekající úlohy postupně podle následujících kritérií:

  1. priorita fronty - úlohy ve frontách s vyšší prioritou mají přednost
  2. fair share - úlohy uživatele s nižším propočítaným časem mají přednost
  3. čas úlohy - úlohy s nižším maximálním časem mají přednost. Pokud nebyl čas zadán explicitně, bere se z nastavení fronty.

Plánovač pak postupuje po seřazených úlohách a zkoumá, zda se dá úloha již spustit s ohledem na to, jaké má požadavky na zdroje, kolik zdrojů je volných a na kterých strojích má uživatel vlastnící úlohu účet.

Podrobná dokumentace

Tento přehled uvedený výše je jen stručné shrnutí. Podrobnější informace můžete získat

Použití souborů v aplikacích

Přehled vašich adresářů je na stránce Můj účet - Souborové systémy.

Podrobnější popis je na stránce Diskové kapacity.

Další návody na wiki

K dispozici jsou tyto druhy souborových systémů:

druh výhody nevýhody
AFS v /afs/buňka/home/login dostupné všude
přesné nastavování přístupových práv pomocí ACL
pomalé
NFSv4 v /storage/home/login rychlejší než AFS přístupová práva jen na úrovni UNIXu
dostupné na strojích s vlastností nfs4
NFSv3 v /home/login domovský adresář dostupné jen v rámci jednoho clusteru
rychlý disk v /scratch/login velmi rychlé není sdíleno mezi stroji

Proto doporučujeme používat pro práci se soubory tyto postupy:

Úlohu spusťte z adresáře ve /storage

Po skončení úlohy jsou soubory se standardním výstupem (stdout) a standardním chybovým výstupem (stderr) nakopírovány do adresáře na stroji, odkud byla úloha spuštěna. Jednoduché úlohy je možné spouštět pod adresářem /storage. Adresář /storage je sdílen přes NFSv4, je umístěn na 100TB diskovém poli. Je dostupný na všech strojích MetaCentra označených vlastností nfs4 a můžete si ho připojit i k vlastnímu PC.

Malé soubory sdílejte přes AFS

Pokud umístíte soubory do svého adresáře na AFS, budou přístupné na všech strojích bez omezení. Avšak tento postup lze doporučit jen u malých souborů, protože rychlost zápisu a čtení přes AFS není příliš vysoká. Použijte tedy AFS například pro zdrojové kódy programů v MATLABu a podobně. Výhodou AFs je možnost detailně nastavovat přístupová práva.

Dočasné soubory umísťujte na /scratch

Pokud potřebujete pracovat po dobu běhu úlohy s velkými soubory, umísťujte je na /scratch, ve kterém máte svůj podadresář. Adresář /scratch je na rychlém lokálním disku, zdržení bude tedy minimální.

Pokud víte, že standartní výstup nebo chybový výstup Vaší úlohy bude příliš velký (více než desítky MB), přesměrujte ho v rámci úlohy do vhodného souboru na /scratch.

Po skončení úlohy soubory z adresáře /scratch odstraňte, místo bude potřeba pro další úlohu.

stagein a stageout

Pro počáteční přenos vstupních souborů a závěrečný přenos výstupních souborů na a z výpočetního uzlu můžete použít parametry stagein a stageout při zadávání úlohy. Pokud máte například na stroji skirit.ics.muni.cz připraven vstupní soubor vstup.txt a víte, že úloha vyprodukuje soubor vystup.txt, můžete na začátku shellového skriptu pro úlohu uvést následující:

#PBS -W stagein=/scratch/pepa/vstup.txt@skirit.ics.muni.cz:vstup.txt
#PBS -W stageout=/scratch/pepa/vystup.txt@skirit.ics.muni.cz:vystup.txt

tím bude na začátku úlohy nakopírován soubor vstup.txt do adresáře /scratch/pepa a po skončení bude nakopírován soubor vystup.txt z adresáře /scratch/pepa na stroj skirit. Pro kopírování je použit program rcp, čemuž odpovídá i rychlost přenosu.

Pozor, příkaz stageout má tu vlastnost, že po přenesení zpět data na uzlu maže.

Pokud nemáte objemná data (řádově do 100MB) a vstupní data máte umístěna na svazku /storage, použijte raději tento postup: Narozdíl od předchozího způsobu dovoluje kopírování celých adresářů, nejen jednotlivých souborů.

#PBS -W stagein=/scratch/pepa/vstup.txt@depot1.mc.cesnet.cz:/storage/home/pepa/vstup.txt
#PBS -W stageout=/scratch/pepa/vystup.txt@depot1.mc.cesnet.cz:/storage/home/pepa/vystup.txt

Na začátku úlohy bude nakopírován soubor vstup.txt do adresáře /scratch/pepa a po skončení bude nakopírován soubor vystup.txt z adresáře /scratch/pepa zpet na svazek /storage/home/pepa.

Přenášejte velké soubory přes NFSv4

Při přenášení velkého objemu dat je efektivnější použít výpočetní uzel s vlatsností nfs4 a data nakopírovat jakoby lokálně pomocí příkazu cp do /storage, tak se kopírují přes síť jen jednou a pomocí NFSv4, které je rychlejší. Tj.

#PBS -l nodes=1:ppn=1:nfs4
cp /storage/home/pepa/vstup.txt /scratch/pepa/
cd /scratch/pepa/
 ... vlastní výpočet ...
cp /scratch/pepa/vystup.txt /storage/home/pepa/
rm /scratch/pepa/*

Nezapomeňte data z adresáře /scratch po překopírování smazat. Uděláte tak místo dalšímu uživateli.

Spuštění krok za krokem

  1. Nejdříve si zjistěte, jak je to s aplikací, kterou chcete používat. Zda je nainstalovaná v MetaCentru zjistíte na stránce Aplikační programy. Na stránce každé aplikace je napsáno, jakou má licenci, to je důležité vědět.
  2. U nejpoužívanějších aplikací je k dispozici jednak dokumentace (např. dokumentace pro Amber) i stručný návod k použití (např. návod pro Amber). V návodu bývá uvedeno, jak se daná aplikace spouští, obvykle aktivací patřičného modulu. Pozor! Čelní uzly clusterů vzhledem ke svému určení pro interaktivní přípravu úloh, prohlížení výstupů apod. mohou mít oproti pracovním uzlům téhož clusteru některé SW balíky navíc. Pokud vyžadujete 100% identické prostředí pracovního uzlu (např. při přípravě úlohy, kde se bude něco automaticky kompilovat) je možné ho získat zadáním interaktivní úlohy s přesnou specifikací architektury a OS Výpočet spustíme tak, že vytvoříte ve svém oblíbeném textovém editoru shellový skript, který obsahuje na začátku aktivaci systému modulů a aktivaci modulu dané aplikace. Příklad je na stránce PBS - Příklady použití. Tj. shellový skript bude začínat nějak takto:
    #!/bin/sh
    # Inicializace systemu modulu:
    . /packages/run/modules-2.0/init/sh
    # inicializace konkretni verze konkretni aplikace, v tomto pripade paralelniho Amberu verze 10
    module add amber10-parallel
    
  3. .
  4. Rozmyslete si, odkud bude brát aplikace data, kde bude mít uložena dočasná data během výpočtu a kam uloží výsledky, viz oddíl Použití souborů v aplikacích. Přeneste výchozí data od sebe do MetaCentra (např. pomocí WinScp). Dopište do shellového skriptu přenos dat a spuštění samotné aplikace. Obvykle přenesete data od sebe do domovského adresáře na nějakém clusteru, a v shellovém skriptu pak je na začátku jejich přenesení do scratch adresáře na stroji, kde bude probíhat výpočet, a na konci přenos výsledků za scratch adresáře zpátky do domovského adresáře.
  5. Zadejte úlohu do plánovacího systému pomocí příkazu qsub, kterému specifikujete požadavky na přidělení strojů, paměťi a licencí, viz první oddíl na této stránce. Před spuštěním si ověřte na stránce Stav zdrojů - Osobní pohled v okénku "Sestavovač příkazu qsub", zda požadavky na množství a vlastnosti strojů jsou splnitelné.
  6. Úloha bude patrně nejdříve nějakou dobu čekat, než budou volné požadované zdroje (stroje daných vlastností a případně potřebný počet licencí aplikace). Na stránce konkrétní úlohy v položce "komentář", případně na stránce Čekající úlohy můžete vidět důvod, proč nebyla úloha zatím spuštěna. Obvyklé důvody jsou:
    • Not Running: Not enough of the right type of nodes are available - není dost volných strojů požadovaných vlastností, úloha čeká, až nějaká běžící úloha skončí a uvolní zdroje
    • Not Running: User has reached queue running job limit - Fronty mají nastavené limity, kolik úloh může zároveň běžet jednomu uživateli. Máte v dané frontě více úloh, než je limit, další úloha bude spuštěna, až jiná skončí.
    • Not Running: Draining system to allow starving job to run - Ve frontě čeká víceprocesorová úloha a systém blokuje máloprocesorové úlohy, dokud nebude víceprocesorová úloha spuštěna, aby ji nepředbíhaly.

 

Poslední změna:2012-01-06 13:41:19