#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()); } }
#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); }
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++ )