用OpenMP编写并行程序实现求1+…100000

2012-10-29 02:48:08

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
#define N 100000
int main (int argc, char *argv[])
{
double sum=0;
int i;
/* Some initializations */
for (i=0; i < N; i++)
#pragma omp parallel for reduction(+:sum) private(i) shared(sum)
for (i=0; i<N; i++)
{
sum = sum+i;
}
printf("sum=%d\n",sum);
return 0;
}




编译时出现错误:‘sum’ appears more than once in data clauses
...全文
308 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
MoreWindows 2012-12-06
  • 打赏
  • 举报
回复
OpenMP没搞过,不过我写了一篇MPI的《Windows系统下搭建MPI环境》 http://blog.csdn.net/morewindows/article/details/6823436
晓枫gis 2012-12-06
  • 打赏
  • 举报
回复
omp中,[clause]不允许变量被两个同类的clause约束,前面已经有了reduction[operator:list]规约了sum变量,所以后面shared[list]就不能再对sum进行约束。

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧