IOR
utilities.h
Go to the documentation of this file.
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  */
4 /******************************************************************************\
5 * *
6 * Copyright (c) 2003, The Regents of the University of California *
7 * See the file COPYRIGHT for a complete copyright notice and license. *
8 * *
9 \******************************************************************************/
10 
11 #ifndef _UTILITIES_H
12 #define _UTILITIES_H
13 
14 #ifdef HAVE_CONFIG_H
15 # include "config.h"
16 #endif
17 
18 #include <mpi.h>
19 #include "ior.h"
20 
21 extern int rank;
22 extern int rankOffset;
23 extern int verbose;
24 extern MPI_Comm testComm;
25 extern FILE * out_resultfile;
26 extern enum OutputFormat_t outputFormat; /* format of the output */
27 
28 /*
29  * Try using the system's PATH_MAX, which is what realpath and such use.
30  */
31 #define MAX_PATHLEN PATH_MAX
32 #define ERROR_LOCATION __func__
33 
34 
35 void* safeMalloc(uint64_t size);
36 void set_o_direct_flag(int *fd);
37 
39 void update_write_memory_pattern(uint64_t item, char * buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType, ior_memory_flags type);
40 void update_write_memory_pattern_gpu(uint64_t item, char * buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType);
41 void generate_memory_pattern(char * buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType, ior_memory_flags type);
42 void generate_memory_pattern_gpu(char * buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType);
43 /* invalidate memory in the buffer */
44 void invalidate_buffer_pattern(char * buf, size_t bytes, ior_memory_flags type);
45 
46 /* check a data buffer, @return 0 if all is correct, otherwise 1 */
47 int verify_memory_pattern(uint64_t item, char * buffer, size_t bytes, int rand_seed, int pretendRank, ior_dataPacketType_e dataPacketType, ior_memory_flags type);
48 int verify_memory_pattern_gpu(uint64_t item, char * buffer, size_t bytes, int rand_seed, int pretendRank, ior_dataPacketType_e dataPacketType);
49 
50 void PrintKeyVal(char * key, char * value);
51 void initCUDA(int blockMapping, int rank, int numNodes, int tasksPerNode, int useGPUID);
52 char *CurrentTimeString(void);
53 int Regex(char *, char *);
54 void ShowFileSystemSize(char * filename, const struct ior_aiori * backend, void * backend_options);
55 void DumpBuffer(void *, size_t);
56 void SetHints (MPI_Info *, char *);
57 void ShowHints (MPI_Info *);
58 char *HumanReadable(IOR_offset_t value, int base);
59 int QueryNodeMapping(MPI_Comm comm, int print_nodemap);
60 int GetNumNodes(MPI_Comm);
61 int GetNumTasks(MPI_Comm);
62 int GetNumTasksOnNode0(MPI_Comm);
63 void DelaySecs(int delay);
65 size_t NodeMemoryStringToBytes(char *size_str);
66 
67 /* Returns -1, if cannot be read */
68 int64_t ReadStoneWallingIterations(char * const filename, MPI_Comm com);
69 void StoreStoneWallingIterations(char * const filename, int64_t count);
70 
71 void init_clock(MPI_Comm com);
72 double GetTimeStamp(void);
73 char * PrintTimestamp(); // TODO remove this function
74 unsigned long GetProcessorAndCore(int *chip, int *core);
75 void *aligned_buffer_alloc(size_t size, ior_memory_flags type);
76 void aligned_buffer_free(void *buf, ior_memory_flags type);
77 #endif /* !_UTILITIES_H */
int verify_memory_pattern_gpu(uint64_t item, char *buffer, size_t bytes, int rand_seed, int pretendRank, ior_dataPacketType_e dataPacketType)
double GetTimeStamp(void)
Definition: utilities.c:876
int64_t ReadStoneWallingIterations(char *const filename, MPI_Comm com)
Definition: utilities.c:936
int GetNumTasksOnNode0(MPI_Comm)
Definition: utilities.c:551
int rankOffset
Definition: utilities.c:71
void DelaySecs(int delay)
Definition: utilities.c:974
int GetNumNodes(MPI_Comm)
Definition: utilities.c:476
OutputFormat_t
Definition: iordef.h:69
enum OutputFormat_t outputFormat
Definition: utilities.c:76
int GetNumTasks(MPI_Comm)
Definition: utilities.c:513
void aligned_buffer_free(void *buf, ior_memory_flags type)
Definition: utilities.c:1119
void invalidate_buffer_pattern(char *buf, size_t bytes, ior_memory_flags type)
Definition: utilities.c:172
char * PrintTimestamp()
Definition: utilities.c:921
void PrintKeyVal(char *key, char *value)
Definition: ior-output.c:73
void generate_memory_pattern(char *buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType, ior_memory_flags type)
Definition: utilities.c:137
int Regex(char *, char *)
Definition: utilities.c:833
void SetHints(MPI_Info *, char *)
Definition: utilities.c:656
void * safeMalloc(uint64_t size)
Definition: utilities.c:238
unsigned long GetProcessorAndCore(int *chip, int *core)
Definition: utilities.c:1057
char * CurrentTimeString(void)
Definition: utilities.c:356
static option_help options[]
Definition: aiori-CEPHFS.c:59
ior_dataPacketType_e parsePacketType(char t)
Definition: utilities.c:291
int QueryNodeMapping(MPI_Comm comm, int print_nodemap)
Definition: utilities.c:402
void updateParsedOptions(IOR_param_t *options, options_all_t *global_options)
Definition: utilities.c:308
static const ior_aiori_t * backend
Definition: ior.c:61
FILE * out_resultfile
Definition: utilities.c:75
size_t NodeMemoryStringToBytes(char *size_str)
Definition: utilities.c:259
static options_all_t * global_options
Definition: parse_options.c:41
int rank
Definition: utilities.c:70
void init_clock(MPI_Comm com)
Definition: utilities.c:917
void DumpBuffer(void *, size_t)
Definition: utilities.c:381
void update_write_memory_pattern(uint64_t item, char *buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType, ior_memory_flags type)
Definition: utilities.c:94
void StoreStoneWallingIterations(char *const filename, int64_t count)
Definition: utilities.c:959
void generate_memory_pattern_gpu(char *buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType)
void set_o_direct_flag(int *fd)
Definition: utilities.c:332
void * aligned_buffer_alloc(size_t size, ior_memory_flags type)
Definition: utilities.c:1070
ior_dataPacketType_e
Definition: iordef.h:22
ior_memory_flags
Definition: iordef.h:29
void update_write_memory_pattern_gpu(uint64_t item, char *buf, size_t bytes, int rand_seed, int rank, ior_dataPacketType_e dataPacketType)
int verify_memory_pattern(uint64_t item, char *buffer, size_t bytes, int rand_seed, int pretendRank, ior_dataPacketType_e dataPacketType, ior_memory_flags type)
Definition: utilities.c:182
long long int IOR_offset_t
Definition: iordef.h:123
int verbose
Definition: utilities.c:72
char * HumanReadable(IOR_offset_t value, int base)
Definition: utilities.c:987
void ShowFileSystemSize(char *filename, const struct ior_aiori *backend, void *backend_options)
Definition: utilities.c:770
void ShowHints(MPI_Info *)
Definition: utilities.c:717
MPI_Comm testComm
Definition: utilities.c:73
void initCUDA(int blockMapping, int rank, int numNodes, int tasksPerNode, int useGPUID)
Definition: utilities.c:438