c - 删除 C 中的数据依赖

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

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

我该如何修复此代码?

最佳答案

尝试:

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/

相关文章:

c - 如何强制处理器在粘贴前使用表达式结果

python - 使用 Ipython 并行在 PBS 集群上注册超时

c - 并行调用函数是否足以让它并行执行?

python - R Shiny 并行处理,调用Python脚本

caching - Jenkins 禁用或清除 Maven 构建的缓存

Perl 模块层次结构和构建要求

c - 如何在 C 中使用字符串?

c - 指针赋值被忽略

java - Gradle Tomcat 插件依赖

c - const struct pointer 是否保证内存损坏/崩溃问题的安全性?