darshan-hdf5-log-format.h 1.46 KB
Newer Older
1 2 3 4 5 6 7 8 9
/*
 * Copyright (C) 2015 University of Chicago.
 * See COPYRIGHT notice in top-level directory.
 *
 */

#ifndef __DARSHAN_HDF5_LOG_FORMAT_H
#define __DARSHAN_HDF5_LOG_FORMAT_H

10 11
/* current HDF5 log format version */
#define DARSHAN_HDF5_VER 1
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

#define HDF5_COUNTERS \
    /* count of HDF5 opens */\
    X(HDF5_OPENS) \
    /* end of counters */\
    X(HDF5_NUM_INDICES)

#define HDF5_F_COUNTERS \
    /* timestamp of first open */\
    X(HDF5_F_OPEN_TIMESTAMP) \
    /* timestamp of last close */\
    X(HDF5_F_CLOSE_TIMESTAMP) \
    /* end of counters*/\
    X(HDF5_F_NUM_INDICES)

#define X(a) a,
/* integer statistics for HDF5 file records */
enum darshan_hdf5_indices
{
    HDF5_COUNTERS
};

/* floating point statistics for HDF5 file records */
enum darshan_hdf5_f_indices
{
    HDF5_F_COUNTERS
};
#undef X

/* file record structure for HDF5 files. a record is created and stored for
 * every HDF5 file opened by the original application. For the HDF5 module,
 * the record includes:
 *      - a corresponding record identifier (created by hashing the file path)
 *      - the rank of the process which opened the file (-1 for shared files)
 *      - integer file I/O statistics (open, read/write counts, etc)
 *      - floating point I/O statistics (timestamps, cumulative timers, etc.)
 */
struct darshan_hdf5_file
{
    darshan_record_id f_id;
    int64_t rank;
    int64_t counters[HDF5_NUM_INDICES];
    double fcounters[HDF5_F_NUM_INDICES];
};

#endif /* __DARSHAN_HDF5_LOG_FORMAT_H */