diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2014-12-30 05:56:05 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2014-12-30 05:56:05 (GMT) |
commit | aebc4ae149b95814810c34a5036333ac732e21ea (patch) | |
tree | b68415a4048a0e218acc0a77aef6ef6345e0cfc2 /tools/perform/io_timer.h | |
parent | b65eae7aeeabcb15b2ef002692e1d0435902d44a (diff) | |
download | hdf5-aebc4ae149b95814810c34a5036333ac732e21ea.zip hdf5-aebc4ae149b95814810c34a5036333ac732e21ea.tar.gz hdf5-aebc4ae149b95814810c34a5036333ac732e21ea.tar.bz2 |
[svn-r25932] HDFFV-8902: merge the source code of h5perf and h5perf_serial, stage 1.
tools/perform/sio_timer.h:
tools/perform/pio_timer.c:
tools/perform/io_timer.h:
tools/perform/io_timer.c:
Renamed pio_timer.[ch] as io_timer.[ch];
merged content of sio_timer.[ch] into io_timer.[ch] so that both h5perf and h5perf_serial
call the combined io_timer.[ch].
Moved the debug printing code segment in set_time() in [sp]io_timer.c to as debug_start_stop_time() in [sp]io_perf.c where it belongs.
Screened out set_timer_type() and get_timer_type() which were not used by any code.
tools/perform/Makefile.am:
tools/perform/Makefile.in:
tools/perform/CMakeLists.txt
Adjusted to use io_timer.c for both h5perf and h5perf_serial.
tools/perform/pio_perf.c:
tools/perform/sio_perf.c:
tools/perform/pio_perf.h:
tools/perform/sio_perf.h:
Renamed [sp]io_time_destory() to same io_time_destroy();
Moved the debug printing code segment in set_time() in [sp]io_timer.c to as debug_start_stop_time() in [sp]io_perf.c where it belongs.
tools/perform/pio_engine.c:
tools/perform/sio_engine.c:
Removed #include io_timer.h since it was already #include by [sp]io_perf.h.
MANIFEST:
Updated the merge of [sp]io_timer.[ch] into io_timer.[ch].
Tested: h5committest and jam in extra.
Diffstat (limited to 'tools/perform/io_timer.h')
-rw-r--r-- | tools/perform/io_timer.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/tools/perform/io_timer.h b/tools/perform/io_timer.h new file mode 100644 index 0000000..5480ed5 --- /dev/null +++ b/tools/perform/io_timer.h @@ -0,0 +1,94 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef IO_TIMER__ +#define IO_TIMER__ + +#include "hdf5.h" +#include "H5private.h" + +#if defined(H5_TIME_WITH_SYS_TIME) +# include <sys/time.h> +# include <time.h> +#elif defined(H5_HAVE_SYS_TIME_H) +# include <sys/time.h> +#else +# include <time.h> +#endif + +#ifdef H5_HAVE_WINSOCK2_H +# include <winsock2.h> +#endif /* H5_HAVE_WINSOCK2_H */ +/* The different types of timers we can have */ +typedef enum timer_type_ { + HDF5_FILE_OPENCLOSE, + HDF5_DATASET_CREATE, + HDF5_MPI_WRITE, + HDF5_MPI_READ, + HDF5_FILE_READ_OPEN, + HDF5_FILE_READ_CLOSE, + HDF5_FILE_WRITE_OPEN, + HDF5_FILE_WRITE_CLOSE, + HDF5_FINE_WRITE_FIXED_DIMS, + HDF5_FINE_READ_FIXED_DIMS, + HDF5_GROSS_WRITE_FIXED_DIMS, + HDF5_GROSS_READ_FIXED_DIMS, + HDF5_RAW_WRITE_FIXED_DIMS, + HDF5_RAW_READ_FIXED_DIMS, + NUM_TIMERS +} timer_type; + +typedef enum clock_type_ { + SYS_CLOCK = 0, /* Use system clock to measure time */ + MPI_CLOCK = 1 /* Use MPI clock to measure time */ +} clock_type; + +/* Miscellaneous identifiers */ +enum { + TSTART, /* Start a specified timer */ + TSTOP /* Stop a specified timer */ +}; + +/* The performance time structure */ +typedef struct io_time_t { + clock_type type; + double total_time[NUM_TIMERS]; + double mpi_timer[NUM_TIMERS]; + struct timeval sys_timer[NUM_TIMERS]; +} io_time_t; + +/* External function declarations */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +#if 1 +/* from sio_time.h */ +//extern io_time_t *sio_time_new(void); +//extern void sio_time_destroy(io_time_t *pt); +//extern void set_timer_type(io_time_t *pt); +//extern io_time_t *set_time(io_time_t *pt, timer_type t, int start_stop); +//extern double get_time(io_time_t *pt, timer_type t); +#endif +extern io_time_t *io_time_new(clock_type t); +extern void io_time_destroy(io_time_t *pt); +//extern void set_timer_type(io_time_t *pt, clock_type type); +//extern clock_type get_timer_type(io_time_t *pt); +extern io_time_t *set_time(io_time_t *pt, timer_type t, int start_stop); +extern double get_time(io_time_t *pt, timer_type t); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* IO_TIMER__ */ |