Changeset 1096 in Sophya


Ignore:
Timestamp:
Jul 26, 2000, 5:02:55 PM (25 years ago)
Author:
ansari
Message:

Extension test OpenMP (tompCXX.cc) - Reza 26/7/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Eval/Speed/tompCXX.cc

    r991 r1096  
    99void Mult(int n, double *v1, double *v2, double *v3);
    1010void MultOMP(int n, double *v1, double *v2, double *v3);
     11void MultOMP2(int N, int n, double *v1, double *v2, double *v3);
    1112
    1213int main (int narg, char *arg[])
     
    1819if (narg < 2) {
    1920  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");
    2122  printf(" N (=100): External loop number   M : Array Size (500000) \n");
    2223  exit(0);
     
    3637PrtTim("End of Init ");
    3738
    38 if (*arg[1] == 'P') {
     39if (*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}
     43else if (*arg[1] == 'p') {
    3944  printf("Calling N=%d times MultOMP(Size= %d) \n", N, M);
    4045  for(i=0; i<N; i++) MultOMP(M, v1, v2, v3);
     
    6873  v3[k] = v1[k] * v2[k];
    6974}
     75void MultOMP2(int N, int n, double *v1, double *v2, double *v3)
     76{
     77int k;
     78int i;
     79#pragma omp parallel default(shared)
     80#pragma omp parallel for
     81for(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.