mpi编程的计算π的程序Ubuntu
时间: 2023-12-10 09:39:01 浏览: 30
下面是一个使用MPI编程计算π的示例程序,可以在Ubuntu下运行:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <mpi.h>
int main(int argc, char** argv) {
int rank, size;
double pi = 0.0, sum = 0.0;
int n = 1000000, i;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
int start = rank * n / size;
int end = (rank + 1) * n / size;
for (i = start; i < end; i++) {
double x = (double)i / n;
sum += 4.0 / (1.0 + x * x);
}
MPI_Reduce(&sum, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
if (rank == 0) {
pi = pi / n;
printf("Pi is approximately %.16f, Error is %.16f\n", pi, fabs(pi - M_PI));
}
MPI_Finalize();
return 0;
}
```
编译命令:
```
mpicc -o pi pi.c -lm
```
运行命令:
```
mpirun -np 4 ./pi
```
其中`-np`后面的数字表示进程数,可以根据实际情况进行调整。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)