📄 й1.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -