Revize 1 C2115 Praktický úvod do superpočítání XIV. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno 15 Praktický úvod do superpočítání XIV. lekce Obsah > Infinity úloha, přehled příkazů > Spouštíme aplikace pmemd paralelní spouštění > Cvičení efektivita paralelního spouštění aplikaci pmemd 15 Praktický úvod do superpočítání XIV. lekce -2- Infinity https://lcc.ncbr.muni.cz/whitezone/development/infinity/ 15 Praktický úvod do superpočítání XIV. lekce -3- Přehled příkazů Správa software: • site • module aktivace logických výpočetních zdrojů aktivace/deaktivace software Správa úloh: • pqueues •pnodes • pqstat • pjobs • psubmit • pinfo •pgo • psync přehled front z dávkového systému dostupných uživateli přehled výpočetních uzlů dostupných uživateli přehled všech úloh zadaných do dávkového systému přehled úloh uživatele zadaných do dávkového systému zadání úlohy do dávkového systému informace o úloze přihlásí uživatele na výpočetní uzel, kde se úloha vykonává manuální synchronizace dat 15 Praktický úvod do superpočítání XIV. lekce Úloha Úloha musí splňovat následující podmínky: • každá úloha se spouští v samostatném adresáři • všechny vstupní data úlohy musí být v adresáři úlohy • adresáře úloh nesmí být do sebe zanořené • průběh úlohy je řízen skriptem nebo vstupním souborem (u automaticky detekovaných úloh) • skript úlohy musí být v bashi • ve skriptu úlohy se nesmí používat absolutní cesty, všechny cesty musí být uvedeny relativně k adresáři úlohy Skript úlohy Skript úlohy může být uvozen standardním interpretrem pro bash nebo speciálním interpretrem infinity-env, který nedovolí spuštění úlohy mimo výpočetní uzel. Druhý přístup zabraňuje případnému poškození/přepsání/smazání již vypočtených dat nechtěným opětovným spuštěním skriptu. #!/bin/bash # vlastni skript #!/usr/bin/env infinity-env # vlastni skript 15 Praktický úvod do superpočítání XIV. lekce Spuštění úlohy Úlohu spouštíme v adresáři úlohy příkazem psubmit. psubmit destination job [resources] destination (kam) je buď: • název_fronty • alias job je buď: • název skriptu úlohy • název vstupního souboru pro automaticky rozpoznávané úlohy resources jsou požadované zdroje pro úlohu, pokud není uvedeno, požaduje se běh na 1 CPU 15 Praktický úvod do superpočítání XIV. lekce Specifikace zdrojů (nejduležitější Zdroj i Popis ncpus celkový počet požadovaných CPU ngpus celkový počet požadovaných GPU nnodes počet výpočetních uzlů (WN) mem celková velikost požadované paměti (CPU), jednotky mb, gb walltime maximální doba běhu úlohy workdir typ pracovního adresáře na WN pláce způsob obsazovaní výpočetních uzlů props požadované vlastnosti výpočetních uzlů 15 Praktický úvod do superpočítání XIV. lekce Monitorování běhu úlohy K monitorování průběhu úlohy lze použít příkaz pinfo, který se spouští buď v adresáři úlohy nebo v pracovním adresáři na výpočetním uzlu. Dalšími možnostmi jsou příkazy pjobs a pqstat. Pokud je úloha spuštěna na výpočetním uzlu, je možné použít příkaz pgo, který přihlásí uživatele na výpočetní uzel a změní aktuální adresář do pracovního adresáře úlohy. Uživatelský interface (Ul) /any/directory -----.— ^job/input/dir / bez argumentu pgo Výpočetní uzel (WN) working/directory/ pgo j ob id Monitoring úlohy v terminálu. 15 Praktický úvod do superpočítání XIV lekce Servisní soubory V adresáři úlohy vznikají při zadání úlohy do dávkového systému a dále v průběhu života úlohy a po jejím ukončení servisní soubory. Jejich význam je následující: • *.info kontrolní soubor s informacemi o průběhu úlohy • *.infex vlastní skript (wrapper), který se spouští dávkovým systémem • *.infout standardní výstup z běhu *.infex skriptu, nutno analyzovat při nestandardním ukončení úlohy • *.nodes seznam uzlů vyhrazených pro úlohu • *.mpinodes seznam uzlů vyhrazených pro úlohu ve formátu pro OpenMP • *.gpus seznam GPU karet vyhrazených pro úlohu • *.key unikátní identifikátor úlohy • *.stdout standardní výstup z běhu skriptu úlohy 15 Praktický úvod do superpočítání XIV. lekce Synchronizace dat Výchozí pracovní režim Zdroj Význam workdir=scratch-local Data se zkopírují ze vstupního adresáře úlohy do pracovního adresáře ve výpočetním uzlu. Pracovní adresář je vytvořen na začátku úlohy dávkovým systémem. Po dokončení úlohy se všechna data z pracovního adresáře zkopírují zpět do vstupního adresáře úlohy. Nakonec bude pracovní adresář odstraněn, pokud byl přenos dat úspěšný. er Interface (Ul) (Frontend) job/input/dir dataout=copy-master rsync datain=copy-master rsync 15 Praktický úvod do superpočítání Computational Node #1 Worker Node (WN) /scratch/job_id/ Synchronizace dat, pokr. Vhodné pro analýzy Zdroj Význam workdir=jobdir Data úlohy jsou na sdíleném úložišti. sdílené uloziste /job/input/dir Computational Node #1 Worker Node (WN) 15 Praktický úvod do superpočítání XIV. lekce Spouštíme aplikace 15 Praktický úvod do superpočítání XIV. lekce Požadavek/využití zdrojů Nativní dávkový systém (PBSPro) uživatel určuje požadované výpočetní zdroje uživatel musí zajistit, aby úloha přiřazené výpočetní zdroje využila Infinity uživatel určuje požadované výpočetní • prostředí Infinity zajistí správné zdroje spuštění úlohy (pouze vybrané aplikace) • (ostatní úlohy) uživatel musí zajistit, aby úloha přiřazené výpočetní zdroje využila 15 Praktický úvod do superpočítání XIV. lekce -14- pmemd pmemd je program určen pro molekulovou dynamiku. Podrobnější informace lze nalézt zde: http://ambermd.org Skript pro běh aplikace na CPU: #!/bin/bash # aktivovat modul amber obsahujici aplikaci # pmemd module add amber # spuštěni aplikace pmemd -O -i prod.in -p 6000.parm7 \ -c 6000.rst7 15 Praktický úvod do superpočítání XIV. lekce -15- [ pmemd - paralelní běh Při paralelním spouštění se mění jen zadání zdrojů u příkazu psubmit. Ostatní se nemění! (zůstávají stejná vstupní data a skript úlohy). $ psubmit default rum.sh ncpus=l může se vynechat *.stdout Module build: amber:16.0:x86 64:single Výpočetní uzel: S %CPU %MEM TIME+ COMMAND $ psubmit default run.sh ncpus=2 *.stdout Module build: amber:16.0:x86 64:para Výpočetní uzel: ; S %CPU %MEM RE Pí? TIME+ COMMAND ,0 0.2 0:03.64 ,0 0.2 0:03.64 .3 ';](:■ mm 0:00.06 91 R 99.7 0.2 0:06.41 pmemd S G.3 0.0 0:00.01 sshd R 8.3 0.0 0:00.09 top 15 Praktický úvod do superpočítání XIV. lekce -16- Cvičení 15 Praktický úvod do superpočítání XIV. lekce -17- Cvičení 1 Vstupní data úlohy jsou na klastru WOLF v adresáři: /home/kulhanek/Documents/C2115/data/chitin/cpu 1. Cílem cvičení je určit jak dobře škáluje aplikace pmemd v rozsahu počtu CPU, které jsou násobky dvou. Určete skutečnou a teoretickou délku výpočtu, reálné urychlení a reálné využití CPU v procentech. Do grafu vyneste reálné urychlení jako funkci počtu CPU. Nalezenou křivku porovnejte s křivkou pro ideální škálování. 2. Úlohy zadávejte pomocí prostředí Infinity s proměnným množstvím ncpus. Každý test spouštějte v samostatném adresáři. Bez ohledu na počet ncpus vždy požadujte celý uzel (place=excl) a používejte stejný výpočetní uzel (props=vnode=wolf30). Způsob zadání úlohy: $ psubmit default run.sh ncpus=8 place=excl props=vnode=wolf30 Viz následují stránka s poznámkami 15 Praktický úvod do superpočítání XIV. lekce -18- pmemd Délka simulace: Délka simulace (výpočtu) je určena klíčovým slovem (nstlim) uvedeným v souboru prod.in, který určuje počet integračních kroků. Velikost nstlim zvolte tak, aby doba běhu úlohy byla cca 60 minut na 1 CPU. Výsledkem simulace jsou soubory: mdout mdinfo <— obsahuje statistické informace, např. kolik ns za den je program schopen nasimulovat mdcrd restrt 15 Praktický úvod do superpočítání XIV lekce -19-