zoukankan      html  css  js  c++  java
  • MPI_计算pi值程序

    #include "mpi.h"
    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main(int argc,char* argv[])
    {
        double local = 0,pi;
        int rank,size;
        const int N = 100000;
    
        MPI_Init(&argc,&argv);
        MPI_Comm_rank(MPI_COMM_WORLD,&rank);
        MPI_Comm_size(MPI_COMM_WORLD,&size);
    
        //通过rank和size参数的使用使每个进程只计算一部分值 *** i+=size设置巧妙
        for(int i=rank;i<N;i+=size)
        {
            local += 4.0/(1.0 + ((i + 0.5)/N) * ((i + 0.5)/N));
        }
    
        MPI_Reduce(&local,&pi,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);
        if(rank == 0)
        {
            cout << "pi is " << pi * (1.0 / N) << endl;
        }
        MPI_Finalize();
    
        return 0;
    }
  • 相关阅读:
    Java io流 之file类(文件和文件夹)
    异常处理
    封装
    面向对象与类
    包与模块的使用
    模块
    递归函数
    迭代器
    装饰器
    函数基础2
  • 原文地址:https://www.cnblogs.com/wn19910213/p/3508961.html
Copyright © 2011-2022 走看看