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 
38 void update_write_memory_pattern(uint64_t item, char * buf, size_t bytes, int buff_offset, int rank);
39 void generate_memory_pattern(char * buf, size_t bytes, int buff_offset, int rank);
40 /* check a data buffer, @return 0 if all is correct, otherwise 1 */
41 int verify_memory_pattern(int item, char * buffer, size_t bytes, int buff_offset, int pretendRank);
42 
43 char *CurrentTimeString(void);
44 int Regex(char *, char *);
45 void ShowFileSystemSize(char * filename, const struct ior_aiori * backend, void * backend_options);
46 void DumpBuffer(void *, size_t);
47 void SetHints (MPI_Info *, char *);
48 void ShowHints (MPI_Info *);
49 char *HumanReadable(IOR_offset_t value, int base);
50 int QueryNodeMapping(MPI_Comm comm, int print_nodemap);
51 int GetNumNodes(MPI_Comm);
52 int GetNumTasks(MPI_Comm);
53 int GetNumTasksOnNode0(MPI_Comm);
54 void DelaySecs(int delay);
56 size_t NodeMemoryStringToBytes(char *size_str);
57 
58 /* Returns -1, if cannot be read */
59 int64_t ReadStoneWallingIterations(char * const filename, MPI_Comm com);
60 void StoreStoneWallingIterations(char * const filename, int64_t count);
61 
62 void init_clock(MPI_Comm com);
63 double GetTimeStamp(void);
64 char * PrintTimestamp(); // TODO remove this function
65 unsigned long GetProcessorAndCore(int *chip, int *core);
66 void *aligned_buffer_alloc(size_t size, ior_memory_flags type);
67 void aligned_buffer_free(void *buf, ior_memory_flags type);
68 #endif /* !_UTILITIES_H */
ior_memory_flags
Definition: ior.h:61
double GetTimeStamp(void)
Definition: utilities.c:731
int64_t ReadStoneWallingIterations(char *const filename, MPI_Comm com)
Definition: utilities.c:791
int GetNumTasksOnNode0(MPI_Comm)
Definition: utilities.c:406
int verify_memory_pattern(int item, char *buffer, size_t bytes, int buff_offset, int pretendRank)
Definition: utilities.c:100
int rankOffset
Definition: utilities.c:69
void DelaySecs(int delay)
Definition: utilities.c:828
int GetNumNodes(MPI_Comm)
Definition: utilities.c:331
OutputFormat_t
Definition: iordef.h:55
enum OutputFormat_t outputFormat
Definition: utilities.c:74
int GetNumTasks(MPI_Comm)
Definition: utilities.c:368
void aligned_buffer_free(void *buf, ior_memory_flags type)
Definition: utilities.c:973
void generate_memory_pattern(char *buf, size_t bytes, int buff_offset, int rank)
Definition: utilities.c:86
char * PrintTimestamp()
Definition: utilities.c:776
int Regex(char *, char *)
Definition: utilities.c:688
void SetHints(MPI_Info *, char *)
Definition: utilities.c:511
void * safeMalloc(uint64_t size)
Definition: utilities.c:125
unsigned long GetProcessorAndCore(int *chip, int *core)
Definition: utilities.c:911
char * CurrentTimeString(void)
Definition: utilities.c:241
static option_help options[]
Definition: aiori-CEPHFS.c:54
int QueryNodeMapping(MPI_Comm comm, int print_nodemap)
Definition: utilities.c:287
void updateParsedOptions(IOR_param_t *options, options_all_t *global_options)
Definition: utilities.c:178
static const ior_aiori_t * backend
Definition: ior.c:53
FILE * out_resultfile
Definition: utilities.c:73
size_t NodeMemoryStringToBytes(char *size_str)
Definition: utilities.c:146
static options_all_t * global_options
Definition: parse_options.c:41
int rank
Definition: utilities.c:68
void update_write_memory_pattern(uint64_t item, char *buf, size_t bytes, int buff_offset, int rank)
Definition: utilities.c:78
void init_clock(MPI_Comm com)
Definition: utilities.c:772
void DumpBuffer(void *, size_t)
Definition: utilities.c:266
void StoreStoneWallingIterations(char *const filename, int64_t count)
Definition: utilities.c:813
void set_o_direct_flag(int *fd)
Definition: utilities.c:217
void * aligned_buffer_alloc(size_t size, ior_memory_flags type)
Definition: utilities.c:924
long long int IOR_offset_t
Definition: iordef.h:109
int verbose
Definition: utilities.c:70
char * HumanReadable(IOR_offset_t value, int base)
Definition: utilities.c:841
void ShowFileSystemSize(char *filename, const struct ior_aiori *backend, void *backend_options)
Definition: utilities.c:625
void ShowHints(MPI_Info *)
Definition: utilities.c:572
MPI_Comm testComm
Definition: utilities.c:71