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 numTasksWorld;
22 extern int rank;
23 extern int rankOffset;
24 extern int tasksPerNode;
25 extern int verbose;
26 extern MPI_Comm testComm;
27 extern MPI_Comm mpi_comm_world;
28 extern FILE * out_logfile;
29 extern FILE * out_resultfile;
30 extern enum OutputFormat_t outputFormat; /* format of the output */
31 
32 /*
33  * Try using the system's PATH_MAX, which is what realpath and such use.
34  */
35 #define MAX_PATHLEN PATH_MAX
36 
37 
38 #ifdef __linux__
39 #define FAIL(msg) do { \
40  fprintf(out_logfile, "%s: Process %d: FAILED in %s, %s: %s\n", \
41  PrintTimestamp(), rank, __func__, \
42  msg, strerror(errno)); \
43  fflush(out_logfile); \
44  MPI_Abort(testComm, 1); \
45  } while(0)
46 #else
47 #define FAIL(msg) do { \
48  fprintf(out_logfile, "%s: Process %d: FAILED at %d, %s: %s\n", \
49  PrintTimestamp(), rank, __LINE__, \
50  msg, strerror(errno)); \
51  fflush(out_logfile); \
52  MPI_Abort(testComm, 1); \
53  } while(0)
54 #endif
55 
56 void set_o_direct_flag(int *fd);
57 
58 char *CurrentTimeString(void);
59 int Regex(char *, char *);
60 void ShowFileSystemSize(char *);
61 void DumpBuffer(void *, size_t);
62 void SeedRandGen(MPI_Comm);
63 void SetHints (MPI_Info *, char *);
64 void ShowHints (MPI_Info *);
65 char *HumanReadable(IOR_offset_t value, int base);
66 int CountTasksPerNode(MPI_Comm comm);
67 void DelaySecs(int delay);
68 
69 /* Returns -1, if cannot be read */
70 int64_t ReadStoneWallingIterations(char * const filename);
71 void StoreStoneWallingIterations(char * const filename, int64_t count);
72 
73 void init_clock(void);
74 double GetTimeStamp(void);
75 char * PrintTimestamp(); // TODO remove this function
76 
77 extern double wall_clock_deviation;
78 extern double wall_clock_delta;
79 #endif /* !_UTILITIES_H */
int64_t ReadStoneWallingIterations(char *const filename)
Definition: utilities.c:580
double GetTimeStamp(void)
Definition: utilities.c:511
int CountTasksPerNode(MPI_Comm comm)
Definition: utilities.c:166
int rankOffset
Definition: utilities.c:58
void DelaySecs(int delay)
Definition: utilities.c:617
MPI_Comm mpi_comm_world
Definition: utilities.c:62
OutputFormat_t
Definition: iordef.h:64
enum OutputFormat_t outputFormat
Definition: utilities.c:65
void init_clock(void)
Definition: utilities.c:560
char * PrintTimestamp()
Definition: utilities.c:565
void SeedRandGen(MPI_Comm)
Definition: utilities.c:463
int Regex(char *, char *)
Definition: utilities.c:443
void SetHints(MPI_Info *, char *)
Definition: utilities.c:242
double wall_clock_delta
Definition: utilities.c:505
void ShowFileSystemSize(char *)
Definition: utilities.c:356
int numTasksWorld
Definition: utilities.c:56
char * CurrentTimeString(void)
Definition: utilities.c:97
FILE * out_resultfile
Definition: utilities.c:64
double wall_clock_deviation
Definition: utilities.c:504
int rank
Definition: utilities.c:57
void DumpBuffer(void *, size_t)
Definition: utilities.c:122
FILE * out_logfile
Definition: utilities.c:63
void StoreStoneWallingIterations(char *const filename, int64_t count)
Definition: utilities.c:602
int tasksPerNode
Definition: utilities.c:59
void set_o_direct_flag(int *fd)
Definition: utilities.c:73
long long int IOR_offset_t
Definition: iordef.h:123
int verbose
Definition: utilities.c:60
char * HumanReadable(IOR_offset_t value, int base)
Definition: utilities.c:630
void ShowHints(MPI_Info *)
Definition: utilities.c:303
MPI_Comm testComm
Definition: utilities.c:61