Bugfix MDTest calculation of multiple iterations was incorrect.

master
Julian M. Kunkel 2020-11-26 12:48:11 +00:00
parent 9349284b82
commit 4377aebcf8
1 changed files with 19 additions and 8 deletions

View File

@ -1291,6 +1291,20 @@ void summarize_results(int iterations, int print_time) {
} }
} }
if(print_all_proc && 0){
// This code prints the result table for debugging
for (i = 0; i < tableSize; i++) {
for (j = 0; j < iterations; j++) {
access = mdtest_test_name(i);
if(access == NULL){
continue;
}
curr = summary_table[j].rate[i];
fprintf(out_logfile, "Rank %d Iter %d Test %s Rate: %e\n", rank, j, access, curr);
}
}
}
if (rank != 0) { if (rank != 0) {
return; return;
} }
@ -1314,7 +1328,6 @@ void summarize_results(int iterations, int print_time) {
start = stop = 0; start = stop = 0;
} }
if(print_all_proc){ if(print_all_proc){
fprintf(out_logfile, "\nPer process result (%s):\n", print_time ? "time" : "rate"); fprintf(out_logfile, "\nPer process result (%s):\n", print_time ? "time" : "rate");
for (j = 0; j < iterations; j++) { for (j = 0; j < iterations; j++) {
@ -1326,7 +1339,7 @@ void summarize_results(int iterations, int print_time) {
} }
fprintf(out_logfile, "Test %s", access); fprintf(out_logfile, "Test %s", access);
for (k=0; k < size; k++) { for (k=0; k < size; k++) {
curr = all[(k*tableSize*iterations) + (j*tableSize) + i]; curr = all[j*tableSize*size + k * tableSize + i];
fprintf(out_logfile, "%c%e", (k==0 ? ' ': ','), curr); fprintf(out_logfile, "%c%e", (k==0 ? ' ': ','), curr);
} }
fprintf(out_logfile, "\n"); fprintf(out_logfile, "\n");
@ -1340,10 +1353,9 @@ void summarize_results(int iterations, int print_time) {
for (i = start; i < stop; i++) { for (i = start; i < stop; i++) {
min = max = all[i]; min = max = all[i];
for (k=0; k < size; k++) { for (j = 0; j < iterations; j++) {
for (j = 0; j < iterations; j++) { for (k=0; k < size; k++) {
curr = all[(k*tableSize*iterations) curr = all[j*tableSize*size + k*tableSize + i];
+ (j*tableSize) + i];
if (min > curr) { if (min > curr) {
min = curr; min = curr;
} }
@ -1372,7 +1384,6 @@ void summarize_results(int iterations, int print_time) {
fflush(out_logfile); fflush(out_logfile);
} }
sum = var = 0; sum = var = 0;
} }
// TODO generalize once more stonewall timers are supported // TODO generalize once more stonewall timers are supported
@ -1389,7 +1400,7 @@ void summarize_results(int iterations, int print_time) {
fprintf(out_logfile, "%14s %14s %14.3f %14s\n", "NA", "NA", print_time ? stonewall_time : stonewall_items / stonewall_time, "NA"); fprintf(out_logfile, "%14s %14s %14.3f %14s\n", "NA", "NA", print_time ? stonewall_time : stonewall_items / stonewall_time, "NA");
} }
/* calculate tree create/remove rates */ /* calculate tree create/remove rates, applies only to Rank 0 */
for (i = 8; i < tableSize; i++) { for (i = 8; i < tableSize; i++) {
min = max = all[i]; min = max = all[i];
for (j = 0; j < iterations; j++) { for (j = 0; j < iterations; j++) {