2 # include <sys/utsname.h> 15 static void PPDouble(
int leftjustify,
double number,
char *append);
21 fprintf(
out_resultfile,
"access bw(MiB/s) IOPS Latency(s) block(KiB) xfer(KiB) open(s) wr/rd(s) close(s) total(s) iter\n");
22 fprintf(
out_resultfile,
"------ --------- ---- ---------- ---------- --------- -------- -------- -------- -------- ----\n");
24 fprintf(
out_resultfile,
"access,bw(MiB/s),IOPS,Latency,block(KiB),xfer(KiB),open(s),wr/rd(s),close(s),total(s),iter\n");
35 for(
int i=0; i <
indent; i++){
74 if(value !=
NULL && value[0] != 0 && value[strlen(value) -1 ] ==
'\n'){
76 value[strlen(value) -1 ] = 0;
226 double *diff_subset,
double totalTime,
int rep){
271 struct utsname unamebuf;
285 fprintf(
out_resultfile,
"IOR-" META_VERSION
": MPI Coordinated Test of Parallel I/O\n");
290 for (i = 1; i < argc; i++) {
294 if (uname(&unamebuf) != 0) {
295 EWARN(
"uname failed");
303 unamebuf.version, unamebuf.machine);
337 char* data_packets[] = {
"g",
"t",
"o",
"i"};
401 fprintf(
out_logfile,
"Pairs deadlineForStonewallingaccessed: %ld\n", pairs_accessed);
428 PrintKeyVal(
"ordering inter file",
"no tasks offsets");
431 PrintKeyVal(
"ordering inter file",
"constant task offset");
435 PrintKeyVal(
"ordering inter file",
"random task offset");
472 const double *vals,
const int access)
478 + (reps *
sizeof(double)));
480 ERR(
"malloc failed");
481 r->
val = (
double *)&r[1];
483 for (i = 0; i < reps; i++, measured++) {
488 / transfer_size / vals[i];
501 for (i = 0; i < reps; i++) {
505 r->
sd = sqrt(r->
var);
511 const double *vals,
const int access)
518 const double *vals,
const int access)
520 return bw_ops_values(reps, measured, transfer_size, vals, access);
539 double * times = malloc(
sizeof(
double)* reps);
540 long long stonewall_avg_data_accessed = 0;
541 double stonewall_time = 0;
542 for(
int i=0; i < reps; i++){
545 times[i] = point->
time;
550 bw =
bw_values(reps, results, times, access);
651 fprintf(
out_resultfile,
"%-9s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %13s",
652 "Operation",
"Max(MiB)",
"Min(MiB)",
"Mean(MiB)",
"StdDev",
653 "Max(OPs)",
"Min(OPs)",
"Mean(OPs)",
"StdDev",
654 "Mean(s)",
"Stonewall(s)",
"Stonewall(MiB)");
655 fprintf(
out_resultfile,
" Test# #Tasks tPN reps fPP reord reordoff reordrand seed" 657 fprintf(
out_resultfile,
"%8s %8s %9s %5s",
" blksiz",
"xsize",
"aggs(MiB)",
"API");
678 for (tptr = tests_head; tptr !=
NULL; tptr = tptr->
next) {
689 double max_write_bw = 0.0;
690 double max_read_bw = 0.0;
702 for (i = 0; i < reps; i++) {
703 bw = (double)results[i].write.aggFileSizeForBW / results[i].
write.
time;
704 max_write_bw = MAX(bw, max_write_bw);
705 bw = (double)results[i].read.aggFileSizeForBW / results[i].
read.
time;
706 max_read_bw = MAX(bw, max_read_bw);
711 fprintf(
out_resultfile,
"Max Write: %.2f MiB/sec (%.2f MB/sec)\n",
755 static void PPDouble(
int leftjustify,
double number,
char *append)
768 else if (number < 3600)
773 sprintf(format,
"%%%s%d.%df%%s",
774 leftjustify ?
"-" :
"",
785 for (i = 0; i < len; i++) {
char * HumanReadable(IOR_offset_t value, int base)
int reorderTasksRandomSeed
long long stonewall_avg_data_accessed
void PrintLongSummaryHeader()
void PrintHeader(int argc, char **argv)
IOR_offset_t segmentCount
static void PrintKeyValStart(char *key)
enum OutputFormat_t outputFormat
void GetTestFileName(char *, IOR_param_t *)
static void PrintArrayNamedStart(char *key)
IOR_offset_t transferSize
static void PrintArrayStart()
void PrintRemoveTiming(double start, double finish, int rep)
static void PrintNextToken()
static struct results * bw_values(const int reps, IOR_results_t *measured, const double *vals, const int access)
int setTimeStampSignature
static void PrintKeyValInt(char *key, int64_t value)
char * stoneWallingStatusFile
static void PrintIndent()
static void PrintNamedArrayStart(char *key)
IOR_offset_t aggFileSizeForBW
void ShowSetup(IOR_param_t *params)
char * CurrentTimeString(void)
static struct results * bw_ops_values(const int reps, IOR_results_t *measured, IOR_offset_t transfer_size, const double *vals, const int access)
static void PPDouble(int leftjustify, double number, char *append)
static void PrintNamedSectionStart(char *key)
static double mean_of_array_of_doubles(double *values, int len)
static void PrintArrayEnd()
IOR_offset_t expectedAggFileSize
static void PrintEndSection()
static void PrintStartSection()
void PrintLongSummaryAllTests(IOR_test_t *tests_head)
void PrintReducedResult(IOR_test_t *test, int access, double bw, double iops, double latency, double *diff_subset, double totalTime, int rep)
void StoreStoneWallingIterations(char *const filename, int64_t count)
void PrintShortSummary(IOR_test_t *test)
enum PACKET_TYPE dataPacketType
void ShowTestStart(IOR_param_t *test)
static void PrintKeyVal(char *key, char *value)
static void PrintLongSummaryOneOperation(IOR_test_t *test, const int access)
void ShowFileSystemSize(char *filename, const struct ior_aiori *backend, void *backend_options)
void PrintLongSummaryOneTest(IOR_test_t *test)
const struct ior_aiori * backend
static struct results * ops_values(const int reps, IOR_results_t *measured, IOR_offset_t transfer_size, const double *vals, const int access)
static void PrintKeyValEnd()
int deadlineForStonewalling
long long int IOR_offset_t
void ShowTestEnd(IOR_test_t *tptr)
static void PrintKeyValDouble(char *key, double value)