#include "mpi.h" #include #include #include int main(int argc, char **argv) { int rank, result, rc, numtasks; clock_t t1, t2; float ratio; ratio = 1./CLOCKS_PER_SEC; rc = MPI_Init(&argc, &argv); if (rc != MPI_SUCCESS) { printf("Error starting MPI program. Terminating.\n"); MPI_Abort(MPI_COMM_WORLD, rc); } MPI_Comm_size(MPI_COMM_WORLD, &numtasks); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 0) { t1 = clock(); } MPI_Allreduce(&rank, &result, 1, MPI_INTEGER, MPI_SUM, MPI_COMM_WORLD); MPI_Finalize(); if (rank == 0) { t2 = clock(); printf("result = %d\n", result); printf("time = %f\n", ratio*(long)t1 + ratio*(long)t2); } }