我有一个具有数据依赖性的代码。
代码示例:
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]++;
}
我想删除数据依赖性以并行化此代码。 我知道我必须编辑代码,但不知道如何修复它。
我该如何修复此代码?
最佳答案
尝试:
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]++;
}
关于c - 删除 C 中的数据依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32967422/