编程求Sum=1+2+…1000。(要求使用openmp)
答案:1 悬赏:10 手机版
解决时间 2021-04-07 07:00
- 提问者网友:姑娘长的好罪过
- 2021-04-06 07:56
编程求Sum=1+2+…1000。(要求使用openmp)
最佳答案
- 五星知识达人网友:不甚了了
- 2021-04-06 08:43
#include
#include
int main(){
int sum = 0;
//方法一:
int coreNum = omp_get_num_procs();//获得处理器个数
int* sumArray = new int[coreNum];//对应处理器个数,先生成一个数组
for (int i=0;i sumArray[i] = 0;
#pragma omp parallel for
for (int i=1;i<=1000;i++)
{
int k = omp_get_thread_num();//获得每个线程的ID
sumArray[k] = sumArray[k]+i;//同线程的i相加求和
}
for (int i = 0;i sum = sum + sumArray[i];//不同线程的计算结果求和
//方法二:
sum=0;
#pragma omp parallel for reduction(+:sum)
for (int i=1;i<=1000;i++)
sum = sum + i;
std::cout<<"sum: "< return 0;
}
#include
int main(){
int sum = 0;
//方法一:
int coreNum = omp_get_num_procs();//获得处理器个数
int* sumArray = new int[coreNum];//对应处理器个数,先生成一个数组
for (int i=0;i
#pragma omp parallel for
for (int i=1;i<=1000;i++)
{
int k = omp_get_thread_num();//获得每个线程的ID
sumArray[k] = sumArray[k]+i;//同线程的i相加求和
}
for (int i = 0;i
//方法二:
sum=0;
#pragma omp parallel for reduction(+:sum)
for (int i=1;i<=1000;i++)
sum = sum + i;
std::cout<<"sum: "<
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯