Fix for collective operations by Wolfgang Szoecs #210.
It does have performance implications but is only active if needed.master
parent
b84c86bf3c
commit
73c5c0efc2
|
@ -1946,6 +1946,13 @@ static IOR_offset_t WriteOrRead(IOR_param_t *test, IOR_results_t *results,
|
|||
hitStonewall = ((test->deadlineForStonewalling != 0
|
||||
&& (GetTimeStamp() - startForStonewall)
|
||||
> test->deadlineForStonewalling)) || (test->stoneWallingWearOutIterations != 0 && pairCnt == test->stoneWallingWearOutIterations) ;
|
||||
|
||||
if ( test->collective && test->deadlineForStonewalling ) {
|
||||
// if collective-mode, you'll get a HANG, if some rank 'accidentally' leave this loop
|
||||
// it absolutely must be an 'all or none':
|
||||
MPI_CHECK(MPI_Bcast(&hitStonewall, 1, MPI_INT, 0, MPI_COMM_WORLD), "hitStonewall broadcast failed");
|
||||
}
|
||||
|
||||
}
|
||||
if (test->stoneWallingWearOut){
|
||||
if (verbose >= VERBOSE_1){
|
||||
|
|
Loading…
Reference in New Issue