parallel-processing - OpenMP如何并行递增循环
问题描述
我有两个数组:
double arrayA[N+2];
double arrayB[N+2];
如何使用 OpenMP 并行循环?
for(i=0; i<N; i++){
arrayA[i] += arrayA[i+2] + sin(arrayB[i]);
}
解决方案
我假设 arrayA 预先填充了有意义的值,对吧?如果是,请将 arrayA 的副本保存到临时tmp数组并为 pragma 实现一个简单的 openmp。
#pragma omp parallel for
for(i=0; i<N; i++){
arrayA[i] = arrayA[i] + tmp[i+2] + sin(arrayB[i]);
}
推荐阅读
- django - Django - 使迁移命令检测到更改,但在迁移时说“没有要应用的迁移”
- python - 我想做十进制转换函数
- android - Android导航控制器使用导航抽屉布局设置选中项
- javascript - 如何在纯 Javascript 中复制事件侦听器
- javascript - Angular 发布请求将空正文发送到 node.js 服务器
- vb.net - 如何使用 vb.net 在 Google Drive 上上传文件?
- python - 循环内 requests.get() 的问题。“未找到连接适配器”
- pyqt - 使用用户设置构建一个 debian 包
- python - 使用 Python 检查输入框是否为空
- angularjs - 如何从数组中过滤数据并应用条件angular8