Bu Blogda Ara

7 Şubat 2010 Pazar

wrapper for MPI_Send that takes timing information. * Should be compiled and linked with

/* send.c -- wrapper for MPI_Send that takes timing information.
* Should be compiled and linked with ./bcast.c
*
* Input: none
* Output: Print_send_time prints total elapsed time spent in MPI_Send
*
* See Chap 12, pp. 271 & ff in PPMPI.
*/
#include
#include "mpi.h"

static double send_time = 0.0;

int MPI_Send(void* buffer, int count,
MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) {
double start_time;
double finish_time;
int return_val;

start_time = MPI_Wtime();
return_val = PMPI_Send(buffer, count, datatype,
dest, tag, comm);
finish_time = MPI_Wtime();
send_time = send_time + finish_time - start_time;
return return_val;
}

void Print_send_time(void) {
int my_rank;

MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
printf("Process %d > Total time in MPI_Send = %e\n", my_rank, send_time);
}

Hiç yorum yok:

Yorum Gönder