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

Disable background thread when networking is off #3234

Merged

Conversation

Projects
None yet
3 participants
@msimberg
Copy link
Contributor

commented Mar 12, 2018

Proposed Changes

  • Disable the background thread completely in scheduling_loop if HPX_HAVE_NETWORKING=OFF
  • The flag can still be set but has no effect
  • This is unlikely to give a big speedup in any application, but it's nice to disable as the background thread doesn't do anything useful with networking off

@biddisco Might give you a tiny speedup for Cholesky, unless you've already disabled the background thread.

WIP as I will still run the tests with pycicle and networking off.

@hkaiser
Copy link
Member

left a comment

LGTM, thanks!

@hkaiser hkaiser added this to the 1.1.0 milestone Mar 13, 2018

@msimberg

This comment has been minimized.

Copy link
Contributor Author

commented Mar 13, 2018

FYI, this timed out on pycicle so I'll take this as an opportunity to check what breaks with networking off (or what tests etc. should be disabled, if they're not already disabled). Consider this low-priority exploration.

@hkaiser

This comment has been minimized.

Copy link
Member

commented Mar 13, 2018

@msimberg Thanks! And yes, tests will be a problem - we never really made this consistent.

@msimberg msimberg removed this from the 1.1.0 milestone Mar 22, 2018

msimberg added some commits Mar 9, 2018

Disable background thread when networking is off
The flag can still be set but has no effect.
Force one locality in tests when HPX_WITH_NETWORKING=OFF and ignore r…
…elevant options in hpxrun.py

Force one locality for all tests with more than one locality and don't pass
localities and parcelport options on from hpxrun.py to the test
executable (since the options are disabled and cause the test to fail).

@msimberg msimberg force-pushed the msimberg:no-background-thread-networking-off branch from 6ee8cad to 9a62c15 May 8, 2018

@msimberg msimberg force-pushed the msimberg:no-background-thread-networking-off branch 2 times, most recently from d47a3ea to d712398 May 11, 2018

@msimberg msimberg force-pushed the msimberg:no-background-thread-networking-off branch from a43e95b to b2ebc9d May 11, 2018

@msimberg

This comment has been minimized.

Copy link
Contributor Author

commented May 14, 2018

This ran successfully with HPX_HAVE_NETWORKING=OFF now. I will keep a pycicle instance running with networking off for master only.

I've

  • forced one locality (in CMake) for tests if networking is off
  • ignored networking related options in hpxrun.py if localities is 1 (as they're disabled in HPX)
  • completely disabled some tests that checked that the test is running with more than one locality
  • done some small adjustments to tests that use multiple localities but don't require it (they use e.g. find_remote_localities and will do almost nothing since the vector is empty, but I kept them enabled as they should still compile correctly)

@msimberg msimberg changed the title WIP: Disable background thread when networking is off Disable background thread when networking is off May 14, 2018

@hkaiser
Copy link
Member

left a comment

Thanks a lot!

@msimberg msimberg added this to the 1.2.0 milestone May 16, 2018

@hkaiser hkaiser merged commit ba2e57e into STEllAR-GROUP:master May 16, 2018

61 of 63 checks passed

ci/circleci: install Your tests failed on CircleCI
Details
pycicle daint-no-networking-3234-clang-6.0.0-Boost-1.65.0-Debug Test errors 2
Details
ci/circleci: checkout_code Your tests passed on CircleCI!
Details
ci/circleci: clang_tidy Your tests passed on CircleCI!
Details
ci/circleci: configure Your tests passed on CircleCI!
Details
ci/circleci: core Your tests passed on CircleCI!
Details
ci/circleci: examples Your tests passed on CircleCI!
Details
ci/circleci: inspect Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.compat Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.components Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.compute Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.config Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.include Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.lcos Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.parallel Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.performance_counters Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.plugins Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.runtime Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.traits Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.util Your tests passed on CircleCI!
Details
ci/circleci: tests.performance Your tests passed on CircleCI!
Details
ci/circleci: tests.regressions Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.actions Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.agas Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.build Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.component Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.computeapi Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.diagnostics Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.lcos Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.block Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.container_algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.datapar_algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.executors Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.segmented_algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parcelset Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.performance_counter Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.resource Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.serialization Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.threads Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.traits Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.util Your tests passed on CircleCI!
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
pycicle daint-3234-clang-6.0.0-Boost-1.65.0-Debug Build errors 0
Details
pycicle daint-3234-clang-6.0.0-Boost-1.65.0-Debug Config errors 0
Details
pycicle daint-3234-clang-6.0.0-Boost-1.65.0-Debug Test errors 0
Details
pycicle daint-3234-clang-6.0.0-Boost-1.65.0-Release Build errors 0
Details
pycicle daint-3234-clang-6.0.0-Boost-1.65.0-Release Config errors 0
Details
pycicle daint-3234-clang-6.0.0-Boost-1.65.0-Release Test errors 0
Details
pycicle daint-3234-gcc-6.2.0-Boost-1.65.0-Release Build errors 0
Details
pycicle daint-3234-gcc-6.2.0-Boost-1.65.0-Release Config errors 0
Details
pycicle daint-3234-gcc-6.2.0-Boost-1.65.0-Release Test errors 0
Details
pycicle daint-3234-networking=off-clang-6.0.0-Boost-1.65.0-Release Build errors 0
Details
pycicle daint-3234-networking=off-clang-6.0.0-Boost-1.65.0-Release Config errors 0
Details
pycicle daint-3234-networking=off-clang-6.0.0-Boost-1.65.0-Release Test errors 0
Details
pycicle daint-no-networking-3234-clang-6.0.0-Boost-1.65.0-Debug Build errors 0
Details
pycicle daint-no-networking-3234-clang-6.0.0-Boost-1.65.0-Debug Config errors 0
Details
pycicle daint-no-networking-3234-networking=off-clang-6.0.0-Boost-1.65.0-Debug Build errors 0
Details
pycicle daint-no-networking-3234-networking=off-clang-6.0.0-Boost-1.65.0-Debug Config errors 0
Details
pycicle daint-no-networking-3234-networking=off-clang-6.0.0-Boost-1.65.0-Debug Test errors 0
Details
pycicle daint-no-networking-3234-networking=off-clang-6.0.0-Boost-1.65.0-Release Build errors 0
Details
pycicle daint-no-networking-3234-networking=off-clang-6.0.0-Boost-1.65.0-Release Config errors 0
Details
pycicle daint-no-networking-3234-networking=off-clang-6.0.0-Boost-1.65.0-Release Test errors 0
Details

@msimberg msimberg referenced this pull request Aug 20, 2018

Merged

Add sphinx documentation #3418

7 of 7 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.