* ENHANCEMENTS, OR MODIFICATIONS.
* ***************************************************************************
**/
-int ibm_test(int rank, int size)
+static int ibm_test(int rank, int size)
{
int success = 1;
#define MAXLEN 10000
if (rank == root) {
for (k = 0; k < j; k++) {
if (in[k] != k * size) {
- printf("bad answer (%d) at index %d of %d (should be %d)", in[k], k,
- j, k * size);
+ printf("bad answer (%d) at index %d of %d (should be %d)", in[k],
+ k, j, k * size);
success = 0;
break;
}
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);
+ //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, &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);
printf("ok.\n");
else
printf("failed.\n");
- printf("Elapsed time=%lf s\n", MPI_Wtime() - start_timer);
+ if (!quiet)
+ printf("Elapsed time=%lf s\n", MPI_Wtime() - start_timer);
}
MPI_Barrier(MPI_COMM_WORLD);
printf("** IBM Test Result: ... \n");
if (!ibm_test(rank, size))
printf("\t[%d] failed.\n", rank);
- else
+ else if (!quiet)
printf("\t[%d] ok.\n", rank);
+ else
+ printf("\tok.\n");
MPI_Finalize();
return 0;