并行计算—使用reduction方法求和

àì夳堔傛蜴生んèń 2022-07-14 23:27 320阅读 0赞
  1. // OpenMP1.cpp : 定义控制台应用程序的入口点。
  2. //使用reduction子句方法进行求和。
  3. #include "stdafx.h"
  4. #include <omp.h>
  5. #include <stdlib.h>
  6. #include <time.h>
  7. #include <windows.h>
  8. int _tmain(int argc, _TCHAR* argv[])
  9. {
  10. omp_set_num_threads(2);
  11. long long sum=0;
  12. clock_t t1=clock();
  13. #pragma omp parallel for reduction(+:sum)
  14. for(long i=1;i<=1000000000;i++)
  15. sum=sum+i;
  16. clock_t t2=clock();
  17. printf("sum=%lld\n",sum);
  18. printf("parallel time=%d\n",(t2-t1));
  19. sum=0;
  20. t1=clock();
  21. for(long i=1;i<=1000000000;i+=1)
  22. sum=sum+i;
  23. t2=clock();
  24. printf("sum=%lld\n",sum);
  25. printf("serial time=%d\n",(t2-t1));
  26. system("pause");
  27. return 0;
  28. }

运行结果:

Center

分析:

加速比为:2294/1154=1.988

发表评论

表情:
评论列表 (有 0 条评论,320人围观)

还没有评论,来说两句吧...

相关阅读

    相关 CUDA 并行计算

    CUDA 并行计算 并行计算可以被定义为同时使用许多计算资源 (核心或计算机) 来执行并发计算,一个大的问题可以被分解成多个小问题,然后在不同的计算资源上并行处理这些小