写一个c语言程序 要求使用MPI
时间: 2023-09-04 10:08:46 浏览: 109
MPI与OpenMP并行程序设计:C语言版,mpi和openmp混合编程,C,C++
5星 · 资源好评率100%
以下是一个简单的C语言程序,使用MPI实现在多个进程之间传递数据:
```c
#include <stdio.h>
#include <mpi.h>
int main(int argc, char** argv) {
int rank, size, data;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (rank == 0) {
data = 42;
MPI_Send(&data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
printf("Process %d sent data %d to process 1.\n", rank, data);
} else if (rank == 1) {
MPI_Recv(&data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Process %d received data %d from process 0.\n", rank, data);
}
MPI_Finalize();
return 0;
}
```
这个程序中,有两个进程,进程0和进程1。进程0发送数据42到进程1,进程1接收到数据并打印出来。MPI_Send和MPI_Recv是MPI提供的发送和接收数据的函数,MPI_COMM_WORLD是MPI中默认的通信域。MPI_Init和MPI_Finalize分别是MPI的初始化和终止函数,MPI_Comm_rank和MPI_Comm_size用于获取进程的编号和总数。
阅读全文