Revize 2 C2115 Praktický úvod do superpočítání 14. 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í 14. lekce Obsah > Infinity úloha, přehled příkazů > Spouštíme aplikace gaussian, pmemd paralelní spouštění > Cvičení efektivita paralelního spouštění aplikaci pmemd 15 Praktický úvod do superpočítání 14. lekce -2- Infinity https://lcc.ncbr.muni.cz/whitezone/development/infinity/ 15 Praktický úvod do superpočítání 14. 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í 14. 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í 14. 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í 14. 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í 14. 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í 14. 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í 14. 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í 14. lekce Spouštíme aplikace 15 Praktický úvod do superpočítání 14. 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í 14. 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í 14. 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í 14. lekce -16- gaussian, manual script preparatio The gaussian package contains tools for quantum chemical calculations. Detailed description can be found on http://www.gaussian.com #!/bin/bash # activate gaussian module module add gaussian:09.CI # execute gO 9 gO 9 input —r- input file input.com must contain specification for number of CPUs requested for parallel execution (this number MUST be consistent with resource specification via psubmit command). %NProcShared=4 ^ $ psubmit short test gaussian ncpus=4 15 Praktický úvod do superpočítání 14. lekce -17- gaussian, manual script preparatio The gaussian package contains tools for quantum chemical calculatjgte. Detailed description can be found on http://www.gaussian.com 4^ #!/bin/bash # execute g09 X/ g09 input ^ # activate gaussian module module add gaussian:09.CI r input file input.com must contain specification for number of CPUs requested for parallel execution (this number MUST be consistent with resource specification via psubmit command). %NProcShared=4 $ psubmit short test gaussian ncpus=4 15 Praktický úvod do superpočítání 14. lekce -18- gaussian, autodetection The ABS subsystem is able to recognize the gaussian job type. The job script is automatically created and the input file is automatically updated according to requested resources. $ module add gaussian $ psubmit short input.com ncpus=4 gaussian input file (must have .com extension), this is NOT job script! Autodetection: • job script is created automatically with correct gaussian binary name (g98, g03, g09) • %NProcShared is added or updated in the input file • check if only single node is requested (parallel execution is limited to a single node) [kulhanek@perian test]$ psubmit short input.com Job name Job title Job directory Job project Site name Job key metacentrum (Torque server: arien.ics.muni.cz) 38 4e3be5-9dac-4 05e-b2 35-7 4 60 9ae4c4 8 6 15 Praktický úvod do superpočítání 14. lekce -19- gaussian - single/parallel executic The only difference between sequential and parallel execution is in the resource specification during psubmit. The input data are the same! $ psubmit short input.com ncpus=l ft it can be omitted Computational node: s %cfu %mem time+ command R 100 1.2 1:01,25 I502.exe 5 0 0.1 1 138.57 :-:" - _ : $ psubmit short input.com ncpus=4 Computational node: em time+ command R 399 1 .1 1.1 0. ' 0:49.33 l502.exe 0:00.90 init V7 15 Praktický úvod do superpočítání 14. lekce Cvičení 15 Praktický úvod do superpočítání 14. lekce -21- Cvičení 1 1. Vypočítejte molekulární vibrace molekuly fulleren v programu gaussian. Úlohu zadejte na klastr WOLF pomocí prostředí infinity. Využijte autodetekce typu úlohy. Zdroje (velikost paměti a diskového prostoru) nastavte na hodnoty nalezené při spuštění úlohy v MetaCentru. 15 Praktický úvod do superpočítání 14. lekce -22- Cvičení 2 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 (vnode=wolf30). Způsob zadání úlohy: $ psubmit default run.sh ncpus=8 place=excl vnode=wolf30 Viz následují stránka s poznámkami 15 Praktický úvod do superpočítání 14. lekce -23- 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í 14. lekce -24-