📄 message.c
字号:
#include "mpi.h"
main( argc, argv )
int argc;
char **argv;
{
char message[20];
int myrank;
MPI_Init( &argc, &argv );
/* MPI程序的初始化*/
MPI_Comm_rank( MPI_COMM_WORLD, &myrank );
/* 得到当前进程的标识*/
if (myrank == 0) /* 若是 0 进程*/
{
/* 先将字符串拷贝到发送缓冲区message中然后调用MPI_Send语句将它发出用
strlen(message)指定消息的长度用MPI_CHAR指定消息的数据类型1指明发往进程1 使
用的消息标识是99 MPI_COMM_WORLD是包含本进程进程0 和接收消息的进程进
程1 的通信域发送方和接收方必须在同一个通信域中由通信域来统一协调和控制消息
的发送和接收*/
strcpy(message,"Hello, process 1");
MPI_Send(message, strlen(message), MPI_CHAR, 1,
99,MPI_COMM_WORLD);
}
else if(myrank==1) /* 若是进程 1 */
{
/*进程1直接执行接收消息的操作这里它使用message作为接收缓冲区由此可见对于同
一个变量在发送进程和接收进程中的作用是不同的它指定接收消息的最大长度为20 消
息的数据类型为MPI_CHAR字符型接收的消息来自进程0 而接收消息携带的标识必须为
99 使用的通信域也是MPI_COMM_WORLD 接收完成后的各种状态信息存放在status中
接收完成后它直接将接收到的字符串打印在屏幕上*/
MPI_Recv(message, 20, MPI_CHAR, 0, 99, MPI_COMM_WORLD, &status);
printf("received :%s:", message);
}
MPI_Finalize();
/* MPI程序结束*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -