You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Improve timeout handling: skip timed-out algorithms and cap big benchmarks at 15000 (#718)
* Fix hanging issue in autotune timeout mechanism
- Replace manual polling loop with Julia's built-in timedwait() function
- Avoid using Base.throwto() which can cause hangs with sleeping tasks
- Let timed-out tasks continue in background rather than trying to kill them
- Use Channels for clean communication between tasks
- Close channels properly to prevent resource leaks
This fixes the issue where autotune would hang indefinitely when trying
to interrupt tasks that exceeded the timeout limit.
* Improve timeout handling: skip timed-out algorithms and cap big benchmarks
- Algorithms that timeout are automatically excluded from larger matrix sizes
- This prevents wasting time on algorithms that are already too slow
- Cap :big benchmark sizes at 15000 instead of 20000 for stability
- 20000x20000 matrices often cause issues even on powerful computers
- Add tracking of timed-out algorithms per element type
- Report number of skipped algorithms in summary output
- Update documentation to reflect these improvements
This makes the autotuning process much more efficient by not repeatedly
testing algorithms that have already proven to be too slow.
---------
Co-authored-by: ChrisRackauckas <[email protected]>
@@ -161,8 +161,11 @@ When an algorithm exceeds the `maxtime` limit:
161
161
- The test is skipped to prevent hanging
162
162
- The result is recorded as `NaN` in the benchmark data
163
163
- A warning is displayed indicating the timeout
164
+
-**The algorithm is automatically excluded from all larger matrix sizes** to save time
164
165
- The benchmark continues with the next algorithm
165
166
167
+
This intelligent timeout handling ensures that slow algorithms don't waste time on progressively larger matrices once they've proven too slow on smaller ones.
168
+
166
169
### Missing Algorithm Handling
167
170
168
171
By default, autotune expects all algorithms to be available to ensure complete benchmarking. You can relax this requirement:
0 commit comments