X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/96cedde3cdbc0b8ffc3f096a1b65d021b0226f99..5d565c9f388ee34b957b69a595e98bbfaf06fb10:/teshsuite/smpi/macro-sample/macro-sample.c diff --git a/teshsuite/smpi/macro-sample/macro-sample.c b/teshsuite/smpi/macro-sample/macro-sample.c index 395b2b638a..c777e7b11a 100644 --- a/teshsuite/smpi/macro-sample/macro-sample.c +++ b/teshsuite/smpi/macro-sample/macro-sample.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2019. The SimGrid Team. +/* Copyright (c) 2009-2023. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -32,9 +32,8 @@ int main(int argc, char *argv[]) MPI_Comm_size(MPI_COMM_WORLD, &n); MPI_Comm_rank(MPI_COMM_WORLD, &rank); double d = 2.0; - for (int i = 0; i < 5; i++) { /* I want no more than n + 1 benchs (thres < 0) */ - SMPI_SAMPLE_GLOBAL(n + 1, -1) { + SMPI_SAMPLE_GLOBAL(int i = 0, i < 5, i++, n + 1, -1){ if (verbose) fprintf(stderr, "(%12.6f) [rank:%d]", MPI_Wtime(), rank); else @@ -42,14 +41,26 @@ int main(int argc, char *argv[]) fprintf(stderr, " Run the first computation. It's globally benched, " "and I want no more than %d benchmarks (thres<0)\n", n + 1); d = compute(2.0); - } + } + + //tagged version, should differentiate between two different calls to the same kernel and run calibration even on the second one + for (int tag=0; tag < 4; tag++){ + char ctag [12]; + //run twice with the same tag, test should skip 1 and 3, as they were already benched. + sprintf(ctag, "%d", tag - tag%2); + SMPI_SAMPLE_GLOBAL_TAG(int i = 0, i < 500, i++, 2, 0.1, ctag){ + if (verbose) + fprintf(stderr, "(%12.6f) [rank:%d]", MPI_Wtime(), rank); + else + fprintf(stderr, "(0)"); + fprintf(stderr, " Run the computation %d with tag %d\n", tag, tag- tag%2); + d = compute(2.0); + } } n = 0; - for (int i = 0; i < 5; i++) { - /* I want the standard error to go below 0.1 second. - * Two tests at least will be run (count is not > 0) */ - SMPI_SAMPLE_LOCAL(0, 0.1) { + //Use 0 as max iter, but one will always be performed by design. + SMPI_SAMPLE_LOCAL (int i = 0, i < 5, i++,0, 0.1){ if (verbose || n < 2) { n++; if (verbose) @@ -57,11 +68,10 @@ int main(int argc, char *argv[]) else fprintf(stderr, "(1)"); fprintf(stderr, - " [rank:%d] Run the first (locally benched) computation. It's locally benched, and I want the " + " [rank:%d] Run the second (locally benched) computation. It's locally benched, and I want the " "standard error to go below 0.1 second (count is not >0)\n", rank); } d = compute(d); - } } if (verbose)