summaryrefslogtreecommitdiffstats
path: root/tools/perform
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perform')
-rw-r--r--tools/perform/CMakeLists.txt4
-rw-r--r--tools/perform/Makefile.am4
-rw-r--r--tools/perform/Makefile.in11
-rw-r--r--tools/perform/io_timer.c225
-rw-r--r--tools/perform/io_timer.h94
5 files changed, 6 insertions, 332 deletions
diff --git a/tools/perform/CMakeLists.txt b/tools/perform/CMakeLists.txt
index a54664a..0713661 100644
--- a/tools/perform/CMakeLists.txt
+++ b/tools/perform/CMakeLists.txt
@@ -17,7 +17,6 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib )
# --------------------------------------------------------------------
#-- Adding test for h5perf_serial
set (h5perf_serial_SRCS
- ${HDF5_PERFORM_SOURCE_DIR}/io_timer.c
${HDF5_PERFORM_SOURCE_DIR}/sio_perf.c
${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c
)
@@ -30,7 +29,6 @@ set_target_properties (h5perf_serial PROPERTIES FOLDER perform)
if (HDF5_BUILD_PERFORM_STANDALONE)
#-- Adding test for h5perf_serial_alone
set (h5perf_serial_alone_SRCS
- ${HDF5_PERFORM_SOURCE_DIR}/io_timer.c
${HDF5_PERFORM_SOURCE_DIR}/sio_perf.c
${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c
)
@@ -99,7 +97,6 @@ set_target_properties (zip_perf PROPERTIES FOLDER perform)
if (H5_HAVE_PARALLEL AND BUILD_TESTING)
#-- Adding test for h5perf
set (h5perf_SRCS
- ${HDF5_PERFORM_SOURCE_DIR}/io_timer.c
${HDF5_PERFORM_SOURCE_DIR}/pio_perf.c
${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c
)
@@ -112,7 +109,6 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING)
if (HDF5_BUILD_PERFORM_STANDALONE)
#-- Adding test for h5perf
set (h5perf_alone_SRCS
- ${HDF5_PERFORM_SOURCE_DIR}/io_timer.c
${HDF5_PERFORM_SOURCE_DIR}/pio_perf.c
${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c
)
diff --git a/tools/perform/Makefile.am b/tools/perform/Makefile.am
index 265c5cf..1af0e7f 100644
--- a/tools/perform/Makefile.am
+++ b/tools/perform/Makefile.am
@@ -59,8 +59,8 @@ TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_P
# "make clean" and some systems, e.g., AIX, do not like it.
check_PROGRAMS= iopipe chunk overhead zip_perf perf_meta $(BUILD_ALL_PROGS) perf
-h5perf_SOURCES=pio_perf.c pio_engine.c io_timer.c
-h5perf_serial_SOURCES=sio_perf.c sio_engine.c io_timer.c
+h5perf_SOURCES=pio_perf.c pio_engine.c
+h5perf_serial_SOURCES=sio_perf.c sio_engine.c
# These are the files that `make clean' (and derivatives) will remove from
# this directory.
diff --git a/tools/perform/Makefile.in b/tools/perform/Makefile.in
index 7ea71a7..24aa8be 100644
--- a/tools/perform/Makefile.in
+++ b/tools/perform/Makefile.in
@@ -130,15 +130,13 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
-am_h5perf_OBJECTS = pio_perf.$(OBJEXT) pio_engine.$(OBJEXT) \
- io_timer.$(OBJEXT)
+am_h5perf_OBJECTS = pio_perf.$(OBJEXT) pio_engine.$(OBJEXT)
h5perf_OBJECTS = $(am_h5perf_OBJECTS)
h5perf_DEPENDENCIES = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
h5perf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(h5perf_LDFLAGS) $(LDFLAGS) -o $@
-am_h5perf_serial_OBJECTS = sio_perf.$(OBJEXT) sio_engine.$(OBJEXT) \
- io_timer.$(OBJEXT)
+am_h5perf_serial_OBJECTS = sio_perf.$(OBJEXT) sio_engine.$(OBJEXT)
h5perf_serial_OBJECTS = $(am_h5perf_serial_OBJECTS)
h5perf_serial_DEPENDENCIES = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
h5perf_serial_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -723,8 +721,8 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = h5perf perf
# Serial test programs.
TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS)
-h5perf_SOURCES = pio_perf.c pio_engine.c io_timer.c
-h5perf_serial_SOURCES = sio_perf.c sio_engine.c io_timer.c
+h5perf_SOURCES = pio_perf.c pio_engine.c
+h5perf_serial_SOURCES = sio_perf.c sio_engine.c
# These are the files that `make clean' (and derivatives) will remove from
# this directory.
@@ -892,7 +890,6 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chunk.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_timer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopipe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/overhead.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf.Po@am__quote@
diff --git a/tools/perform/io_timer.c b/tools/perform/io_timer.c
deleted file mode 100644
index efe909d..0000000
--- a/tools/perform/io_timer.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group. *
- * 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. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/* changes:
- * rename pio_timer.c as io_timer.c;
- * Removed pio_perf.h so that it is not dependant on it;
- * Removed set_timer_type() and get_timer_type() since no one calls them;
- * Merged sio_timer.c into io_timer.c;
- */
-
-/*
- * Purpose:
- *
- * This is a module of useful timing functions for performance testing.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "hdf5.h"
-
-#ifdef H5_HAVE_PARALLEL
-#include <mpi.h>
-#endif
-
-#include "io_timer.h"
-
-/*
- * The number to divide the tv_usec field with to get a nice decimal to add to
- * the number of seconds.
- */
-#define MICROSECOND 1000000.0
-
-/* global variables */
-io_time_t *timer_g; /* timer: global for stub functions */
-
-/*
- * Function: sub_time
- * Purpose: Struct two time values, and return the difference, in microseconds
- *
- * Note that the function assumes that a > b
- * Programmer: Leon Arber, 1/27/06
- */
-static double sub_time(struct timeval* a, struct timeval* b)
-{
- return (((double)a->tv_sec +
- ((double)a->tv_usec) / MICROSECOND) -
- ((double)b->tv_sec +
- ((double)b->tv_usec) / MICROSECOND));
-}
-
-
-/*
- * Function: io_time_new
- * Purpose: Build us a brand, spankin', new performance time object.
- * The object is a black box to the user. They just tell us
- * what type of timer they want (MPI_CLOCK for MPI_Wtime or
- * SYS_CLOCK for system time).
- * Return: Pointer to io_time object
- * Programmer: Bill Wendling, 01. October 2001
- * Modifications:
- */
-io_time_t *
-io_time_new(clock_type type)
-{
- io_time_t *pt = (io_time_t *)calloc(1, sizeof(struct io_time_t));
-
- /* set global timer variable */
- timer_g = pt;
-
- pt->type = type;
- return pt;
-}
-
-/*
- * Function: io_time_destroy
- * Purpose: Remove the memory allocated for the io_time object. Only
- * need to call on a pointer allocated with the ``io_time_new''
- * function.
- * Return: Nothing
- * Programmer: Bill Wendling, 01. October 2001
- * Modifications:
- */
-void
-io_time_destroy(io_time_t *pt)
-{
- HDfree(pt);
- /* reset the global timer pointer too. */
- timer_g = NULL;
-}
-
-#if 0
-/* no one is calling set_timer_type or get_timer_type ???*/
-/*
- * Function: set_timer_type
- * Purpose: Set the type of the timer to either MPI_CLOCK or SYS_CLOCK.
- * This really only needs to be called if you didn't construct a
- * timer with the pio_timer_new function (shame!).
- * Return: Nothing
- * Programmer: Bill Wendling, 04. October 2001
- * Modifications:
- */
-void
-set_timer_type(io_time_t *pt, clock_type type)
-{
- pt->type = type;
-}
-
-/*
- * Function: get_timer_type
- * Purpose: Get the type of the timer.
- * Return: MPI_CLOCK or SYS_CLOCK.
- * Programmer: Bill Wendling, 04. October 2001
- * Modifications:
- */
-clock_type
-get_timer_type(io_time_t *pt)
-{
- return pt->type;
-}
-#endif
-
-/*
- * Function: set_time
- * Purpose: Set the time in a ``io_time_t'' object.
- * Return: Pointer to the passed in ``io_time_t'' object if SUCCEED; Null otherwise.
- * Programmer: Bill Wendling, 01. October 2001
- * Modifications:
- */
-io_time_t *
-set_time(io_time_t *pt, timer_type t, int start_stop)
-{
- /* sanity check */
- assert(pt);
-
- switch(pt->type){
-#ifdef H5_HAVE_PARALLEL
- case MPI_CLOCK:
- if (start_stop == TSTART) {
- pt->mpi_timer[t] = MPI_Wtime();
-
- /* When we start the timer for HDF5_FINE_WRITE_FIXED_DIMS or HDF5_FINE_READ_FIXED_DIMS
- * we compute the time it took to only open the file */
- if(t == HDF5_FINE_WRITE_FIXED_DIMS)
- pt->total_time[HDF5_FILE_WRITE_OPEN] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_GROSS_WRITE_FIXED_DIMS];
- else if(t == HDF5_FINE_READ_FIXED_DIMS)
- pt->total_time[HDF5_FILE_READ_OPEN] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_GROSS_READ_FIXED_DIMS];
-
- } else {
- pt->total_time[t] += MPI_Wtime() - pt->mpi_timer[t];
- pt->mpi_timer[t] = MPI_Wtime();
-
- /* When we stop the timer for HDF5_GROSS_WRITE_FIXED_DIMS or HDF5_GROSS_READ_FIXED_DIMS
- * we compute the time it took to close the file after the last read/write finished */
- if(t == HDF5_GROSS_WRITE_FIXED_DIMS)
- pt->total_time[HDF5_FILE_WRITE_CLOSE] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_FINE_WRITE_FIXED_DIMS];
- else if(t == HDF5_GROSS_READ_FIXED_DIMS)
- pt->total_time[HDF5_FILE_READ_CLOSE] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_FINE_READ_FIXED_DIMS];
- }
- break;
-#endif /* H5_HAVE_PARALLEL */
- case SYS_CLOCK:
- if (start_stop == TSTART) {
- HDgettimeofday(&pt->sys_timer[t], NULL);
-
- /* When we start the timer for HDF5_FINE_WRITE_FIXED_DIMS or HDF5_FINE_READ_FIXED_DIMS
- * we compute the time it took to only open the file */
- if(t == HDF5_FINE_WRITE_FIXED_DIMS)
- pt->total_time[HDF5_FILE_WRITE_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_WRITE_FIXED_DIMS]));
- else if(t == HDF5_FINE_READ_FIXED_DIMS)
- pt->total_time[HDF5_FILE_READ_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_READ_FIXED_DIMS]));
-
-
- } else {
- struct timeval sys_t;
-
- HDgettimeofday(&sys_t, NULL);
- pt->total_time[t] += sub_time(&sys_t, &(pt->sys_timer[t]));
-
- /* When we stop the timer for HDF5_GROSS_WRITE_FIXED_DIMS or HDF5_GROSS_READ_FIXED_DIMS
- * we compute the time it took to close the file after the last read/write finished */
- if(t == HDF5_GROSS_WRITE_FIXED_DIMS)
- pt->total_time[HDF5_FILE_WRITE_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_WRITE_FIXED_DIMS]));
- else if(t == HDF5_GROSS_READ_FIXED_DIMS)
- pt->total_time[HDF5_FILE_READ_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_READ_FIXED_DIMS]));
-
- }
- break;
- default:
- fprintf(stderr, "Unknown time clock type (%d)\n", pt->type);
- return (NULL);
- break;
- }
-
- debug_start_stop_time(pt, t, start_stop);
-
- return pt;
-}
-
-/*
- * Function: get_time
- * Purpose: Get the time from a ``io_time_t'' object.
- * Return: The number of seconds as a DOUBLE.
- * Programmer: Bill Wendling, 01. October 2001
- * Modifications:
- */
-double
-get_time(io_time_t *pt, timer_type t)
-{
- return pt->total_time[t];
-}
-
-#ifdef STANDALONE
-#include "pio_standalone.c"
-#endif
diff --git a/tools/perform/io_timer.h b/tools/perform/io_timer.h
deleted file mode 100644
index 5480ed5..0000000
--- a/tools/perform/io_timer.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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__ */