📄 11.cpp
字号:
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#define DIM 5
int main(int argc, char** argv)
{
MPI_Init(&argc, &argv);
int One[DIM];
int Two[DIM];
int size, rank;
int *b1;
int *b2;
MPI_Status status;
b1=(int*)malloc(sizeof(int)*DIM);
b2=(int*)malloc(sizeof(int)*DIM);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
for (int i=0; i<DIM; i++)
One[i]=rank+rand()%10;
printf("\nOriginal row : %d == ", rank);
for (int j=0; j<DIM; j++)
printf("%d ", One[j]);
printf("\n");
int pos = 0;
int len = sizeof(int)*DIM;
MPI_Pack(&One, DIM, MPI_INT, b1, len, &pos, MPI_COMM_WORLD);
MPI_Sendrecv(b1, len, MPI_PACKED, size-rank-1, 1, b2, len, MPI_PACKED, size-rank-1, 1, MPI_COMM_WORLD, &status);
pos=0;
MPI_Unpack(b2, len, &pos, &Two, DIM, MPI_INT, MPI_COMM_WORLD);
//
printf("New_________ : %d == ", rank);
for (int j=0; j<DIM; j++)
printf("%d ", Two[j]);
printf("\n");
free(b1);
free(b2);
MPI_Finalize();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -