int main(int argc, char **argv) { int size, rank; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (0 == rank) printf("** IBM Test Result: ... \n"); if (!ibm_test(rank, size)) printf("\t[%d] failed.\n", rank); else printf("\t[%d] ok.\n", rank); MPI_Finalize(); return 0; }
int main(int argc, char **argv) { int size, rank; int root = 0; int value; int sum = -99, sum_mirror = -99, min = 999, max = -999; double start_timer; int quiet = 0; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (argc > 1 && !strcmp(argv[1], "-q")) quiet = 1; start_timer = MPI_Wtime(); value = rank + 1; /* easy to verify that sum= (size*(size+1))/2; */ //printf("[%d] has value %d\n", rank, value); MPI_Reduce(&value, &sum, 1, MPI_INT, MPI_SUM, root, MPI_COMM_WORLD); MPI_Reduce(&value, &sum_mirror, 1, MPI_INT, MPI_SUM, root, MPI_COMM_WORLD); MPI_Reduce(&value, &min, 1, MPI_INT, MPI_MIN, root, MPI_COMM_WORLD); MPI_Reduce(&value, &max, 1, MPI_INT, MPI_MAX, root, MPI_COMM_WORLD); if (rank == root) { printf("** Scalar Int Test Result:\n"); printf("\t[%d] sum=%d ... validation ", rank, sum); if (((size * (size + 1)) / 2 == sum) && (sum_mirror == sum)) printf("ok.\n"); else printf("failed (sum=%d,sum_mirror=%d while both sould be %d.\n", sum, sum_mirror, (size * (size + 1)) / 2); printf("\t[%d] min=%d ... validation ", rank, min); if (1 == min) printf("ok.\n"); else printf("failed.\n"); printf("\t[%d] max=%d ... validation ", rank, max); if (size == max) printf("ok.\n"); else printf("failed.\n"); if (!quiet) printf("Elapsed time=%lf s\n", MPI_Wtime() - start_timer); } MPI_Barrier(MPI_COMM_WORLD); if (0 == rank) printf("** IBM Test Result: ... \n"); if (!ibm_test(rank, size)) printf("\t[%d] failed.\n", rank); else if (!quiet) printf("\t[%d] ok.\n", rank); else printf("\tok.\n"); MPI_Finalize(); return 0; }