⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 й1.cpp

📁 10 Mpi source examples for begginers
💻 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 + -