-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A linear job search performs poorly for HTC load #182
Comments
The scheduler currently has three job queues: pending, running and complete queues. And it only performs very basic operations on these queues: find a job across all three queues; append a job to a queue; and finally move a job from one queue to another (e.g., from the pending queue to running queue). An obvious optimization is to add indexing based on job id. Given the scheduler only needs limited operations on our queues, an easy solution would be to add a This will add a small run overhead on each job append, but will turn O(N) to O(1) for Alternatively, you can have a lookup table per queue, but that seems an overkill at this point and adds higher overheads as this will incur one additional delete on each job move. Also one can introduce a composite data structure which abstracts out these operations (traditional enqueue + constant find). But I propose that we do this if and when more complex operations are needed on our job queues. |
This optimization alone doesn't seem to help much:
I realized that |
Close via #190 |
We need an optimization for the linear job search scheme as captured in flux-distribution#14: specifically, this code. Once an optimization is done, please rerun some tests.
The text was updated successfully, but these errors were encountered: