我有一个具有数据依赖性的代码。
代码示例:
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]++;
}
我想删除数据依赖项以并行化此代码。 我知道我必须编辑我的代码,但不知道如何解决它。
如何修复此代码?
答案 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]++;
}