Revize 1 C2115 Praktický úvod do superpočítání 15. 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í 15. lekce Obsah > GPGPU srovnání s CPU > Spouštíme aplikace na GPU ■ pmemd (MD simulace - chitinové vlákno) ■ alphafold (predikce 3D struktury z primární sekvence) 15 Praktický úvod do superpočítání 15. lekce -2- GPGPU General-purpose computing on graphics processing units Nvidia Tesla P100 15 Praktický úvod do superpočítání 15. lekce -3- CPU vs GPU https://docs.nvidiaxom/cuda/cuda-c-programming-guide/index.htm CPU GPU GPU obsahuje velké množství GPU výpočetních jader, které jsou organizované do skupin (SM, streaming processors). GPU vykonává výpočetní operace nad skupinou dat, jedná se tedy o vektorové zpracovaní dat. Příklad: Nvidia RTX 3070 • 5,888 CUDA cores • 46 Streaming Multiprocessors Demonstrační video: https://www.youtube.com/watch?v=-P28LKWTzrl 15 Praktický úvod do superpočítání 15. lekce Použití GPU Paralelizace úloh využívajících k běhu GPU vyžaduje netriviální úpravy v algoritmech a použití speciálních vývojových prostředí. Způsob programovaní: • Nvidia CUDA • OpenCL (Nvidia, AMD, apod.) • nebo využití optimalizovaných knihoven • cuBLAS, cuFFT, apod. 15 Praktický úvod do superpočítání 15. lekce -5- Monitoring GPU úloh (Nvidia) • V dávkových systémech jsou úloze dostupné pouze přidělené GPU (ovlivňuje proměnná CUDA_VISIBLE_DEVICES, kterou nastavuje dávkový systém). • Běh úloh na GPU je možné monitorovat pomocí nástroje nvidia-smi. [kulhanek@wolf30 main]$ nvidia-smi Mon Mar 1 20:37:41 2021 +---------------------------------- - + I NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 | I-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+=== | 0 GeForce RTX 3070 Off | 00000000:01:00.0 Off | | 0% 48C P8 15W / 240W | 257MiB / 7982MiB | I I I +-------------------------------+----------------------+--- | 1 GeForce RTX 3070 Off | 00000000:C1:00.0 Off | | 0% 42C P8 7W / 240W | 2MiB / 7982MiB | I I I +-------------------------------+----------------------+--- 0£ 0£ ========= I N/A I Default I N/A I ---------+ N/A I Default I N/A I ---------+ Processes: GPU GI CI PID Type Process name GPU Memory ID ID Usage 0 N/A N/A 9252 C pmemd.cuda 255MÍB 15 Praktický úvod do superpočítání 15. lekce Cvičení 15 Praktický úvod do superpočítání 15. lekce pmemd.cuda • pmemd je program určen pro molekulovou dynamiku. Podrobnější informace lze nalézt zde: http://ambermd.org • Skript pro běh aplikace na GPU: #!/bin/bash # aktivovat pmemd pro GPU module add pmemd-cuda: 18.1 # spuštěni aplikace pmemd.cuda -0 -i prod. in -p 6000.parm7 \ -c 6000.rst7 15 Praktický úvod do superpočítání 15. lekce -8- Cvičení 1 Vstupní data jsou na klastru WOLF v adresáři: /home/kulhanek/Documents/C2115/data/chitin 1. Určete výkon pmemd na 1 GPU v ns za den a srovnejte s nejvýkonnějším během pmemd na CPU (cvičení L14.C1). 2. Úlohu spusťte na 1 GPU v samostatném adresáři v prostředí Infinity, požadujte celý uzel (place=excl) a používejte stejný výpočetní uzel (vnode=wolf33). 3. Běh úlohy na výpočetním uzlu monitorujte nástrojem nvidia-smi. Zadaní úlohy do dávkového systému: $ psubmit default run.sh ngpus=l place=excl vnode=wolf33 15 Praktický úvod do superpočítání 15. lekce -9- Alphafold https://doi.org/10.1038/s41586-021-03819-2 it AlphaFold Experiment r.m.s.d.M = 0.BÁ; TM-score = 0.93 AlphaFold Experiment r. m. s.d. = 0.59 Á within B A of Zn AlphaFold Experiment r.m.s.d.,™ = 2.2A; TM-score = 0.96 ftT T T ŤtŤ Input sequence [ T Ť T f t Q TTTŤ Ť Genet in database search £>t TtTt $1 Tttrt ^1 T T ŤT T J -(^Pairing^ Slrudure HI catabase ^search ^ Evoformer (48 blocks} T T Ť t H? | EinglE repr. fr.c) | ŤŤTŤ t Pair repraEBntation Structure module (6 blocks) High confidence Low confidence 3D structure t- Recycling (three times) CPU GPU 15 Praktický úvod do superpočítání CPU/GPU 15. lekce Spuštění úlohy alphafold vyžaduje CPU i GPU • MSA běží na CPU • predikce struktury využívá GPU (pouze jedno GPU) • optimalizace geometrie využívá CPU/GPU • podrobnosti: module help alphafold #!/usr/bin/env infinity-env # aktivovat alphafold module add alphafold # spusteni predikce pro input.fasta alphafold -f input.fasta 15 Praktický úvod do superpočítání 15. lekce Cvičení 2 Vstupní data jsou na klastru WOLF v adresáři: /home/kulhanek/Documents/C2115/data/chitin 1. Proveďte predikci 3D struktury z primární sekvence aminokyselin pomocí programu Alphafold. Úlohu zadávejte na klastr WOLF. 2. Běh úlohy na výpočetním uzlu monitorujte nástrojem nvidia-smi. Zadaní úlohy do dávkového systému: $ psubmit default alphafold.sh ncpus=8 ngpus=l mem=40gb 15 Praktický úvod do superpočítání 15. lekce