#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(); long double sum = 0; start = clock(); omp_set_num_threads(2); #pragma omp parallel { int id = omp_get_thread_num(); tabPP[id] = 0; #pragma omp for for (int i = 0; i < row; i++) { long double sumTmp = 0; for (int j = 0; j < col;j++) { sumTmp += tab[i][j]; } tabPP[id] += sumTmp; } #pragma omp atomic sum += tabPP[id]; } stop = clock(); printf("Wynik %f\n", sum); printf(" Czas przetwarzania wynosi %f sekund\n", ((double)(stop - start) / 1000.0)); return 0; }