...
Tip |
---|
Vrijednost varijable |
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash #PBS -q cpu #PBS -l select=16 MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l) cd ${PBS_O_WORKDIR} mpiexec pw.x -n ${MPI_NUM_PROCESSES} pw.x -i calcite.i calcite.in |
MPI + OpenMP (hibridna) paralelizacija
...
Tip |
---|
OpenMP aplikacije zahtijevaju definiranje varijable Vrijednost varijable |
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash #PBS -q cpu #PBS -l select=8:ncpus=4 MPI_NUM_PROCESSES=$(catcd ${PBS_O_NODEFILE} | wc -l) cd ${PBS_O_WORKDIR} mpiexec -n ${MPI_NUM_PROCESSES} -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -v -deffnm md |
Prilagođena raspodjela MPI procesa
Ukoliko sami želite kontrolirati kako će PBS sustav raspodjeliti Vašu aplikaciju na čvorove, odnosno koliko će se MPI procesa nalaziti na svakom čvoru, morate dodatno aktivirati opciju place=scatter
u zaglavlju skripte, te koristiti mpiexec
opciju --ppn
, čiji je argument broj MPI procesa koji želite na svakom čvoru.
Primjer je dan s GROMACS aplikacijom niže, kojoj je svaki MPI proces smješten na vlastiti čvor. Aplikacija će se izvoditi na 8 čvorova i koristiti sumarno 32 procesorske jezgre; svaki MPI proces bit će smješten na vlastiti čvor, a svaki MPI proces dodatno će stvoriti 4 OpenMP dretve (eng. threads).
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash #PBS -q cpu #PBS -l select=8:ncpus=4 #PBS -l place=scatter MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l) cd ${PBS_O_WORKDIR} mpiexec -n ${MPI_NUM_PROCESSES} --ppn 1WORKDIR} mpiexec -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -v -deffnm md |
...