Browse Source

properly drop barrier when using iterrative aggregation

master
Constantin Fürst 11 months ago
parent
commit
0856d58855
  1. 5
      qdp_project/src/Benchmark.cpp

5
qdp_project/src/Benchmark.cpp

@ -294,12 +294,15 @@ void aggr_j(size_t gid, size_t tid) {
THREAD_TIMING_[AGGRJ_TIMING_INDEX][tid * gid][0][TIME_STAMP_END] = std::chrono::steady_clock::now(); THREAD_TIMING_[AGGRJ_TIMING_INDEX][tid * gid][0][TIME_STAMP_END] = std::chrono::steady_clock::now();
BARRIERS_[gid]->arrive_and_drop();
if constexpr (!AGGRJ_ITERATIVE) {
BARRIERS_[gid]->arrive_and_drop();
}
aggregation::happly(DATA_DST_ + (tid * GROUP_COUNT + gid), aggregator); aggregation::happly(DATA_DST_ + (tid * GROUP_COUNT + gid), aggregator);
if constexpr (AGGRJ_ITERATIVE) { if constexpr (AGGRJ_ITERATIVE) {
if (++tid < TC_AGGRJ) aggr_j(gid, tid); if (++tid < TC_AGGRJ) aggr_j(gid, tid);
else BARRIERS_[gid]->arrive_and_drop();
} }
} }

Loading…
Cancel
Save