From 43c1f21316556ae6ac898061a49194270d7e9d8b Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Mon, 10 Dec 2001 17:45:46 -0500 Subject: [svn-r4691] Purpose: Small Fixes Description: After conversation with Albert, here are some small fixes for the performance stuff. Not too significant. Though, we did add the "buffer size" as a parameter I pass to the engine. --- perform/pio_engine.c | 18 ++++++++---------- perform/pio_perf.c | 11 ++++------- perform/pio_perf.h | 1 + 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/perform/pio_engine.c b/perform/pio_engine.c index 575ae08..57db58a 100644 --- a/perform/pio_engine.c +++ b/perform/pio_engine.c @@ -196,7 +196,7 @@ do_pio(parameters param) if (maxprocs <= 0 ) { fprintf(stderr, - "maximun number of process to use must be > 0 (%u)\n", + "maximum number of process to use must be > 0 (%u)\n", maxprocs); GOTOERROR(FAIL); } @@ -205,14 +205,14 @@ do_pio(parameters param) if (maxprocs > nprocs) { fprintf(stderr, - "maximun number of process(%d) must be <= process in MPI_COMM_WORLD(%d)\n", + "maximum number of process(%d) must be <= process in MPI_COMM_WORLD(%d)\n", maxprocs, nprocs); GOTOERROR(FAIL); } /* Create a sub communicator for this run. Easier to use the first N * processes. */ - MPI_Comm_rank(comm, &myrank); + MPI_Comm_rank(MPI_COMM_WORLD, &myrank); color = (myrank < maxprocs); mrc = MPI_Comm_split(MPI_COMM_WORLD, color, myrank, &comm); @@ -259,29 +259,28 @@ do_pio(parameters param) sprintf(base_name, "#pio_tmp_%u", nf); pio_create_filename(iot, base_name, fname, sizeof(fname)); - set_time(res.timers, HDF5_FILE_OPENCLOSE, START); rc = do_fopen(iot, fname, fd, PIO_CREATE | PIO_WRITE, comm); set_time(res.timers, HDF5_FILE_OPENCLOSE, STOP); - VRFY((rc == SUCCESS), "do_fopen failed\n"); + VRFY((rc == SUCCESS), "do_fopen failed"); set_time(res.timers, HDF5_WRITE_FIXED_DIMS, START); rc = do_write(fd, iot, ndsets, nelmts, h5dset_space_id, buffer); set_time(res.timers, HDF5_WRITE_FIXED_DIMS, STOP); - VRFY((rc == SUCCESS), "do_write failed\n"); + VRFY((rc == SUCCESS), "do_write failed"); /* Close file for write */ set_time(res.timers, HDF5_FILE_OPENCLOSE, START); rc = do_fclose(iot, fd); set_time(res.timers, HDF5_FILE_OPENCLOSE, STOP); - VRFY((rc == SUCCESS), "do_fclose failed\n"); + VRFY((rc == SUCCESS), "do_fclose failed"); /* Open file for read */ hrc = do_fopen(iot, fname, fd, PIO_READ, comm); - VRFY((rc == SUCCESS), "do_fopen failed\n"); + VRFY((rc == SUCCESS), "do_fopen failed"); /* Calculate dataset offset within a file */ @@ -299,7 +298,7 @@ do_pio(parameters param) /* Close file for read */ rc = do_fclose(iot, fd); - VRFY((rc == SUCCESS), "do_fclose failed\n"); + VRFY((rc == SUCCESS), "do_fclose failed"); remove(fname); } @@ -531,7 +530,6 @@ do_write(file_descr fd, iotype iot, long ndsets, } nelmts_written += nelmts_towrite; -fprintf(stderr, "wrote %lu elmts, %lu written\n", nelmts_towrite, nelmts_written); } /* Calculate write time */ diff --git a/perform/pio_perf.c b/perform/pio_perf.c index 059845b..0a546a4 100644 --- a/perform/pio_perf.c +++ b/perform/pio_perf.c @@ -69,13 +69,8 @@ #define ONE_GB 1073741824UL -#if 0 -#define MIN_HDF5_BUF_SIZE 1024 -#define MAX_HDF5_BUF_SIZE (ONE_GB / 2) -#else -#define MIN_HDF5_BUF_SIZE 1024*1024*8 -#define MAX_HDF5_BUF_SIZE MIN_HDF5_BUF_SIZE*4 -#endif +#define MIN_HDF5_BUF_SIZE (1024 * 1024 * 8) +#define MAX_HDF5_BUF_SIZE (MIN_HDF5_BUF_SIZE * 4) /* local variables */ static const char *progname = "pio_perf"; @@ -232,6 +227,7 @@ run_test_loop(FILE *output, int max_num_procs, long max_size) for (j = MIN_HDF5_BUF_SIZE; j <= MAX_HDF5_BUF_SIZE; j <<= 1) { results res; + parms.buf_size = j; parms.num_dsets = ONE_GB / j; parms.num_elmts = (max_size * j) / sizeof(int); @@ -245,6 +241,7 @@ run_test_loop(FILE *output, int max_num_procs, long max_size) print_indent(output, TAB_SPACE * 3); fprintf(output, "Write Results = %f MB/s\n", + /* WRONG */ (parms.num_dsets * parms.num_elmts * sizeof(int)) / get_time(res.timers, HDF5_WRITE_FIXED_DIMS)); diff --git a/perform/pio_perf.h b/perform/pio_perf.h index 849df75..5ce80de 100644 --- a/perform/pio_perf.h +++ b/perform/pio_perf.h @@ -23,6 +23,7 @@ typedef struct parameters_ { unsigned long num_dsets; /* Number of datasets to create */ unsigned long num_elmts; /* Number of native ints in each dset */ unsigned int num_iters; /* Number of times to loop doing the IO */ + unsigned long buf_size; /* Buffer size */ } parameters; typedef struct results_ { -- cgit v0.12