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

A new throttling policy with public APIs to suspend/resume #2640

Merged
merged 16 commits into from May 27, 2017

Conversation

KhalidHasanov
Copy link
Contributor

I've finished up development of a new throttling policy after our discussion with @sithhell . Can you please have a look and see if it can be merged with the master branch.

@hkaiser
Copy link
Member

hkaiser commented May 19, 2017

As a general note, could you please remove the old throttling scheduler (see #2568) and replace it with yours instead of adding yet another variation, please?

{
return pool_.get_sched();
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why have you added this functionality, is it used anywhere?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to know the number of disabled/suspended threads and it is used here:
https://github.com/allscale/allscale_runtime/blob/multi_objective_optimizer/src/components/scheduler_component.cpp#L237

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, may I suggest not to abbreviate the function name, then?
Also, doesn't this mean that this functionality has to be exposed by all other schedulers as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I will fix the naming.
Yes we can get access to any other scheduler via this API. But I think it will not require the other schedulers expose the same functionality (i.e. get_disabled_os_threads ), as the scheduler name can be checked via get_scheduler_name() before using get_disabled_os_threads.

@@ -560,6 +562,11 @@ foreach(_scheduler ${HPX_WITH_THREAD_SCHEDULERS_UC})
hpx_add_config_define(HPX_HAVE_PERIODIC_PRIORITY_SCHEDULER)
set(HPX_WITH_PERIODIC_PRIORITY_SCHEDULER ON CACHE INTERNAL "")
endif()
# The throttling scheduler has not been tested neither on Windows nor on Mac
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please enable this option only for the platforms you tested on. If it's untested (or unsupported) on Windows, Mac, etc. we should make sure the option produces a configuration error.

@KhalidHasanov
Copy link
Contributor Author

One thing to clarify regarding the changes in hpx/lcos/detail/future_data.hpp . I did this change because the compiler on the ppc64le (gcc (GCC) 6.3.1 20170110 (Advance-Toolchain-at10.0) IBM AT 10 branch, based on subversion id 244285. ) was not able to see where future_data defined.

@hkaiser
Copy link
Member

hkaiser commented May 19, 2017

One thing to clarify regarding the changes in hpx/lcos/detail/future_data.hpp . I did this change because the compiler on the ppc64le (gcc (GCC) 6.3.1 20170110 (Advance-Toolchain-at10.0) IBM AT 10 branch, based on subversion id 244285. ) was not able to see where future_data defined.

Yes, this very change has made it to master already. Thanks

@KhalidHasanov
Copy link
Contributor Author

KhalidHasanov commented May 19, 2017

ibm-research-ireland@4f7f530 should cover both #2568 and #2640

@hkaiser
Copy link
Member

hkaiser commented May 26, 2017

@KhalidHasanov this can't be merged before you resolve the merge conflicts. Also, please address the comments made above.

@KhalidHasanov
Copy link
Contributor Author

@hkaiser I think the comments made above already addressed. The issue with the merge is that I can't really see the details of the failed tests in order to fix them. Can only authorized people see that?

@hkaiser
Copy link
Member

hkaiser commented May 26, 2017

I think the comments made above already addressed.

Ok.

The issue with the merge is that I can't really see the details of the failed tests in order to fix them. Can only authorized people see that?

Just try to merge your branch to HEAD of master locally on your machine and you will see the conflicts.

Also, inspect seems not to be happy with your changes: https://6836-4455628-gh.circle-artifacts.com/0/tmp/circle-artifacts.S9PMOfG/hpx_inspect_report.html

Copy link
Member

@hkaiser hkaiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM now, thanks!

@hkaiser hkaiser merged commit 4dfca5a into STEllAR-GROUP:master May 27, 2017
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

2 participants