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
WIP Guided pool executor #3241
Closed
Closed
WIP Guided pool executor #3241
Conversation
This file contains 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
biddisco
force-pushed
the
guided_pool_executor
branch
from
March 22, 2018 19:08
07f6ab1
to
349ca7b
Compare
biddisco
force-pushed
the
guided_pool_executor
branch
from
July 5, 2018 12:04
349ca7b
to
31faced
Compare
This changes the context implementations to perform a lazy initialization of their respective contexts. This potentially leads to less resource usage.
…ead api With lazy creation of stacks, the staged queue is no longer needed since tsks can be created immediately and scheduled when they are ready. All executrs and calls to register_thread_nullary/etc need to are modified to remove the run_now param since it is no longer meaningful.
…scheduler Add new type thread_schedule_hint to replace direct use of core number in any task creation or scheduler functions. Starting work on new guided pool example.
…ting a future Remove debug messages and cleanup async/then _execute functions
Clean up debug messages etc in guided executor
If ABP Scheduler is disabled, then the abp fifo/lifo definitions are not available and compilation fails. Add definitions here protected by an #ifdef so that are visible when needed.
…ywhere" This reverts commit ea5321e.
…ead api With lazy creation of stacks, the staged queue is no longer needed since tsks can be created immediately and scheduled when they are ready. All executrs and calls to register_thread_nullary/etc need to are modified to remove the run_now param since it is no longer meaningful.
Remove some commented out performance counter code, it can be replaced if ever needed
biddisco
force-pushed
the
guided_pool_executor
branch
from
August 2, 2018 07:51
31faced
to
f7cae12
Compare
biddisco
force-pushed
the
guided_pool_executor
branch
from
August 2, 2018 11:41
f7cae12
to
5883d0d
Compare
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.
Fixes #
This adds new executor/scheduler features such as scheduler_hints that can be passed from executors to control how tasks are placed by the scheduler (numa domains in this first version)
Proposed Changes
New executor types that pass task arguments through a custom user defined function (templated by the executor type) so that the tasks can be queried for information (such as memory placement) before being scheduled. The query only happens once the args for the task a ready so that data locality (memory addresses of the future contents) can be obtained when they are valid.
Any background context you want to provide?
This PR contains some commits that need to be moved onto other branches, but are included here for testing purposes on my home setup.