2012-04-28 33 views
0

次のコード(Pg.187、RourkeのCの計算幾何)は、パラレル(2 proc)と同様に連続して実行するのに同じ時間がかかります。 問題を特定するのを手伝ってください。 ここに平行部分がありますパラレルデラウネイ三角形分割アルゴリズム

int chunk; 
chunk=10; 
#pragma omp parallel private(i,j,k,xn,yn,zn) 
{ 
#pragma omp for schedule(static,chunk) 
    for(i=0;i<n-2;i++) 
    { 
     for(j=i+1;j<n;j++) 
      for(k=i+1;k<n;k++) 
       if(j!=k) 
       { 
        xn=(y[j]-y[i])*(z[k]-z[i])-(y[k]-y[i])*(z[j]-z[i]); 
        yn=(x[k]-x[i])*(z[j]-z[i])-(x[j]-x[i])*(z[k]-z[i]); 
        zn=(x[j]-x[i])*(y[k]-y[i])-(x[k]-x[i])*(y[j]-y[i]); 
        if(flag=(zn<0)) 
         for(m=0;m<n;m++) 
          flag=flag && ((x[m]-x[i])*xn + (y[m]-y[i])*yn + (z[m]-z[i])*zn <=0); 
        if (flag) 
         printf("%d\t%d\t%d\n",i,j,k); 
       } 
    } 
} 

答えて

1

解決済みです。 残りの変数-mとフラグをプライベートにする必要がありました。私のばかげた方法!!!!!

+0

クール、どれくらいのスピードアップがありますか? – labotsirc

+0

約1.5-1.6。 – haxor

関連する問題