删除C

时间:2015-10-06 10:17:05

标签: c parallel-processing dependencies openacc

我有一个具有数据依赖性的代码。

代码示例:

int data[1000*3];
int result[1000]={0,};

// initialize data[]

for(i=0; i<1000; i++)
{
   a = data[i*3 + 0];
   b = data[i*3 + 1];
   c = data[i*3 + 2];

   if( (a>b) && (a>c) )   // This line makes data dependency
      result[i]++;
}

我想删除数据依赖项以并行化此代码。 我知道我必须编辑我的代码,但不知道如何解决它。

如何修复此代码?

1 个答案:

答案 0 :(得分:0)

尝试:

int data[1000*3];
int result[1000]={0,};

// initialize data[]

for(i=0; i<1000; i++)
{
   if( (data[i*3 + 0] > data[i*3 + 1]) && (data[i*3 + 0] > data[i*3 + 2]) )   
      result[i]++;
}