// Pi.cpp : 定义控制台应用程序的入口点。
//求圆周率PI #include "stdafx.h"
#include <windows.h>
#include <time.h>
#include <omp.h>
#include <iostream>
using namespace std; static long num_steps=1000000000;//定义所分的块数
#define NUM_THREADS 2 //定义所开启的线程数
int _tmain(int argc, _TCHAR* argv[])
{
int i;
omp_set_num_threads(NUM_THREADS);//开启线程
double x,sum=0.0,pi;
clock_t start_time,end_time;
double step=1.0/(double)num_steps; //并行--------------------------------------
start_time=clock();
#pragma omp parallel sections reduction(+:sum) private(x,i)
{
#pragma omp section
{
for (i=omp_get_thread_num();i<num_steps;i=i+NUM_THREADS)
{
x=(i+0.5)*step;
sum=sum+4.0/(1.0+x*x); }
}
#pragma omp section
{
for (i=omp_get_thread_num();i<num_steps;i=i+NUM_THREADS)
{
x=(i+0.5)*step;
sum=sum+4.0/(1.0+x*x); }
} }
pi=step*sum;
end_time=clock(); cout<<"Pi="<<pi<<endl;
cout<<"并行time="<<end_time-start_time<<endl; //串行-----------------------------------
sum=0.0;
start_time=clock();
for (i=0;i<num_steps;i++)
{
x=(i+0.5)*step;
sum=sum+4.0/(1.0+x*x);
}
pi=step*sum;
end_time=clock(); cout<<"Pi="<<pi<<endl;
cout<<"串行time="<<end_time-start_time<<endl; system("pause");
return 0;
}
//运行结果如下:(相对加速比:7675/4496=1.71)

OpenMP之数值积分(求圆周率Pi)(sections)的更多相关文章

  1. 4_蒙特卡罗算法求圆周率PI

    题目 蒙特卡罗算法的典型应用之一为求圆周率PI问题. 思想: 一个半径r=1的圆,其面积为:S=PI∗r2=PI/4 一个边长r=1的正方形,其面积为:S=r2=1 那么建立一个坐标系,如果均匀的向正 ...

  2. Codeup 25593 Problem G 例题5-7 求圆周率pi的近似值

    题目描述 用如下公式 4*Π = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 - 1/15 - 求圆周率PI的近似值,直到发现某一项的绝对值小于10-6为止(该项不 ...

  3. 【小白成长撸】--多项式求圆周率PI

    /*程序的版权和版本声明部分: *Copyright(c) 2016,电子科技大学本科生 *All rights reserved. *文件名:多项式求PI *程序作用:计算圆周率PI *作者:Amo ...

  4. Python中利用进度条求圆周率

    从祖冲之到现在,圆周率的发展越来越丰富,求法也是越来越快其中: 1.求圆周率的方法: (1)蒙特卡罗法 这是基于“随机数”的算法,通过计算落在单位圆内的点与正方形内的比值来求圆周率PI. 如果一共投入 ...

  5. 用python计算圆周率PI

    1.蒙特卡洛求圆周率 向区域内随即撒点 当点的数目足够多时,落在圆的点数目与在正方形点数目成正比 即圆的面积和正方形的面积成正比 可以得出计算圆周率的算法 DARTS=100000000   hits ...

  6. 【JAVA练习】- 给定精度求圆周率π

    给定一个精度求圆周率π的近似值 给定公式:π/4=1-1/3+1/5-1/7+1/9-... public static void main(String[] args) { System.out.p ...

  7. 圆周率pi π 与 角度的对应关系

    圆周率pi π 与 角度的对应关系 π 180° π/2 90° π/4     45° π/6     30°

  8. C++项目參考解答:累加求圆周率

    [项目-累加求圆周率] 用例如以下公式求π的近似值(计算直到最后一项的绝对值小于10−5) π4=1−13+15−17+... [參考解答] #include <iostream> usi ...

  9. 使用规则引擎Drools计算圆周率PI

    实际上是使用规则引擎能够更新工作内存区重新匹配规则实现迭代功能. 使用了策略模式实现. <规则引擎与RETE算法介绍> PPT : http://files.cnblogs.com/lov ...

随机推荐

  1. Android笔记:如何在Fragment里使用findViewById()方法?

    在Activity中,可以直接用findViewById(int id),通过xml的id来找到对应的View. 查找官方的api,具体如下: https://developer.android.go ...

  2. java的Iterator源码浅析

    在java的集合中,List接口继承Collection接口,AbstractList类实现了List接口,在AbstractList中的内部类Itr实现了Iterator接口 ArrayList实现 ...

  3. Sum All Primes

    function sumPrimes(num) { //return num; var arr = []; var ifPrime = function(num){ if(num < 2){ r ...

  4. Coursera Machine Learning : Regression 简单回归

    简单回归 这里以房价预测作为例子来说明:这里有一批关于房屋销售记录的历史数据,知道房价和房子的大小.接下来就根据房子的大小来预测下房价. 简单线性回归,如下图所示,找到一条线,大体描述了历史数据的走势 ...

  5. 接入百度语音SDK的步骤

    1.导入依赖库 SystemConfiguration.framework AudioToolbox.framework UIkit.framework AVFoundation.framework ...

  6. Spring Framework 笔记(一):IoC

    一:Spring中重要的概念 1. 容器( container ) : spring容器( ApplicationContext )的工作原则是创建容器中的组件( instance ),处理组件之间的 ...

  7. bootstrap-标题

    1.重置了margin-top和margin-bottom的值,h1到h3重置后margin-top的值都是20px:h4到h6重置后的值都是10px: 2.所有标题的行高都是1.1(也就是font- ...

  8. MySQL安装之后没有MySQL数据库的原因

    mysql安装完之后,登陆后发现只有两个数据库:mysql> show databases;+--------------------+| Database           |+------ ...

  9. mysql 锁优化

    一.myisam存储引擎锁优化 1.合理理由读写优先级MyISAM 的表锁,写互相阻塞的表锁,默认系统是写优先,可改为读有先:low_priority_updates=1如果我们的系统是一个以读为主, ...

  10. 调整static变量初始化顺序的一个办法

    // wrap the LaunchDir variable in a function to work around static/global initialization order stati ...