#include #include #include #include const int row = 10000; const int col = 10000; long double tab[row][col]; long double tabPP[100]; void loadTable() { for (int i = 0; i < row; i++) { for (int j = 0; j < col;j++) { tab[i][j] = 1; } } } int main(int argc, char* argv[]) { clock_t start, stop; loadTable(); for (int z = 0; z < 40;z++) { long double sum = 0; start = clock(); omp_set_num_threads(2); #pragma omp parallel { int id = omp_get_thread_num(); tabPP[id+z] = 0; #pragma omp for for (int i = 0; i < row; i++) { for (int j = 0; j < col;j++) { tabPP[id+z] += tab[i][j]; } } #pragma omp atomic sum += tabPP[id+z]; } stop = clock(); //printf("Wynik %f\n", sum); printf(" Czas przetwarzania wynosi %d - %f sekund\n",z, ((double)(stop - start) / 1000.0)); } return 0; }