Gaussian Elimination in OpenMP -


gaussian elimination in openmp. new openmp , wondering if used pragmas , barrier @ correct places. x values different each time. supposed same??

#include <stdio.h>  int num; double mm[6][7];  void gausselimination();  int main() {     int i, j;      int k, s;    file *f = fopen("matrix.in", "r");     fscanf(f, "%d", &num);     (i=0; i<num; ++i)             (j=0; j<num+1; ++j)                     fscanf(f, "%f", &mm[i][j]);     fclose(f);       (i=0; < num; i++)             for(j=0; j <num; j++);      gausselimination();      for(k=0; k < num; ++k) {             for(s = 0; s < num+1; ++s)                     printf("%3.2f\t", mm[k][s]);             printf("\n");  }                   return 0;   }   void gausselimination() {          int i, j, k, max;     double r;    //      #pragma omp parallel private (i, j)     for( i=0; < num; ++i) {             max = i;             for(j= i+1; j < num; ++j)                     if(mm[j][i] > mm[max][i])                             max =j;              for(j=0; j < num+1; ++j) {                     r = mm[max][j];                     mm[max][j] = mm[i][j];                     mm[i][j] = r;             }      #pragma omp parallel private ( i, j)             for(j=num; j>= i; --j)                     for(k=i+1; k <num; ++k)                             mm[k][j] -= mm[k][i]/mm[i][i] * mm[i][j];            }             #pragma omp barrier              for(i = num-1; >=0; --i) {             mm[i][num]  = mm[i][num] / mm[i][i];             mm[i][i] = 1;             #pragma omp barrier             for(j= - 1; j >= 0; --j) {                     mm[j][num] -= mm[j][i] * mm[i][num];                     mm[j][i] = 0;                     }              #pragma omp barrier       } } 

with current code, have placed openmp pragam on the j , k loops. however, have private(i,j), makes variables , j private (with no initial values). should private(j,k), because j , k loop variables need private , needs shared (since loop bound j loop). openmp barriers not doing anything.


Comments