Skip to content
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
wants to merge 70 commits into from
Closed

WIP Guided pool executor #3241

wants to merge 70 commits into from

Conversation

biddisco
Copy link
Contributor

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.

Thomas Heller and others added 24 commits August 2, 2018 09:44
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.
biddisco and others added 21 commits August 2, 2018 09:48
…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
@msimberg
Copy link
Contributor

Closing this in favor of #3415 and #3420.

@msimberg msimberg closed this Aug 24, 2018
@hkaiser hkaiser deleted the guided_pool_executor branch November 23, 2019 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants