Changeset 1096 in Sophya for trunk/Eval/Speed
- Timestamp:
- Jul 26, 2000, 5:02:55 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Eval/Speed/tompCXX.cc
r991 r1096 9 9 void Mult(int n, double *v1, double *v2, double *v3); 10 10 void MultOMP(int n, double *v1, double *v2, double *v3); 11 void MultOMP2(int N, int n, double *v1, double *v2, double *v3); 11 12 12 13 int main (int narg, char *arg[]) … … 18 19 if (narg < 2) { 19 20 printf("\n Usage tompCXX P/x [N M] \n \n"); 20 printf(" P - -> Calling MultOMP, x ---> Calling Mult \n");21 printf(" P -> Calling MultOMP2 p -> Calling MultOMP, x -> Calling Mult \n"); 21 22 printf(" N (=100): External loop number M : Array Size (500000) \n"); 22 23 exit(0); … … 36 37 PrtTim("End of Init "); 37 38 38 if (*arg[1] == 'P') { 39 if (*arg[1] == 'p') { 40 printf("Calling MultOMP2(N=%d, Size= %d) \n", N, M); 41 for(i=0; i<N; i++) MultOMP2(N, M, v1, v2, v3); 42 } 43 else if (*arg[1] == 'p') { 39 44 printf("Calling N=%d times MultOMP(Size= %d) \n", N, M); 40 45 for(i=0; i<N; i++) MultOMP(M, v1, v2, v3); … … 68 73 v3[k] = v1[k] * v2[k]; 69 74 } 75 void MultOMP2(int N, int n, double *v1, double *v2, double *v3) 76 { 77 int k; 78 int i; 79 #pragma omp parallel default(shared) 80 #pragma omp parallel for 81 for(i=0; i<N; i++) 82 #pragma omp parallel for 83 for(k=0; k<n; k++) 84 v3[k] = v1[k] * v2[k]; 85 }
Note:
See TracChangeset
for help on using the changeset viewer.