added a basic timing test

git-svn-id: svn://anubis/gvsu@234 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
josh 2008-11-18 00:22:30 +00:00
parent c20e18d654
commit f904d3ba15

View File

@ -1,5 +1,6 @@
#include <iostream>
#include <sys/time.h>
#include <mpi.h>
using namespace std;
@ -13,13 +14,32 @@ int main(int argc, char * argv[])
if (my_rank == 0)
{
int buf = 0;
struct timeval before, after;
gettimeofday(&before, NULL); /* Start timing */
MPI_Send(&buf, sizeof(buf), MPI_CHAR,
0, 42, MPI_COMM_WORLD);
MPI_Recv(&buf, sizeof(buf), MPI_CHAR,
MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
gettimeofday(&after, NULL); /* Stop timing */
cout << "Master received " << buf << endl;
double time_before = before.tv_sec + before.tv_usec / 1000000.0;
double time_after = after.tv_sec + after.tv_usec / 1000000.0;
double diff = time_after - time_before;
cout << "Elapsed time: " << diff << " seconds." << endl;
}
else
{
int forty_two = 42;
int buf;
MPI_Recv(&buf, sizeof(buf), MPI_CHAR,
MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
MPI_Send(&forty_two, sizeof(forty_two), MPI_CHAR,
0, 42, MPI_COMM_WORLD);
}