Earlier dispatch of new tasks
- Dominant language
- C++
- Stars
- 3.1k
- Forks
- 430
- PR merge metrics
- No merged PRs in 30d
Description
With multithreading, the task dispatcher often sits there for a long time waiting for a single difficult tile to complete after all the other threads have finished.
I wonder if it would work any better to run through each task set twice: first to generate the next zoom level and then again to do the actual tiling. If I did this, then each thread, as soon as it was available, could pick up a new set of tasks at the next zoom level without having to wait for the slowest thread to complete. Potentially several threads could even be working on the difficult tile at different zoom levels at the same time.
Risk: ballooning temporary storage space since many levels of the same data could be live at the same time.
Contributor guide
Research direction
Start by tracing the multithreaded task dispatcher and how task sets are processed across zoom levels. Evaluate whether generating the next zoom level before actual tiling improves thread utilization without leaving excessive temporary data live; done means the scheduling behavior and storage trade-off are measured and addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100