?? 11.cpp
字號:
#include <mpi.h>
#include <stdio.h>
#include <malloc.h>
int main(int argc, char** argv)
{
MPI_Init(&argc, &argv);
int size, rank;
char *ms="Message";
char rms[8];
double t1, t2, dev1, dev2;
int flag=0;
MPI_Status status;
MPI_Request request1, request2;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
//I
t1 = MPI_Wtime();
MPI_Isend(ms, 7, MPI_CHAR,size-rank-1, 0, MPI_COMM_WORLD, &request1);
MPI_Irecv(&rms, 7, MPI_CHAR, size-rank-1, 0, MPI_COMM_WORLD, &request2);
while(!flag)
{
MPI_Test(&request2, &flag, &status);
}
MPI_Barrier(MPI_COMM_WORLD);
t2 = MPI_Wtime();
if(rank==0)
{
dev1 = t2 - t1;
printf(" TIME: Isend+Irecv : %f \n", dev1);
}
//SENDRECV
t1 = MPI_Wtime();
MPI_Sendrecv(ms, 7, MPI_CHAR,size-rank-1, 0, rms, 7, MPI_CHAR, size-rank-1, 0, MPI_COMM_WORLD, &status);
while(!flag)
{
MPI_Test(&request2, &flag, &status);
}
MPI_Barrier(MPI_COMM_WORLD);
t2 = MPI_Wtime();
if(rank==0)
{
dev2 = t2 - t1;
printf(" TIME: Sendrecv : %f \n\n", dev2);
if (dev2>dev1)
{
printf("\nIsend+Irecv faster then Sendrecv ");
}
else
{
printf("\nSendrecv faster then Isend+Irecv\n ");
}
}
MPI_Finalize();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -