⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dis-ok.c

📁 并行计算的演示程序
💻 C
字号:
#include <omp.h>#include <stdio.h>/*  for(i=4;i<100;i++){               S1:       a[i] = b[i-2] + 1;S2:       c[i] = b[i-1] + f[i];  S3:       b[i] = a[i-1] + 2;    S4:       d[i] = d[i+1] + b[i-1];       }  */#define Iter 10000main(){  int i;  int a[Iter],b[Iter],c[Iter],d[Iter],f[Iter];  int a1[Iter],b1[Iter],c1[Iter],d1[Iter],f1[Iter];  int old_d[Iter]; // duplicating array-d to avoid                   // anti-dependency      for(i=0;i<Iter;i++) a[i]=b[i]=c[i]=d[i]=f[i]=old_d[i]=i;  for(i=0;i<Iter;i++) a1[i]=b1[i]=c1[i]=d1[i]=f1[i]=i;    for(i=4;i<Iter;i++){     a1[i] = b1[i-2] + 1;     c1[i] = b1[i-1] + f1[i];     b1[i] = a1[i-1] + 2;     d1[i] = d1[i+1] + b1[i-1];  }/* The sequencial Loop below containing Statement S1 and S3 */  for(i=4;i<Iter;i++){      a[i] = b[i-2] + 1; // S1     b[i] = a[i-1] + 2; // S3  }/* The Parallel Loop below only containing both Statement S2 and S4*/ #pragma omp parallel for shared(c,b,f,d,old_d) private(i)  for(i=4;i<Iter;i++)  {    c[i] = b[i-1] + f[i] ; // S2    d[i] = old_d[i+1] + b[i-1] ;  // S4   }      /* The Parallel Loop below only containing Statement S4 */     //#pragma omp parallel for shared(d,b) private(i)//  for(i=4;i<Iter;i++)//      d[i] = old_d[i+1] + b[i-1] ; // S4      for(i=4;i<Iter;i++) {  if ( a[i]!=a1[i]) printf("a[%d] = %d , a1[%d] = %d\n",i,a[i],i,a1[i]);  if ( b[i]!=b1[i]) printf("b[%d] = %d , b1[%d] = %d\n",i,b[i],i,b1[i]);   if ( c[i]!=c1[i]) printf("c[%d] = %d , c1[%d] = %d\n",i,c[i],i,c1[i]);  if ( d[i]!=d1[i]) printf("d[%d] = %d , d1[%d] = %d\n",i,d[i],i,d1[i]);}         return 0;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -