IT wiki

VU MIF STSC

User Tools

Site Tools


hpc

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
hpc [2021/12/14 09:55] – [Nuorodos] mif04031hpc [2022/02/24 10:20] – [Mokymų medžiaga] rolnas
Linija 2: Linija 2:
  
 Paskirstytų skaičiavimų tinklas (PST) yra specialiai paruoštas kompiuterių tinklas, kuriame yra galimybė vykdyti programas, kurios galėtų efektyviai apsikeisti duomenimis. Paskirstytų skaičiavimų tinklas (PST) yra specialiai paruoštas kompiuterių tinklas, kuriame yra galimybė vykdyti programas, kurios galėtų efektyviai apsikeisti duomenimis.
- 
-**Vyksta TESTAVIMAS iki 2021m gruodžio 31d, galite naudotis, bet nėra garantuojamas duomenų išsaugojimas.** 
  
 VU MIF PST sudaro superkompiuteris iš telkinių (pirmas skaičius - faktiškai pasiekiamas kiekis): VU MIF PST sudaro superkompiuteris iš telkinių (pirmas skaičius - faktiškai pasiekiamas kiekis):
Linija 29: Linija 27:
 $ singularity exec -w /tmp/python pip install paketas $ singularity exec -w /tmp/python pip install paketas
 $ singularity build python.sif /tmp/python $ singularity build python.sif /tmp/python
-$ rm -/tmp/python+$ rm -rf /tmp/python
 </code> </code>
 Analogiškai galima pasinaudoti R, Julia ar kitais konteineriais, kuriuose paketams instaliuoti nereikia naudotojo root teisių. Analogiškai galima pasinaudoti R, Julia ar kitais konteineriais, kuriuose paketams instaliuoti nereikia naudotojo root teisių.
 +
 +Jeigu norima papildyti singularity kontainerį OS paketais, tam reikia root/superuser teisių. Su fakeroot jas simuliuojame, o jam reikalingas bibliotekas kataloge ''/usr/lib/x86_64-linux-gnu/libfakeroot'' prikabiname į konteinerį, pvz:
 +<code shell>
 +$ singularity build --sandbox /tmp/python docker://ubuntu:18.04
 +$ mkdir /tmp/python/usr/lib/x86_64-linux-gnu/libfakeroot
 +$ fakeroot singularity exec -B /usr/lib/x86_64-linux-gnu/libfakeroot -w /tmp/python apt-get update
 +$ fakeroot singularity exec -B /usr/lib/x86_64-linux-gnu/libfakeroot -w /tmp/python apt-get install python3.8 ...
 +$ fakeroot singularity exec -B /usr/lib/x86_64-linux-gnu/libfakeroot -w /tmp/python apt-get clean
 +$ rm -rf /tmp/python/var/lib/apt/lists (galima ir daugiau išvalyti, ko nereikia)
 +$ singularity build python.sif /tmp/python
 +$ rm -rf /tmp/python
 +</code>
  
 Kataloge ''/apps/local/bigdata'' yra paruošti scenarijai pasileisti savo **hadoop** užduotis pasinaudojant [[https://github.com/LLNL/magpie|Magpie]] rinkiniu. Kataloge ''/apps/local/bigdata'' yra paruošti scenarijai pasileisti savo **hadoop** užduotis pasinaudojant [[https://github.com/LLNL/magpie|Magpie]] rinkiniu.
Linija 42: Linija 52:
 </code> </code>
  
 +Taip pat jūs galite pasinaudoti savo pasidarytu konteineriu per JupyterHub. Tame konteineryje reikia instaliuoti ''batchswapner'' ir ''jupyterlab'' paketus bei sukurti script'ą ''~/.local/bin/batchspawner-singleuser'' su vykdymo teisėmis (''chmod +x ~/.local/bin/batchspawner-singleuser'')
 +<code shell>
 +#!/bin/sh
 +exec singularity exec --nv myjupyterlab.sif batchspawner-singleuser "$@"
 +</code>
 ====== Registracija ====== ====== Registracija ======
  
Linija 99: Linija 114:
  
 <code shell mpi-test-job.sh> <code shell mpi-test-job.sh>
-#!/bin/sh+#!/bin/bash
 #SBATCH -p main #SBATCH -p main
 #SBATCH -n4 #SBATCH -n4
Linija 106: Linija 121:
 mpirun mpi-test mpirun mpi-test
 </code> </code>
 +
 +Pateikus paraišką ITAPC ir gavus teigimą sprendimą, reikia susikurti naudotoją https://hpc.mif.vu.lt/. Sukurtas naudotojas bus įtrauktas į atitinkamą projektą, kuris turės tam tikrą kiekį resursų. Norint naudoti projekto resursus atliekant skaičiavimus reikia nurodyti savo alokacijos numerį. Žemiau pateiktas pavyzdys su nustatytu alokacijos parametru "alloc_xxxx_projektas".
 +
 +<code shell mpi-test-job.sh>
 +#!/bin/bash
 +#SBATCH --account=alloc_xxxx_projektas
 +#SBATCH -p main
 +#SBATCH -n4
 +#SBATCH --time=minutes
 +module load openmpi
 +mpicc -o mpi-test mpi-test.c
 +mpirun mpi-test
 +</code>
 +
  
 Jame kaip specialūs komentarai yra nurodymai užduočių vykdytojui. Jame kaip specialūs komentarai yra nurodymai užduočių vykdytojui.
--p short - į kokią eilę siųsti (main, gpu, power). + 
--n4 - kiek procesorių rezervuoti.+ -p short - į kokią eilę siųsti (main, gpu, power). 
 + 
 + -n4 - kiek procesorių rezervuoti (**PASTABA:** nustačius naudotinų branduolių skaičių x, tačiau realiai programiškai išnaudojant mažiau, apskaitoje vis tiek bus skaičiuojami visi x "užprašyti" branduoliai, todėl rekomenduojame apsiskaičiuoti iš anksto).
  
 Užduoties pradinis einamasis katalogas yra dabartinis katalogas (**pwd**) prisijungimo mazge iš kur paleidžiama užduotis, nebent parametru -D pakeistas į kitą. Pradiniam einamajam katalogui naudokite PST bendros failų sistemos katalogus **/scratch/lustre**, nes jis turi egzistuoti skaičiavimo mazge ir ten yra kuriamas užduoties išvesties failas **slurm-JOBID.out**, nebent nukreiptas kitur parametrais -o arba -i (jiems irgi patariama naudoti bendrą failų sistemą). Užduoties pradinis einamasis katalogas yra dabartinis katalogas (**pwd**) prisijungimo mazge iš kur paleidžiama užduotis, nebent parametru -D pakeistas į kitą. Pradiniam einamajam katalogui naudokite PST bendros failų sistemos katalogus **/scratch/lustre**, nes jis turi egzistuoti skaičiavimo mazge ir ten yra kuriamas užduoties išvesties failas **slurm-JOBID.out**, nebent nukreiptas kitur parametrais -o arba -i (jiems irgi patariama naudoti bendrą failų sistemą).
Linija 212: Linija 243:
   * Jeigu naudosite parametrą ''--mem=X'', tai užduotis gali rezervuoti daugiau **CPUs** proporcingai norimos atminties kiekiui. Pvz: užsakius ''--mem=14000'' eilėje **main**, bus užsakyti ne mažiau 2 CPUs, jei kiti parametrai nenurodo daugiau. Jeigu jūsų užduotis naudos mažiau, tai bus neefektyvus resursų naudojimas, be to tai gali veikti lėčiau, nes gali būti naudojama kita, nei vykdančio, procesoriaus atmintis.   * Jeigu naudosite parametrą ''--mem=X'', tai užduotis gali rezervuoti daugiau **CPUs** proporcingai norimos atminties kiekiui. Pvz: užsakius ''--mem=14000'' eilėje **main**, bus užsakyti ne mažiau 2 CPUs, jei kiti parametrai nenurodo daugiau. Jeigu jūsų užduotis naudos mažiau, tai bus neefektyvus resursų naudojimas, be to tai gali veikti lėčiau, nes gali būti naudojama kita, nei vykdančio, procesoriaus atmintis.
  
-====== Nuorodos ir mokymo medžiaga ======+====== Resursų limitai ====== 
 + 
 +Jeigu jūsų užduotys nestartuoja su priežastimi **AssocGrpCPUMinutesLimit** arba **AssocGrpGRESMinutes**, 
 + tai pasitikrinkite ar užduotims dar liko neišnaudotų CPU/GPU resursų iš (mėnesio) limito. 
 + 
 +Peržiūrėti kiek išnaudota resursų 
 + 
 +<code> 
 +sreport -T cpu,mem,gres/gpu cluster AccountUtilizationByUser Start=0101 End=0131 User=USERNAME 
 +</code> 
 + 
 +kur **USERNAME** jūsų MIF naudotojo vardas, o **Start** ir **End** nurodo einamojo mėnesio pradžios ir pabaigos datas. Jas galima nurodyti ir kaip ''$(date +%m01)'' ir ''$(date +%m31)'', kas nurodo einamojo mėnesio pirmą ir paskutines dienas. 
 + 
 +Atkreipkite dėmesį, kad naudojimas pateikiamas minutėmis, o į valandas konvertuoti reikia dalinant iš 60. 
 + 
 +Kitas būdas pažiūrėti limitus ir jų išnaudojimą 
 + 
 +<code> 
 +sshare -l -A USERNAME_mif -p -o GrpTRESRaw,GrpTRESMins,TRESRunMins 
 +</code> 
 + 
 +kur **USERNAME** MIF naudotojo vardas. Arba parametre **-A** nurodyti tą sąskaitą (account), kurio naudojimą norima pažiūrėti. Duomenys pateikiami minutėmis. **GrpTRESRaw** - kiek išnaudota. **GrpTRESMins** - koks yra limitas. **TRESRunMins** - likę resursai dar vis vykdomų užduočių. 
 + 
 +====== Mokymų medžiaga ====== 
 + 
 + 
 +**1 mokymų dalis** 
 + 
 + * Trumpai apie HPC, kas tai yra, kam jo reikia 
 + * Kokie HPC būna, koks yra VU ir kokia MIF dalis 
 + * Kaip prisijungti MIF darbuotojams / studentams prie HPC 
 + * SSH rakto kūrimas ir naudojimas Windows aplinkoje 
 + * WinScp naudojimas Windows aplinkoje 
 + 
 + 
 + * [[https://drive.mif.vu.lt/s/xcK4cS8k3rZoKG9|Įvadas į HPC (skaidrės)]] 
 + * [[https://drive.mif.vu.lt/s/ipy3FLNGnEqm8TE|Įvadas į HPC (video) ]] 
 + 
 +**2 mokymų dalis** 
 + 
 + - Slurm komandos darbams paleisti/stabdyti ar progresui peržiūrėti. 
 + 
 + - Sbatch failas ir jo tipiniai parametrai CPU ir GPU particijoms 
 + 
 + - Darbai interaktyviu režimu ir darbai liekantys veikti po atsijungimo (Sbatch) 
 + 
 + - Python/R/julia ar kitų kalbų paketų diegimas
  
-1 mokymų dalis+ - Singularity konteineriai: atsisiuntimas ir/arba esamų modifikavimas
  
- Trumpai apie HPC, kas tai yra, kam jo reikia+ Darbas su MPI
  
-Kokie HPC būna, koks yra VU ir kokia MIF dalis+ Rezultatų išvedimas ir parsisiuntimas į naudotojo kompiuterį
  
-Kaip prisijungti MIF darbuotojams / studentams prie HPC+ Papildomų resursų užsakymai (Waldur)
  
-- SSH rakto kūrimas ir naudojimas Windows aplinkoje+ * [[https://drive.mif.vu.lt/s/tHGtLZHbyQHpXK8|Užduočių valdymas, naudotojų PĮ ir CPU skaičiavimai HPC infrastruktūroje (skaidrės)]]
  
-- WinScp naudojimas Windows aplinkoje + * [[https://drive.mif.vu.lt/s/mDTbB3stWe9AKyS|Užduočių valdymas, naudotojų PĮ ir CPU skaičiavimai HPC infrastruktūroje (video)]]
-  * [[https://drive.mif.vu.lt/s/xcK4cS8k3rZoKG9vadas į HPC skaidrės]] +
-  * [[https://drive.mif.vu.lt/s/ipy3FLNGnEqm8TE|Įvadas į HPC video ]]+
  
-mokymų dalis+**3 mokymų dalis**
  
-Slurm komandos darbams paleisti/stabdyti ar progresui peržiūrėti.+GPU skaičiavimai
  
-Sbatch failas ir jo tipiniai parametrai CPU ir GPU particijoms+CUDA programinio kodo spartinimui naudojant GPU
  
-Darbai interaktyviu režimu ir darbai liekantys veikti po atsijungimo (Sbatch)+Programavimas Python Jupyter-notebooks su GPU
  
-Python/R/julia ar kitų kalbų paketų diegimas+Simuliacinių skaičiavimų pavyzdys
  
-Singularity konteineriai: atsisiuntimas ir/arba esamų modifikavimas+Mašininio mokymo projektas (duomenys/modelis jų įkėlimas/atsisiuntimas)
  
-Darbas su MPI+Mašininio mokymo pavyzdys naudojant vieną GPU
  
-Rezultatų išvedimas ir parsisiuntimas į naudotojo kompiuterį+Mašininio mokymo pavyzdys naudojant kelis GPU
  
-- Papildomų resursų užsakymai (Waldur)+ * [[https://drive.mif.vu.lt/s/MgH6Y9NNA63bQpA|GPU skaičiavimai HPC insfrastruktūroje (skaidrės)]]
  
-Nuoroda į pristatymą čia https://drive.mif.vu.lt/s/tHGtLZHbyQHpXK8+ * [[https://drive.mif.vu.lt/s/9Zpzxzq4XCyMozp|GPU skaičiavimai HPC insfrastruktūroje (video) ]]
  
-Nuoroda į pristatymo įrašą čia https://drive.mif.vu.lt/s/mDTbB3stWe9AKyS+====== Nuorodos ======
  
 +  * [[http://hpc.mif.vu.lt|HPC Waldur portalas]]
   * [[http://mif.vu.lt/itapc#paslaug%C5%B3-u%C5%BEsakymas|ITAPC paslaugų užsakymas]]   * [[http://mif.vu.lt/itapc#paslaug%C5%B3-u%C5%BEsakymas|ITAPC paslaugų užsakymas]]
   * [[https://slurm.schedmd.com/quickstart.html|Quick Start User Guide (SLURM)]]   * [[https://slurm.schedmd.com/quickstart.html|Quick Start User Guide (SLURM)]]
   * [[https://docs.qlustar.com/Qlustar/11.0/HPCstack/hpc-user-manual.html|HPC User Manual (Qlustar)]]   * [[https://docs.qlustar.com/Qlustar/11.0/HPCstack/hpc-user-manual.html|HPC User Manual (Qlustar)]]
   * [[http://www.mcs.anl.gov/research/projects/mpi/|MPI standartas]]   * [[http://www.mcs.anl.gov/research/projects/mpi/|MPI standartas]]
-  * pagalba@mif.vu.lt - problemų su PST registracija+  * pagalba@mif.vu.lt - problemų su **HPC** registracija
  
hpc.txt · Keista: 2024/02/21 12:50 vartotojo rolnas

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki