MPI并行计算pi π
Posted 各可
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MPI并行计算pi π相关的知识,希望对你有一定的参考价值。
MPI并行计算π值
#include "stdio.h"
#include "math.h"
#include "mpi.h"
int main(int argc,char *argv[])
{
long int n, i;
double sum, pi, mypi, x, h;
int myid, numprocs;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
n = 10000000;
h = 1.0 / (double)n;
sum = 0.0;
for (i = myid + 1; i <= n; i += numprocs)
{
x = (i - 0.5) * h;
sum = sum + 4.0 / (1.0 + x * x);
}
mypi = h * sum;
MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
if (myid == 0)
printf("Approximation of pi:%15.13f\\n", pi);
MPI_Finalize();
return 0;
}
// mpicxx -g -Wall -o demo1.o demo1.c
// mpirun -n 10 ./demo1.o
想要运行该算法要经历一个漫长的linux系统安装配置MPI的过程
运行结果如下:
以上是关于MPI并行计算pi π的主要内容,如果未能解决你的问题,请参考以下文章