[Misc] Use persistent thread pool - #438
Open
DarkSharpness wants to merge 3 commits into
Open
DarkSharpness wants to merge 3 commits into
DarkSharpness wants to merge 3 commits into
Conversation
DarkSharpness
force-pushed
the
fix_thread_pool
branch
from
September 19, 2025 09:03
374d844 to
c6d0ce6
Compare
DarkSharpness
force-pushed
the
fix_thread_pool
branch
from
November 7, 2025 08:04
c6d0ce6 to
a83618d
Compare
DarkSharpness
force-pushed
the
fix_thread_pool
branch
from
November 7, 2025 08:05
a83618d to
be406a5
Compare
Collaborator
Author
|
Updated cc @Ubospica @Seven-Streams . The rate limit policy should be refined later to achieve a balance between fairness(FIFO) and shortest-first (greedy-execution). FIFO may cause head-of-line blocking, while shortest-first may lead to starvation (worse average latency), deteriorating grammars that needs longer compilation (worse tail latency). The old implementation creates a new thread pool per-compilation, which is closer to the latter I guess. |
This was referenced Jul 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously, each function call of$n \times \text{max-threads}$ for $n$ concurrent compilation tasks.
MultiThreadCompileGrammarcreated its own thread pool. This could be misleading, as the total number of active worker threads might significantly exceed the configured max_threads — potentially reaching up toThis PR changes the implementation to use a shared global thread pool across all compilation tasks in one compiler, ensuring that the number of worker threads stays within the specified limit. For different grammar compilers, they still have their own thread pool.
Note: This change may introduce performance regressions in scenarios where the old behavior implicitly allowed over-subscription of threads, as thread usage is now strictly bounded.