Praktické užití ML frameworku v MetaCentru Michal Starý, Adam Hájek Motivace Pytorch & GPU MetaCentrum - gridové a cloudové služby - přístup k masivním výpočetním zdrojům - stroje s desítkami CPU jádry, moderními GPU kartami, ... A100 20x T4 120x ... Gridové služby 0) Registrace do systému MetaCentra 1) Alokace zdrojů - CPU jádra, GPU karty, RAM, scratch na požadovanou dobu (max 24h*) 2) Přidělení zdrojů - běžné požadavky (např.16 jader, 20GB RAM, 2 GPU T4 -> řádově minuty) - záleží na dni/denní době 3) Využití zdrojů * Možnost dlouhých GPU front až na 14 dní - alokace zdrojů pomocí příkazu qsub - Interaktivní mód - přepojení na stroj s požadovanými zdroji - standardní CLI - +: můžeme zasahovat do procesů, spouštět je víckrát a sledovat výpisy bez nutnosti dokola alokovat - - : přerušení spojení/zavření terminálu → přicházíme o zdroje a neuložené výpočty - jenicek@elmo5-26~: qsub -I -l select=1:ncpus=2:mem=4gb:scratch_local=10gb -l walltime=1:00:00 - Dávkový mód (Batch mode) - požadavky na zdroje ve spouštěcím bash skriptu - +: úloha jede samostatně, skončí až vyprší čas - - : nevidíme na výpočet, dokud neskončí (řešení: logování do souborů během výpočtu) - konkrétní příkazy a použití na https://wiki.metacentrum.cz/wiki/Beginners_guide#Batch_or_interactive_job.3F Prakticky - módy spuštění úloh Jupyter mód - jupyter spuštěný v batch mode - přístup k úloze přes URL - +: máme k dispozici UI jupyteru, terminál, - +: vše je plně interaktivní, - +: o přístup ke zdrojům při vypnutí počítače nepřijdeme Jupyter Lab ● IPython prostředí (Jupyter Notebook) ● přímá instalace balíčků ● přístup k terminálu Práce s Jupyter Laby lokálně i remote 1) lokální 2) remote přes ssh forwarding 3) remote nad Metacentrem Lokální - server i klient běží na našem počítači - k dispozici pouze lokální zdroje My NTB https connection browser localhost Remote na vlastní (klasický) server - připojení k serveru se zdroji, bez veřejné IP adresy / bez veřejných portů - stále stejná workflow - +: výpočet běží na serveru My NTB Public server Private server ssh forwarding ssh forwarding screen Jupyter Lab https connection Remote nad Metacentrem - připojení k serveru s veřejnou IP adresou - složitější kvůli alokaci zdrojů - +: výpočet běží na serverech MetaCentra, - +: použití Singularity (má i nevýhody, viz dále) My NTB Meta backend https connection singularity Jupyter Lab Skripty (rychlý rozbor kódu a jak ho personalizovat) Nvidia Singularity Image - Singularity ≈ Docker pro HPC - spustí i Docker image - předpřipravené image v metacentru (/cvmfs/singularity.metacentrum.cz/NGC) - +: uzavřené prostředí, odladěná kompatibilita, snadná aktualizace, možnost doinstalovat balíčky přes pip - - : složitější odinstalace původních balíků a složitější instalace přes apt-get - tyto operace potřebují přebuildování kontejnerů - - - - - - další ke stažení: https://ngc.nvidia.com/catalog Problémy které řešíme - složité rebuildování Singularity image - multi node / multi GPU trénink Děkujeme za pozornost Adam: 485410@mail.muni.com Michal: 485367@mail.muni.com