OpenMP并行计算PI的值

简介:

用VS新建一个工程后,首先要右键项目,属性--C/C++--语言,,在右边的对话框中OpenMP支持选择是;

程序代码为:

#include<stdio.h>

#include<time.h>

#include<omp.h>

 

static long num_steps = 100000;

double step,pi;

void main()

{

    clock_t t1=clock();

    int i;

    double x,sum = 0.0;

    step = 1.0/(double)num_steps;

#pragma omp parallel for reduction(+:sum)

    for(i = 0;i<num_steps;i++)

    {

        x = (i+0.5)*step;

        sum = sum + 4.0/(1.0+x*x);

        printf("%d",omp_get_thread_num());

    }

    pi = step *sum;

    clock_t t2 =clock();

    printf("pi=%f,用时:%d\n",pi,t2-t1);

}

 上述代码使用了规约rduction(op:list);这样每个线程会有一个私有的list,当所有线程的list计算完成之后,每个线程的私有list值将被op规约为一个list值。

相关文章
|
7月前
|
Serverless 数据处理 Python
Python3,数据处理与计算,不得不掌握的高效计算函数之prod()函数,
Python3,数据处理与计算,不得不掌握的高效计算函数之prod()函数,
67 0
|
1月前
|
分布式计算 Spark
Spark学习--day05、累加器
Spark学习--day05、累加器
16 1
|
7月前
|
分布式计算 资源调度 Java
Spark设计实现π的计算
Spark设计实现π的计算
93 0
|
10月前
|
并行计算 调度 Windows
R语言- parallel::mclapply 并行化计算任务
R语言中的 parallel::mclapply 是一个用于在多核CPU上实现并行计算的方法。它是lapply函数的并行版本,可以在多个处理器核心上同时运行lapply函数。mclapply函数的语法与lapply函数类似,但它可以指定要使用的处理器核心数量,从而提高计算速度。
606 0
|
算法 Python
python与算法:两种计算平方根的算法的开销
python与算法:两种计算平方根的算法的开销
137 0
python与算法:两种计算平方根的算法的开销
AVX 指令集并行技术优化积分计算圆周率 π
AVX 指令集并行技术优化积分计算圆周率 π
92 0
AVX 指令集并行技术优化积分计算圆周率 π
|
并行计算
《并行计算的编程模型》一3.6.2 fence和quiet:RMA操作排序
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1093 0
|
并行计算 算法
《并行计算的编程模型》一2.6.5 MCS Locks示例
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.6.5节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1171 0
|
并行计算
《并行计算的编程模型》一2.6.4 AM Ring示例
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.6.4节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
951 0