Paralelné programovanie - fakultný cluster
1. Získanie prihlasovacích údajov
Napíšte mail na cernansky [at] fiit.stuba.sk
Uveďte meno, priezvisko, osobné číslo a mail do AIS.
2. Prezeranie informácií o systéme
https://gridgate.fiit.stuba.sk/web
3. Prihlásenie sa do klastra
ssh cernansky@gridprod.fiit.stuba.sk
4. Vytvorenie alebo nakopírovanie zdrojových súborov (ako priklad uvedeny vypis suboru hw_ompmpi.c)
[cernansky@gridprod ~]$ cat hw_ompmpi.c
#include
#include
#include
#include
int main(int argc, char *argv[])
{
int num_procs;
int pr_id;
int i;
double x;
double t1,t2;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD, &num_procs);
MPI_Comm_rank(MPI_COMM_WORLD, &pr_id);
MPI_Barrier(MPI_COMM_WORLD);
t1 = MPI_Wtime();
printf("Hello World from process %d (%d processes)\n", pr_id, num_procs);
#pragma omp parallel for private(i) reduction (+:x)
for (i=0;i<200000000;i++) x += sin(i);
MPI_Barrier(MPI_COMM_WORLD);
t2 = MPI_Wtime();
MPI_Finalize();
printf("Runnning time was %lf\n", t2-t1);
return EXIT_SUCCESS;
}
5. Kompilácia zdrojového súboru
[cernansky@gridprod ~]$ ssh node20
[cernansky@node20 ~]$ /usr/local/bin/gcc4-gcc hw_ompmpi.c -fopenmp -lmpi -O2 -o hw_ompmpi
[cernansky@node20 ~]$ exit
6. Vytvorenie dávkového súboru (ako priklad uvedeny vypis suboru hw.pbs)
[cernansky@gridprod ~]$ cat hw.pbs
#!/bin/sh
#
#PBS -N HelloWorld
#PBS -l nodes=10:ppn=4,walltime=00:30:00
export OMP_NUM_THREADS=4
mpirun -bynode -np 10 hw_ompmpi
Poznámky:
-N - meno projektu
-l - požadované prostredky, 10 uzlov po 4 jadrá, max. čas simulácie 30 minút
export - nastavenie premennej prostredia
OMP_NUM_THREADS - riadenie počtu vlákien pre OpenMP
mpirun - spustenie MPI úlohy
-bynode - priradenie procesov po uzloch, nie po slotoch (mame 10 uzlov na kazdom 4 jadra = 40 slotov)
-np - vytvorenie 10 procesov
7. Spustenie dávkového súboru
[cernansky@gridprod ~]$ qsub-torque hw.pbs
8. Sledovanie úlohy
[cernansky@gridprod ~]$ showq
9. Overenie výsledkov
[cernansky@gridprod ~]$ cat HelloWorld.oNNN
[cernansky@gridprod ~]$ cat HelloWorld.eNNN