Obsah

Cvičení 4

2.

#include <stdio.h>
#include <omp.h>
 
int main( int argc, char* argv[] ) {
  printf("Pocet: %d\n", omp_get_num_procs());
  #pragma omp parallel num_threads(6)
  {
    printf("ID: %d\n", omp_get_thread_num());
  }
}

3.

#include <stdio.h>
#include <omp.h>
 
int main( int argc, char* argv[] ) {
  double s = 0;
  double x;
  #pragma omp parallel for private(x) reduction(+:s) num_threads(4)
  for(int i=9999; i>=0; i--){
    for(double j=1000000; j>0; j--){
      x = j + 1000000.0*i;	
      s += 1.0/(x*x);
    }
  }
  printf("Suma: %f\n", s);
}

4.

Netvrdím, že se jedná o nejúspornější/nejefektivnější zápis, ale zdá se, že funguje.

Do cviceni5_ukol4.cpp stačí doplnit na řádek 78 následující:

// ostreni obrazu:
#pragma omp parallel for private(j, i, tmp, NewPixel, PixelC, PixelL, PixelB, PixelR, PixelT) shared(From, To) num_threads(4)
for(j = PositionT+1; j <= PositionB-1; j++ )