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),numTasks,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;
230 double *diff_subset,
double totalTime,
int rep){
276 struct utsname unamebuf;
290 fprintf(
out_resultfile,
"IOR-" META_VERSION
": MPI Coordinated Test of Parallel I/O\n");
295 for (i = 1; i < argc; i++) {
299 if (uname(&unamebuf) != 0) {
300 WARN(
"uname failed");
308 unamebuf.version, unamebuf.machine);
342 char* data_packets[] = {
"g",
"t",
"o",
"i"};
406 fprintf(
out_logfile,
"Pairs deadlineForStonewallingaccessed: %ld\n", pairs_accessed);
433 PrintKeyVal(
"ordering inter file",
"no tasks offsets");
436 PrintKeyVal(
"ordering inter file",
"constant task offset");
440 PrintKeyVal(
"ordering inter file",
"random task offset");
482 const double *vals,
const int access)
488 + (reps *
sizeof(double)));
490 ERR(
"malloc failed");
491 r->
val = (
double *)&r[1];
493 for (i = 0; i < reps; i++, measured++) {
498 / transfer_size / vals[i];
511 for (i = 0; i < reps; i++) {
515 r->
sd = sqrt(r->
var);
521 const double *vals,
const int access)
528 const double *vals,
const int access)
530 return bw_ops_values(reps, measured, transfer_size, vals, access);
549 double * times = malloc(
sizeof(
double)* reps);
550 long long stonewall_avg_data_accessed = 0;
551 double stonewall_time = 0;
552 for(
int i=0; i < reps; i++){
555 times[i] = point->
time;
560 bw =
bw_values(reps, results, times, access);
661 fprintf(
out_resultfile,
"%-9s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %13s",
662 "Operation",
"Max(MiB)",
"Min(MiB)",
"Mean(MiB)",
"StdDev",
663 "Max(OPs)",
"Min(OPs)",
"Mean(OPs)",
"StdDev",
664 "Mean(s)",
"Stonewall(s)",
"Stonewall(MiB)");
665 fprintf(
out_resultfile,
" Test# #Tasks tPN reps fPP reord reordoff reordrand seed" 667 fprintf(
out_resultfile,
"%8s %8s %9s %5s",
" blksiz",
"xsize",
"aggs(MiB)",
"API");
688 for (tptr = tests_head; tptr !=
NULL; tptr = tptr->
next) {
699 double max_write_bw = 0.0;
700 double max_read_bw = 0.0;
712 for (i = 0; i < reps; i++) {
713 bw = (double)results[i].write.aggFileSizeForBW / results[i].
write.
time;
714 max_write_bw = MAX(bw, max_write_bw);
715 bw = (double)results[i].read.aggFileSizeForBW / results[i].
read.
time;
716 max_read_bw = MAX(bw, max_read_bw);
721 fprintf(
out_resultfile,
"Max Write: %.2f MiB/sec (%.2f MB/sec)\n",
765 static void PPDouble(
int leftjustify,
double number,
char *append)
778 else if (number < 3600)
783 sprintf(format,
"%%%s%d.%df%%s",
784 leftjustify ?
"-" :
"",
795 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
ior_memory_flags gpuMemoryFlags
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_dataPacketType_e dataPacketType
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)
void ShowTestStart(IOR_param_t *test)
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)