From db32f19a773d8cfa872de7c2c03a6e768df49c06 Mon Sep 17 00:00:00 2001 From: "Peter W. Draper" <p.w.draper@durham.ac.uk> Date: Thu, 3 Oct 2019 11:12:47 +0100 Subject: [PATCH] Add an option to scale all message sizes --- swiftmpistepsim.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/swiftmpistepsim.c b/swiftmpistepsim.c index 394dea0..7a8091f 100644 --- a/swiftmpistepsim.c +++ b/swiftmpistepsim.c @@ -38,6 +38,9 @@ static int verbose = 0; /* Attempt to keep original injection time differences. */ static int usetics = 1; +/* Scale to apply to the size of the messages we send. */ +static float messagescale = 1.0; + /* Integer types of send and recv tasks, must match log. */ static const int task_type_send = 22; static const int task_type_recv = 23; @@ -336,6 +339,9 @@ static void pick_logs(void) { if (log->rank == myrank && log->activation) { if (log->type == task_type_send || log->type == task_type_recv) { + /* Scale size. */ + log->size *= messagescale ; + /* Allocate space for data. */ log->data = calloc(log->size, 1); @@ -366,7 +372,8 @@ static void pick_logs(void) { static void usage(char *argv[]) { fprintf(stderr, "Usage: %s [-vf] SWIFT_mpiuse-log-file.dat logfile.dat\n", argv[0]); - fprintf(stderr, " options: -v verbose, -f fast injections\n"); + fprintf(stderr, " options: -v verbose, -f fast injections, " + "-s message size (bytes)\n"); fflush(stderr); } @@ -392,7 +399,7 @@ int main(int argc, char *argv[]) { /* Handle the command-line, we expect a mpiuse data file to read and various * options. */ int opt; - while ((opt = getopt(argc, argv, "vf")) != -1) { + while ((opt = getopt(argc, argv, "vfs:")) != -1) { switch (opt) { case 'f': usetics = 0; @@ -400,6 +407,9 @@ int main(int argc, char *argv[]) { case 'v': verbose = 1; break; + case 's': + messagescale = atof(optarg); + break; default: if (myrank == 0) usage(argv); return 1; @@ -438,6 +448,10 @@ int main(int argc, char *argv[]) { if (myrank == 0) { message("Start of MPI tests"); message("=================="); + if (messagescale != 1.0f) { + message(" "); + message(" Using message scale of %f", messagescale); + } } /* Make three threads, one for injecting tasks and two to check for -- GitLab