C2115 Praktický úvod do superpočítání -1-IX. lekce C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kamenice 5, CZ-62500 Brno Revize 3 C2115 Praktický úvod do superpočítání -2-IX. lekce Dávkové systémy (začínáme) C2115 Praktický úvod do superpočítání -3-IX. lekce Dávkové zpracovaní Dávkové zpracování je vykonávání série programů (tzv. dávek) na počítači bez účasti uživatele. Dávky jsou připraveny předem, takže mohou být zpracovány předány bez účasti uživatele. Všechna vstupní data jsou předem připravena v souborech (skriptech) nebo zadána pomocí parametrů na příkazovém řádku. Dávkové zpracování je opakem interaktivního zpracování, kdy uživatel až teprve za běhu programu poskytuje požadované vstupy. Výhody dávkového zpracování ▪ sdílení zdrojů počítače mezi mnoha uživateli a programy ▪ odložení zpracování dávek do doby, kdy je počítač méně vytížen ▪ odstranění prodlev způsobeným čekáním na vstup od uživatele ▪ maximalizace využití počítače zlepšuje využití investic (zejména u dražších počítačů) zdroj: www.wikipedia.cz, upraveno C2115 Praktický úvod do superpočítání -4-IX. lekce Nástroje pro dávkové spouštění ➢ OpenPBS http://www.mcs.anl.gov/research/projects/openpbs/ ➢ Oracle Grid Engine https://en.wikipedia.org/wiki/Oracle_Grid_Engine ➢ Open Grid Scheduler http://gridscheduler.sourceforge.net/ ➢ Torque https://en.wikipedia.org/wiki/TORQUE ➢ PBSPro -> OpenPBS https://www.openpbs.org/, https://www.altair.com/ open source je použit jako dávkový systém na našich lokáních klastrech (WOLF), v MetaCentrum VO, i IT4I open source C2115 Praktický úvod do superpočítání -5-IX. lekce PBSPro https://www.altair.com/pbs-works-documentation/ Dokumentace: C2115 Praktický úvod do superpočítání -6-IX. lekce Nezbytná podmínka Přihlašování bez hesla Mezi výpočetními uzly a serverem (a naopak) je nutné nastavit přihlašování pomocí ssh bez explicitního zadávání hesla. ➢ naše lokální klastry (WOLF, ...), MetaCentrum – v době zasílání úlohy příkazem qsub do dávkového systému musíte mít platný kerberovský lístek ➢ IT4I – pomocí ssh klíčů C2115 Praktický úvod do superpočítání -7-IX. lekce Architektura ...... ...... ...... fronty(queues) short normal long (pbs_server) stav uzlů (nodes) pbsnodes -a qstat -q qstat qstat -u (pbs_sched) řazení úloh na výpočetní uzly dle požadovaných zdrojů (pbs_mom) (pbs_mom) node#1 np=2 node#2 np=1 qsub qsub qsub připravená úloha čekající úloha běžící úloha C2115 Praktický úvod do superpočítání -8-IX. lekce PBSPro – příkazy, stavy úlohy qsub zašle úlohu do dávkového systému qstat vypíše informace o dávkovém systému (seznam úloh, seznam front) pbsnodes vypíše informace o výpočetních uzlech qrls uvolní úlohu ze stavu holded (pokud to okolnosti dovolují) Stavy úlohy: Q (queued) čeká ve frontě na spuštění na výpočetním uzlu R (running) běží na výpočetním uzly C (completed) úloha byla dokončena (informace o dokončených úloh se zobrazují jen omezenou dobu – nejčastěji 24 hodin) H (holded) úloha byla pozastavena, úlohu je možné uvolnit příkazem qrls E (exiting) úloha se ukončuje F (finished) úloha je ukončena: úspěšné i neúspěšné ukončení C2115 Praktický úvod do superpočítání -9-IX. lekce Zadáváme úlohy K zadávání úloh do dávkového systému se používá příkaz qsub. $ qsub –q default uloha.sh 1.ubuntu $ ls uloha.sh uloha.sh.o1 uloha.sh.e1 jméno fronty, do které chceme úlohu zařadit skript úlohy, např. #!/bin/bash echo "Hello world from `hostname`!" příkaz vypíše ID úlohy, pokud zařazení proběhne v pořádku standardní výstup úlohy standardní chybový výstup úlohy soubory jsou dostupné až po skončení úlohy C2115 Praktický úvod do superpočítání -10-IX. lekce Cvičení 1 1. Jaké fronty dávkového systému jsou dostupné na klastru WOLF. Použijte příkaz qstat a volbu dle dokumentace. 2. Jaký je rozdíl mezi volbou -Q a -q příkazu qstat? 3. Jaké úlohy jsou již zařazeny v dávkovém systému klastru WOLF? 4. Skript úlohy z předchozí ukázky vložte do samostatného adresáře a zařaďte jej do dávkového systému. Použijte frontu default. 5. Na jakém výpočetním uzlu se úloha spustila? 6. Vytvořte nový skript úlohy, který umístíte do jiného adresáře. Skript vypíše jméno výpočetního uzlu a pozastaví svou činnost na 10 minut. Úlohu zařaďte do fronty default. 7. Monitorujte stav dávkového systému příkazy qstat a pbsnodes. 8. Na kterém výpočetním uzlu se úloha spustila tentokrát? C2115 Praktický úvod do superpočítání -11-IX. lekce Cvičení 2 1. Přihlaste se na čelní uzel MetaCentra perian.ncbr.muni.cz. 2. Jaké fronty dávkového systému jsou dostupné. Použijte příkaz qstat. 3. Kolik úloh je aktuálně zařazeno do dávkového systému? 4. Skript úlohy z předchozí ukázky vložte do samostatného adresáře a zařaďte jej do dávkového systému. Použijte frontu default. 5. Na jakém výpočetním uzlu se úloha spustila? Jak dlouho trvalo, než se úloha spustila? C2115 Praktický úvod do superpočítání -12-IX. lekce Cvičení 3 1. Přihlaste se na čelní uzel MetaCentra zuphux.cerit-sc.cz. 2. Jaké fronty dávkového systému jsou dostupné. Použijte příkaz qstat. Proč se liší od front, které jste viděli na čelním uzlu perian.ncbr.muni.cz? 3. Kolik úloh je aktuálně zařazeno do dávkového systému? 4. Skript úlohy z předchozí ukázky vložte do samostatného adresáře a zařaďte jej do dávkového systému. Použijte frontu default. V čem se liší identifikátor úlohy od identifikátoru úlohy zařazené na čelním uzlu perian.ncbr.muni.cz? 5. Na jakém výpočetním uzlu se úloha spustila? Jak dlouho trvalo, než se úloha spustila? C2115 Praktický úvod do superpočítání -13-IX. lekce Alokace zdrojů zdroje se zadávají pomocí volby -l příkazu qsub, lze zadat více specifikací současně např: $ qsub -l select=1:ncpus=1:mem=400mb:scratch_local=10gb \ skript.sh nebo $ qsub -l select=1:ncpus=1:mem=400mb:scratch_local=10gb \ -l walltime=10:00 skript.sh https://wiki.metacentrum.cz/wiki/Pruvodce_pro_zacatecniky https://wiki.metacentrum.cz/wiki/Beginners_guide C2115 Praktický úvod do superpočítání -14-IX. lekce Počet a typ výpočetních uzlů a CPU select=[N1]chunk_specification1[+[N2]chunk_specification1] počet bloků (chunks) specifikace bloku Slouží pouze k rezervaci výpočetních zdrojů. To však neznamená, že úloha na přidělených výpočetních zdrojích bude automaticky spuštěna. Toto musí zajistit skript úlohy. Příklad: select=1:ncpus=1:mem=400mb:scratch_local=10gb C2115 Praktický úvod do superpočítání -15-IX. lekce Počet a typ výpočetních uzlů a CPU, II Seznam alokovaných CPU je dostupný jako seznam výpočetních uzlů uvedených v souboru, jehož název je uveden v systémové proměnné PBS_NODEFILE. Tato proměnná je dostupná v běžící úloze: Příklad: $ qsub -l select=1:ncpus=2+1:ncpus=1 skript.sh Výsledek: /var/spool/torque/aux//10312644.arien-pro.ics.muni.cz zubat2.ncbr.muni.cz zubat2.ncbr.muni.cz mandos2.ics.muni.cz Seznam CPU slotů je pak dostupný v úplném popisu úlohy, položka exec_host: $ qstat -f #!/bin/bash echo $PBS_NODEFILE cat $PBS_NODEFILE C2115 Praktický úvod do superpočítání -16-IX. lekce Počet a typ výpočetních uzlů a CPU, III Vlastnosti: Výpočetní uzly mohou mít specifikované vlastnosti. Jedná se o krátké řetězce, jejichž význam je závislý na administrátorech systému. Vlastnosti uzlů jsou vypisovány příkazem pbsnodes položka resources_available. Uživatel může ve specifikaci výpočetních zdrojů požadovat pouze takové výpočetní uzly, které mají specifikované vlastnosti. Příklady: select=1:ncpus=1:brno=True select=1:ncpus=1:os=debian80 select=1:ncpus=1:cl_tarkil=True select=1:ncpus=1:cluster=tarkil select=1:ncpus=1:vnode=zubat1 select=1:ncpus=1:vnode=^zubat1 exclusion C2115 Praktický úvod do superpočítání -17-IX. lekce Další specifikace zdrojů Zdroj Popis mem velikost paměti, jednotky mb, gb scratch_local velikost lokálního datového úložiště, jednotky mb, gb scratch_ssd velikost lokálního datového úložiště na SSD, jednotky mb, gb walltime maximální doba běhu úlohy ve spojení s frontou default V MetaCentru mohou být úlohy s nedostatečně specifikovanými požadavky na zdroje předčasně ukončeny. C2115 Praktický úvod do superpočítání -18-IX. lekce Kopírování souborů C2115 Praktický úvod do superpočítání -19-IX. lekce Kopírování souborů Torque/PBSPro má vnitřní podporu pro kopírování souborů pomocí stagein a stageout direktiv. Tento způsob je však prakticky nepoužitelný a uživatel by měl veškeré operace související s kopírováním dat na lokální datové úložiště zajistit v rámci úlohy (příkazy cp, scp, rsync). Tento způsob je popsán v dokumentaci MetaCentrum VO. User Interface (UI) (Frontend) /job/input/dir Computational Node #1 Worker Node (WN) /scratch/job_id/ scp, cp, rsync scp, cp, rsync V MetaCentrum VO a NCBR klastrech je umístění lokálního pracovního adresáře přiděleného dávkovým systémem uložen v proměnné SCRATCHDIR. C2115 Praktický úvod do superpočítání -20-IX. lekce MetaCentrum C2115 Praktický úvod do superpočítání -21-IX. lekce Dávkové systémy MetaCentrum VO se skládá ze tří oddělených dávkových systémů: ➢ meta-pbs.metacentrum.cz obsluhuje výpočetní uzly z MetaCentra, výchozí na všech čelních uzlech, kromě zuphux.cerit-sc.cz ➢ cerit-pbs.cerit-sc.cz obsluhuje výpočetní uzly z CERIT-SC, výchozí na čelním uzlu zuphux.cert-sc.cz ➢ elixir-pbs.elixir-czech.cz obsluhuje výpočetní uzly projektu ELIXIR, na které mohou být přesunuty úlohy z meta-pbs či cerit-pbs, pokud nejsou uzly vytížené Všechny systémy jsou uživatelsky kompatibilní (stejné volby), rozdíly je možné najít v dokumentaci MetaCentrum VO. Výchozí PBS server lze změnit nastavením proměnné PBS_SERVER, např. [kulhanek@zuphux ~]$ qstat [kulhanek@zuphux ~]$ export PBS_SERVER=meta-pbs.metacentrum.cz [kulhanek@zuphux ~]$ qstat vypíše úlohy z CERIT-SC vypíše úlohy z MetaCentra C2115 Praktický úvod do superpočítání -22-IX. lekce Spouštění programu gaussian v MetaCentru C2115 Praktický úvod do superpočítání -23-IX. lekce Cvičení 4 Cílem cvičení je vytvořit model molekuly C60 a vypočítat její molekulární vibrace semiempirickou kvantově-chemickou metodou PM6 v programu gaussian verze 16. Výsledek následujícího cvičení uvádějte do protokolu souhrnně, uvádějte pouze důležité informace. 1. Do programu Nemesis načtěte struktur molekuly C60 (File → Import structure from → XYZ). 2. Vytvořte vstupní soubor pro program gaussian (File → Export Structure as ... → Gaussian Input). Zvolte metodu PM6 a optimalizaci geometrie. Poté do vstupního souboru dopište klíčové slovo FREQ (za klíčové slovo Opt) a soubor uložte s příponou .com. 3. Vytvořený vstupní soubor přeneste na čelní uzel MetaCentra, připravte skript úlohy a úlohu zařaďte do dávkového systému. Postupujte podle dokumentace MetaCentra, úloha musí na výpočetním uzlu používat lokální datové úložiště. 4. Výsledek úlohy (soubor se zakončením .log) přeneste na vaši pracovní stanici a vypočítané molekulární vibrace zobrazte v programu Nemesis, podle návodu uvedenému dále. https://wiki.metacentrum.cz/wiki/Gaussian-GaussView C2115 Praktický úvod do superpočítání -24-IX. lekce Nemesis Spuštění programu: $ module add nemesis $ nemesis Myš: Levé tlačítko selekce Prostřední tlačítko rotace Pravé tlačítko posun Kolečko zoom Modifikátory: Shift XZ -> Y pohyby Ctrl přepíná mezi sekundárním a primárním manipulátorem C2115 Praktický úvod do superpočítání -25-IX. lekce Build Project vrstvy grafické modely stavba/editace molekuly měření geometrie Nastavení silového pole pro optimalizaci: menu Geometry-> Optimizer Setup optimalizace geometrie pomocí silového pole C2115 Praktický úvod do superpočítání -26-IX. lekce Trajectory: Vizualizace vibrací 1) Projekt: Trajectory 2) File->Import Trajectory as -> Gaussian Vibrations dvojklik dvojklik zvolíme vibraci spustíme animaci