00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef SIO_PERF_H__
00016 #define SIO_PERF_H__
00017
00018 #include "sio_timer.h"
00019 #ifndef STANDALONE
00020 #include "H5private.h"
00021 #include "h5test.h"
00022 #include "h5tools_utils.h"
00023 #else
00024 #include "sio_standalone.h"
00025 #endif
00026
00027
00028 #if H5_VERS_MAJOR > 1 || H5_VERS_MINOR > 4
00029 #define H5_HAVE_NOFILL 1
00030 #endif
00031
00032 #define MAX_DIMS 32
00033
00034 typedef enum iotype_ {
00035 POSIXIO,
00036 HDF5
00037
00038 } iotype;
00039
00040 typedef enum vfdtype_ {
00041 sec2,
00042 stdio,
00043 core,
00044 split,
00045 multi,
00046 family,
00047 direct
00048
00049 } vfdtype;
00050
00051 typedef struct parameters_ {
00052 iotype io_type;
00053 vfdtype vfd;
00054 long num_files;
00055 long num_dsets;
00056 off_t num_bytes;
00057 int num_iters;
00058 int rank;
00059 off_t dset_size[MAX_DIMS];
00060 size_t buf_size[MAX_DIMS];
00061 size_t chk_size[MAX_DIMS];
00062 int order[MAX_DIMS];
00063 hsize_t h5_align;
00064 hsize_t h5_thresh;
00065 int h5_use_chunks;
00066 int h5_extendable;
00067 int h5_write_only;
00068 unsigned h5_use_mpi_posix;
00069 int verify;
00070 } parameters;
00071
00072 typedef struct results_ {
00073 herr_t ret_code;
00074 sio_time *timers;
00075 } results;
00076
00077 #ifndef SUCCESS
00078 #define SUCCESS 0
00079 #endif
00080
00081 #ifndef FAIL
00082 #define FAIL -1
00083 #endif
00084
00085 extern FILE *output;
00086 extern sio_time *timer_g;
00087 extern int sio_debug_level;
00088
00089
00090
00091
00092
00093
00094 #ifdef __cplusplus
00095 extern "C" {
00096 #endif
00097
00098 extern results do_sio(parameters param);
00099
00100 #ifdef __cplusplus
00101 }
00102 #endif
00103
00104 #endif