11.cpp

来自「10 Mpi source examples for begginers」· C++ 代码 · 共 41 行

CPP
41
字号
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#define DIM 4

int main(int argc, char** argv)
{
	MPI_Init(&argc, &argv);
	
	int One[DIM];
	int Two[DIM];
	int size, rank;
	MPI_Datatype Intv;
	MPI_Status status;

	MPI_Comm_size(MPI_COMM_WORLD, &size);
	//printf("matrix %d*%d\n",size,DIM);
	MPI_Comm_rank(MPI_COMM_WORLD, &rank);

	for (int i=0; i<DIM; i++)
		One[i]=rank+rand()%10;

	MPI_Type_contiguous(DIM, MPI_INT, &Intv);
	MPI_Type_commit(&Intv);

	printf("\nOriginal row : %d == ", rank);
	for (int j=0; j<DIM; j++)
		printf("%d ", One[j]);
	printf("\n");

	MPI_Sendrecv(&One, 1, Intv, size-rank-1, 1, &Two, 1, Intv, size-rank-1, 1, MPI_COMM_WORLD, &status); 

	printf("New row______: %d == ", rank);
	for (int j=0; j<DIM; j++)
		printf("%d ", Two[j]);
	printf("\n");

	MPI_Type_free(&Intv),

	MPI_Finalize();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?