MPI实现阻塞型点对点通信

#include <mpi.h>
#include<stdio.h>

int main(int argc, char** argv) {
MPI_Init(&argc, &argv);

int rank;
int size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank); // 获取当前进程的rank
MPI_Comm_size(MPI_COMM_WORLD, &size); // 获取总进程数

// 发送消息的代码
if (rank == 0) {
int message = 123;
int dest = 1; // 目标进程的rank
int tag = 1; // 消息标签

// 发送消息
MPI_Send(&message, 1, MPI_INT, dest, tag, MPI_COMM_WORLD);

// 接收消息
int message_recv;
MPI_Recv(&message_recv, 1, MPI_INT, dest, tag, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

printf( "Process 0 received message:%d \n", message_recv) ;
}

// 接收消息的代码
else if (rank == 1) {
// 发送消息
int message = 456;
int dest = 0; // 目标进程的rank
int tag = 1; // 消息标签

MPI_Send(&message, 1, MPI_INT, dest, tag, MPI_COMM_WORLD);

// 接收消息
int message_recv;
MPI_Recv(&message_recv, 1, MPI_INT, dest, tag, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

printf( "Process 1 received message:%d \n", message_recv) ;
}

MPI_Finalize();
}

posted @ 2023-10-15 16:03  祥瑞哈哈哈  阅读(48)  评论(0)    收藏  举报