й1.cpp
来自「10 Mpi source examples for begginers」· C++ 代码 · 共 40 行
CPP
40 行
#include <mpi.h>
#include <stdio.h>
#define NAME 128
struct {
int rank;
char host[NAME];
} s;
int main(int argc, char** argv)
{
MPI_Datatype MPIStruct;
MPI_Init(&argc, &argv);
int n;
MPI_Comm_rank(MPI_COMM_WORLD, &(s.rank));
MPI_Get_processor_name(s.host, &n);
int block_lengths[2]={1,NAME};
MPI_Aint ind[2]={0, 4};
MPI_Datatype oldtypes[2]={MPI_INT, MPI_CHAR};
MPI_Type_struct(2, block_lengths, ind, oldtypes, &MPIStruct);
MPI_Type_commit(&MPIStruct);
int size;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Request request;
MPI_Isend(&s, 1, MPIStruct, 0, 0, MPI_COMM_WORLD, &request);
//printf("current rank: %d\n", s.rank);
if(s.rank==0)
{
MPI_Status status;
for(int i=0; i<size; i++)
{
MPI_Recv(&s, 1, MPIStruct, i, 0, MPI_COMM_WORLD, &status);
printf("current rank: %d, HostName: %s\n", s.rank, s.host);
}
}
MPI_Type_free(&MPIStruct);
MPI_Finalize();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?