MPI简介
头文件 |
---|
相关变量声明 MPI_Init(&argc, &argv) |
程序开始 |
程序体 计算与通信 |
程序结束 MPI_Finalize() |
MPI常见函数
MPI_Init(&argc,&argv)
MPI_Finalize
int MPI_Comm_rank(MPI_Comm comm, int *rank)
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
int MPI_Comm_size(MPI_Comm, int *size)
MPI_Comm_size(MPI_COMM_WORLD, &size);
int MPI_Send(type* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
int MPI_Recv(type* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
MPI_Status status;
cout<<status.MPI_SOURSE<<status.MPI_TAG<<status.ERROR<<endl;
int MPI_Scatter(type* send_buf, int count, MPI_Datatype, type *rec_buf, int count, MPI_Datatype, int tag, MPI_Comm comm)
简单的发送接收程序
#include<stdio.h>
#include<mpi.h>
#include<string.h>
int main(int argc, char **argv){
char message[20];
int myrank;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&myrank);
if(myrank == 0){
strcpy(message, "Hello, process 1");
MPI_Send(message, strlen(message),MPI_CHAR, 1, 99, MPI_COMM_WORLD);
}
else if(myrank == 1){
MPI_Status status;
MPI_Recv(message, 20, MPI_CHAR, 0, 99, MPI_COMM_WORLD, &status);
printf("received :%send",message);
}
MPI_Finalize();
}