Revize 1 C2115 Praktický úvod do superpočítání XV. 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í XV. lekce Obsah > GPGPU srovnání s CPU > Spouštíme aplikace pmemd na GPU 15 Praktický úvod do superpočítání XV. lekce -2- GPGPU General-purpose computing on graphics processing units Nvidia Tesla P100 15 Praktický úvod do superpočítání XV. 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í XV. 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í XV. 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í XV. lekce Cvičení 15 Praktický úvod do superpočítání XV. 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í XV. 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 1GPU v samostatném adresáři v prostředí Infinity, požadujte celý uzel (place=excl) a používejte stejný výpočetní uzel (props=vnode=wolf30). 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 props=vnode=wolf30 15 Praktický úvod do superpočítání XV. lekce -9-