C2115 Praktický úvod do superpočítání VII. lekce Petr Kulhánek, Jakub Štěpán kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno raktický úvod do superpočítání Obsah > Infinity úloha, přehled příkazů, aliasy > Spouštíme aplikace sander, pmemd, gaussian, paralelní spouštění > Cvičení efektivita paralelního spouštění aplikaci sander, pmemd, gaussian raktický úvod do superpočítání Infinity https://lcc.ncbr.muni.cz/whitezone/development/infinity/ rakticky uvod do superpocitani -3- Přehled příkazů Správa software: • site aktivace logických výpočetních zdrojů • module aktivace/deaktivace software Správa úloh: • pqueues přehled front z dávkového systému dostupných uživateli • pnodes přehled výpočetních uzlů dostupných uživateli • pqstat přehled všech úloh zadaných do dávkového systému • pjobs přehled úloh uživatele zadaných do dávkového systému • psubmit zadání úlohy do dávkového systému • pinfo informace o úloze • pgo přihlásí uživatele na výpočetní uzel, kde se úloha vykonává • paliases definovaní aliasů raktický úvod do superpočítání Ú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 raktický úvod do superpočítání Skript úlohy Skript úlohy může být uvozen standardním interpretrem pro nebo speciálním interpretrem , 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 2115 Praktický úvod do superpočítání Spuštění úlohy Úlohu spouštíme v adresáři úlohy příkazem psubmit. psubmit destination job [resources] [syncmode] destination (kam) je buď: • název_fronty • název_uzlu@název_fronty 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 syncmode určuje způsob kopírování dat mezi adresářem úlohy a výpočetním uzlem, výchozím módem je "syne" raktický úvod do superpočítání 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ý se naloguje na výpočetní uzel a změní aktuální adresář do pracovního adresáře úlohy raktický úvod do superpočítání -8- 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í: kontrolní soubor s informacemi o průběhu úlohy vlastní skript (wrapper), který se spouští dávkovým systémem standardní výstup z běhu *.infex skriptu, nutno analyzovat při nestandardním ukončení úlohy seznam uzlů vyhrazených pro úlohu seznam GPU karet vyhrazených pro úlohu unikátní identifikátor úlohy standardní výstup z běhu skriptu úlohy *.info *.infex *.infout *.nodes ■gpus • *.key • *.stdout raktický úvod do superpočítání Spouštíme aplikace raktický úvod do superpočítání sander je program určen pro molekulovou dynamiku. Podrobnější informace lze nalézt zde http://ambermd.org #!/bin/bash # aktivovat modul amber obsahujici aplikace # sander a pmemd module add amber # spuštěni aplikace sander -O -i prod.in -p topology.parm7 \ -c input.rst7 C2115 Praktický úvod do superpočítání pmemd je program určen pro molekulovou dynamiku. Podrobnější informace lze nalézt zde: http://ambermd.org #!/bin/bash # aktivovat modul amber obsahujici aplikace # sander a pmemd module add amber # spuštěni aplikace pmemd -O -i prod, in -p topology .parm7 \ -c input.rst7 C2115 Praktický úvod do superpočítání sander/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ů. Výsledkem simulace jsou soubory: mdout mdinfo <-- obsahuje statistické informace, např. kolik ns za den je program schopen nasimulovat mdcrd restrt raktický úvod do superpočítání -13- sander/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 short test_sander ncpus=l může se vynechat *.stdout Module build: amber:12.0:x86 64:single Výpočetní uzel: S %CPU %MEM TIME+ COMMAND R R EKU $ psubmit short test sander ncpus=2 *.stdout Module build: amber:12.0:x86 64:para Výpočetní uzel: %CPU %MEM TIME+ COMMAND mm .7 ES raktický úvod do superpočítání Cvičení Vstupní data: /home/kulhanek/Data/2115/data/sander/small 1. Spusťte úlohu na 1CPU na klastru wolf. 2. Spusťte úlohu na 2CPU na klastru wolf. raktický úvod do superpočítání gaussian gaussian je program určen pro kvantově-chemické výpočty. Podrobnější informace lze nalézt zde: http://www.gaussian.com # spuštěni aplikace g09 input #!/bin/bash # aktivovat modul gaussian module add gaussian vstupní soubor bez zakončení C2115 Praktický úvod do superpočítání gaussian Délka výpočtu: Délku výpočtu lze ovlivnit maximálním počtem optimalizačních kroku (MaxCycIe vstupním souboru). Výsledkem výpočtu je soubor: input.log raktický úvod do superpočítání gaussian - paralelní běh Při paralelním spouštění se mění zadání zdrojů u příkazu psubmit vstupní soubor pro input.com (první řádek) %NProcShared=l input.com (první řádek) %NProcShared=4 identické číslo $ psubmit short test gaussian ncpus=l $ psubmit short test gaussian pus=4 může se vynechat Výpočetní uzel: 100 1.2 0 0,1 1:01,25 1502,exe 1:38 . 57 pt>s_moin Výpočetní uzel: Rl 333 11.1 S\ 0/0,1 0:43.38 I502.exe 0:00.30 init C2115 Praktický úvod do superpočítání gaussian - paralelní běh, II Při spouštění výpočtů v gaussianu lze využít autodetekci. Bez autodetekce: input.com (první řádek) %NProcShared=4 identické číslo! $ psubmit short test gaussian ncpus=4 S autodetekcí: input.com (nemusí obsahovat %NProcShared=4 $ psubmit short input.com ncpus=4 raktický úvod do superpočítání Cvičení Vstupní data: /home/kulhanek/Data/2115/data/gaussian 1. Spusťte úlohu na 1CPU na klastru wolf. 2. Spusťte úlohu na 2CPU na klastru wolf. raktický úvod do superpočítání Cvičení raktický úvod do superpočítání Cvičení LVII.l Cílem cvičení je určit jak dobře škálují aplikace sander, pmemd a gaussian na klastru SOKAR v rozsahu počtu CPU 1, 2, 4, 8, 16, 32 a 64. Pro každý počet CPU určete délku výpočtu na uzlu, který je zatížen jen na daný počet CPU. Dále určete 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í. Testovací výpočty můžete provádět na klastru WOLF. Finální výpočty pak budete provádět na klastru SOKAR. Ověřte, zda-li máte správně nastavené ssh klíče. K výpočtům máte vyhrazeny dva uzly s 64 CPU ve frontě long. Uzly mají vlastnost c2115. Při zadávání úlohy budete vždy požadovat 64 CPU, ve skriptu (nebo vstupním souboru) budete počet CPU "snižovat" na požadovaný počet CPU. Vstupní data jsou na klastru WOLF v adresářích: /home/kulhanek/Data/2115/data /pmemd/medium/ /home/kulhanek/Data/2115/data /pmemd/small/ /home/kulhanek/Data/2115/data /pmemd/big/ /home/kulhanek/Data/2115/data /sander/medium/ /home/kulhanek/Data/2115/data /sander/small/ /home/kulhanek/Data/2115/data /sander/big/ /home/kulhanek/Data/2115/data /gaussian/ raktický úvod do superpočítání Snížení počtu CPU pro účely testování N = požadovaný počet CPU INF_NCPU=N AMS_NCPU=$INF_NCPU # aktivovat modul amber obsahujici aplikace # sander a pmemd module add amber $ psubmit long test_sander ncpus=64,props=c2115 vždy 64 input.com (první řádek) %NProcShared=N <- N = požadovaný počet CPU $ psubmit long test_gaussian ncpus=64,props=c2115 vždy 64 raktický úvod do superpočítání Cvičení LVII.2 Dle dokumentace na stránkách MetaCentra spusťte úlohu v gaussianu, vstupní soubo vemte z předchozí úlohy. raktický úvod do superpočítání