en:hpc
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
en:hpc [2022/07/04 08:32] – [Batch Processing of Tasks (SLURM)] grikiete | en:hpc [2022/07/04 14:07] – grikiete | ||
---|---|---|---|
Line 119: | Line 119: | ||
</ | </ | ||
- | Pateikus paraišką ITAPC ir gavus teigimą sprendimą, reikia susikurti naudotoją | + | After submission and confirmation of your application to the ITOAC services, you need to create a user at https:// |
- | After submission and confirmation | + | <code shell mpi-test-job.sh> |
+ | # | ||
+ | #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 | ||
+ | </ | ||
+ | |||
+ | |||
+ | It contains instructions for the task performer as special comments. | ||
+ | |||
+ | -p short - which queue to send to (main, gpu, power). | ||
+ | |||
+ | -n4 - how many processors to reserve (**NOTE:** if you set the number | ||
+ | |||
+ | The initial running directory of the task is the current directory (**pwd**) on the login node from where the task is run, unless it was changed to another directory by the -D parameter. For the initial running directory, use the HPC shared filesystem directories **/scratch/lustre**, as it must exist on the compute node and the job output file **slurm-JOBID.out** is created there, unless redirected by -o or -i (for these it is advisable to use the shared filesystem as well). | ||
+ | |||
+ | The generated script is sent with the command | ||
+ | |||
+ | '' | ||
+ | |||
+ | which returns the number of the submitted job **JOBID**. | ||
+ | |||
+ | The status of a pending or ongoing task can be checked with the command // | ||
+ | |||
+ | '' | ||
+ | |||
+ | With the //scancel// command it is possible to cancel the running of a task or to remove it from the queue | ||
+ | |||
+ | '' | ||
+ | |||
+ | If you forgot your tasks **JOBID**, you can check them with the command // | ||
+ | |||
+ | '' | ||
+ | |||
+ | Completed tasks are no longer displayed | ||
+ | |||
+ | If the specified number of processors is not available, your task is added to the queue. It will remain in the queue until a sufficient number | ||
+ | |||
+ | The **output** of the running job is recorded in the file **slurm-JOBID.out**. The error output is written | ||
+ | |||
+ | More about SLURM opportunities you can read [[https:// | ||
+ | |||
+ | ====== Paketinis užduočių vykdymas (SLURM) ====== | ||
+ | |||
+ | Norint pasinaudoti PST skaičiavimo resursais, reikia formuoti užduočių scenarijus (sh arba csh). | ||
+ | |||
+ | Pavyzdys: | ||
+ | |||
+ | <code shell mpi-test-job.sh> | ||
+ | # | ||
+ | #SBATCH -p main | ||
+ | #SBATCH -n4 | ||
+ | module load openmpi | ||
+ | mpicc -o mpi-test mpi-test.c | ||
+ | mpirun mpi-test | ||
+ | </ | ||
+ | |||
+ | Pateikus paraišką ITAPC ir gavus teigimą sprendimą, reikia susikurti naudotoją https:// | ||
<code shell mpi-test-job.sh> | <code shell mpi-test-job.sh> | ||
Line 168: | Line 229: | ||
Daugiau apie SLURM galimybes galite paskaityti [[https:// | Daugiau apie SLURM galimybes galite paskaityti [[https:// | ||
+ | |||
+ | ====== Interaktyvios užduotys (SLURM) ====== | ||
+ | |||
+ | Interaktyvias užduotis galima vykdyti su komanda srun: | ||
+ | |||
+ | < | ||
+ | $ srun --pty $SHELL | ||
+ | </ | ||
+ | |||
+ | Įvykdę aukščiau pateiktą komandą prisijungsite prie SLURM paskirtos skaičiavimo mazgo aplinkos ir galėsite tiesiogiai vykdyti ir derinti programas jame. | ||
+ | |||
+ | Įvykdę komandas atsijunkite nuo skaičiavimo mazgo su komanda | ||
+ | |||
+ | < | ||
+ | $ exit | ||
+ | </ | ||
+ | |||
+ | Jeigu norima vykdyti grafines programas, tai reikia jungtis su **ssh -X** į **uosis.mif.vu.lt** ir **hpc**: | ||
+ | |||
+ | < | ||
+ | $ ssh -X uosis.mif.vu.lt | ||
+ | $ ssh -X hpc | ||
+ | $ srun --pty $SHELL | ||
+ | </ | ||
+ | |||
+ | **power** telkinyje interaktyvias užduotis galima vykdyti su | ||
+ | |||
+ | < | ||
+ | $ srun -p power --mpi=none --pty $SHELL | ||
+ | </ | ||
+ | |||
+ | ====== GPU užduotys (SLURM) ====== | ||
+ | |||
+ | Norint pasinaudoti GPU, reikia papildomai nurodyti < | ||
+ | |||
+ | Su '' | ||
+ | |||
+ | Pavyzdys interaktyvios užduoties su 1 GPU: | ||
+ | < | ||
+ | $ srun -p gpu --gres gpu --pty $SHELL | ||
+ | </ | ||
+ | |||
+ | ====== Įvadas į OpenMPI ====== | ||
+ | |||
+ | Ubuntu 18.04 LTS yra **2.1.1** versijos OpenMPI paketai. | ||
+ | Norint pasinaudoti naujesne **4.0.1** versija reikia naudoti | ||
+ | < | ||
+ | module load openmpi/4.0 | ||
+ | </ | ||
+ | prieš vykdant MPI komandas. | ||
+ | |||
+ | ===== MPI programų kompiliavimas ===== | ||
+ | |||
+ | Paprastos MPI programos pavyzdys yra kataloge ''/ | ||
+ | |||
+ | < | ||
+ | $ mpicc -o foo foo.c | ||
+ | $ mpif77 -o foo foo.f | ||
+ | $ mpif90 -o foo foo.f | ||
+ | </ | ||
+ | ===== MPI programų vykdymas ===== | ||
+ | |||
+ | MPI programos startuojamos su **mpirun** arba **mpiexec** programa. Daugiau apie jas galima sužinoti su komanda **man mpirun** arba **man mpiexec**. | ||
+ | |||
+ | Paprasta (SPMD) programa gali būti startuojama su tokia mpirun komandų eilute. | ||
+ | |||
+ | < | ||
+ | $ mpirun foo | ||
+ | </ | ||
+ | |||
+ | Tai naudos visus paskirtus procesorius, | ||
+ | |||
+ | Daugiau apie instaliuotą **OpenMPI** yra [[https:// | ||
+ | |||
+ | ====== Užduočių efektyvumas ====== | ||
+ | |||
+ | * Prašome išnaudoti ne mažiau 50% užsakyto CPU kiekio. | ||
+ | * Naudoti daugiau CPU, nei užsakyta, nepadidins efektyvumo, nes jūsų užduotis galės naudoti tik tiek CPU, kiek buvo užsakyta. | ||
+ | * Jeigu naudosite parametrą '' | ||
+ | |||
+ | ====== 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ų | ||
+ | |||
+ | < | ||
+ | sreport -T cpu, | ||
+ | </ | ||
+ | |||
+ | 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 '' | ||
+ | |||
+ | 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ą | ||
+ | |||
+ | < | ||
+ | sshare -l -A USERNAME_mif -p -o GrpTRESRaw, | ||
+ | </ | ||
+ | |||
+ | 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ų. | ||
en/hpc.txt · Last modified: 2024/02/21 12:50 by rolnas