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 π的主要内容,如果未能解决你的问题,请参考以下文章

MPI计算π

Openmp并行计算pi π

Python多进程计算圆周率 Pi (π) 的值(ProcessPoolExecutor)

在python的IDLE中计算Π值的代码错误在哪?

python 计算π(pi)到任意的deptth

使用 python 实现π的计算