0

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

代码示例:

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]++;
}

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

我该如何修复此代码?

4

1 回答 1

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]++;
}
于 2015-10-06T11:01:41.443 回答