celerity / celerity-runtime

High-level C++ for Accelerator Clusters
https://celerity.github.io
MIT License
141 stars 18 forks source link

Implement breadth-triggered Horizons #199

Closed PeterTh closed 1 year ago

PeterTh commented 1 year ago

This implements Horizons which are triggered when the breadth of the execution front exceeds a given limit, which can be configured at runtime (currently defaults to 64).

This also makes it impossible to run out of task slots in normal usage (i.e. unless the user manually sets the limit to a value that exceeds the task ring buffer capacity).

This PR includes #196 and #197 which should be merged first, and is actually rather small by itself. I will rebase it once those are merged.

github-actions[bot] commented 1 year ago

Check-perf-impact results: (9e900a306dc9f17e4a27439205a7680c)

:question: No new benchmark data submitted. :question:
Please re-run the microbenchmarks and include the results if your commit could potentially affect performance.

PeterTh commented 1 year ago

This should now be ready for re-review.

github-actions[bot] commented 1 year ago

Check-perf-impact results: (7a518c63eb0655471fea6a4902fc0af7)

:warning: Significant slowdown in some microbenchmark results: 7 individual benchmarks affected
:rocket: Significant speedup in some microbenchmark results: 9 individual benchmarks affected
:heavy_plus_sign: Added microbenchmark(s): benchmark independent task pattern with N tasks - 100 / task generation, benchmark independent task pattern with N tasks - 1000 / task generation, benchmark independent task pattern with N tasks - 5000 / task generation

Overall relative execution time: 1.00x (mean of relative medians)