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