Skip to content

Commit aafdf89

Browse files
JulianKunkelglennklockwood
authored andcommitted
Bugfix for stonewall computation.
1 parent 1ee2c37 commit aafdf89

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/mdtest.c

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ static void create_file (const char *path, uint64_t itemNum) {
320320

321321
//create files
322322
sprintf(curr_item, "%s/file.%s"LLU"", path, mk_name, itemNum);
323-
if (rank == 0 && verbose >= 3) {
323+
if ((rank == 0 && verbose >= 3) || verbose >= 5) {
324324
fprintf(out_logfile, "V-3: create_remove_items_helper (non-dirs create): curr_item is \"%s\"\n", curr_item);
325325
fflush(out_logfile);
326326
}
@@ -401,6 +401,10 @@ void create_remove_items_helper(const int dirs, const int create, const char *pa
401401
create_remove_dirs (path, create, itemNum + i);
402402
}
403403
if(CHECK_STONE_WALL(progress)){
404+
if(progress->items_done != 0){
405+
printf("Error, this is an invalid configuration with stonewall!\n");
406+
exit(1);
407+
}
404408
progress->items_done = i + 1;
405409
return;
406410
}
@@ -1056,13 +1060,13 @@ int updateStoneWallIterations(int iteration, rank_progress_t * progress, double
10561060
long long sum_accessed = 0;
10571061
MPI_Reduce(& progress->items_done, & sum_accessed, 1, MPI_LONG_LONG_INT, MPI_SUM, 0, testComm);
10581062

1059-
if(items != (sum_accessed / size) && rank == 0){
1063+
if(items != (sum_accessed / size)){
10601064
summary_table[iteration].stonewall_item_sum[MDTEST_FILE_CREATE_NUM] = sum_accessed;
10611065
summary_table[iteration].stonewall_item_min[MDTEST_FILE_CREATE_NUM] = min_accessed * size;
1062-
fprintf( out_logfile, "Continue stonewall hit min: %lld max: %lld avg: %.1f \n", min_accessed, max_iter, ((double) sum_accessed) / size);
1063-
fflush( out_logfile );
1064-
}
1065-
if( done != max_iter ){
1066+
if (rank == 0){
1067+
fprintf( out_logfile, "Continue stonewall hit min: %lld max: %lld avg: %.1f \n", min_accessed, max_iter, ((double) sum_accessed) / size);
1068+
fflush( out_logfile );
1069+
}
10661070
hit = 1;
10671071
}
10681072
progress->items_start = done;
@@ -1119,10 +1123,13 @@ void file_test(const int iteration, const int ntasks, const char *path, rank_pro
11191123

11201124
if (hit){
11211125
progress->stone_wall_timer_seconds = 0;
1122-
printf("stonewall rank %d: %lld of %lld \n", rank, (long long) progress->items_start, (long long) progress->items_per_dir);
1126+
if (verbose > 1){
1127+
printf("stonewall rank %d: %lld of %lld \n", rank, (long long) progress->items_start, (long long) progress->items_per_dir);
1128+
}
11231129
create_remove_items(0, 0, 1, 0, temp_path, 0, progress);
11241130
// now reset the values
11251131
progress->stone_wall_timer_seconds = stone_wall_timer_seconds;
1132+
items = progress->items_done;
11261133
}
11271134
if (stoneWallingStatusFile){
11281135
StoreStoneWallingIterations(stoneWallingStatusFile, progress->items_done);

0 commit comments

Comments
 (0)