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] Boost dash::sort with even more parallelism #611

Open
wants to merge 99 commits into
base: development
Choose a base branch
from

Conversation

rkowalewski
Copy link

@rkowalewski rkowalewski commented Nov 22, 2018

We need more parallelism to exploit the power of many-core nodes. The underlying algorithm itself will be rewritten to eliminate barriers. This includes the following major changes:

  • Algorithmic improvements:

    • reduce communication overhead (alltoall communications)
    • overlap communication and the final merge step as efficiently as possible (@pascalj)
    • Instead of perfect partitioning we provide another variant where we do not require an in-place sort. Users can provide a larger output buffer with the same pattern, but each unit has a certain threshold of additional local storage. Example: dash::sort(first, last, out, sort_hash).
  • Minor changes

    • integrate Intel Parallel STL (based on Intel TBB) into DASH to exploit shared memory parallelism more efficiently.
    • Allow DART_UNDEFINED_UNIT_ID as a valid unit for DART communication routines DART API calls with DART_UNDEFINED_UNIT_ID #617
  • Further Impacts

    • Threadsupport is now enabled by default in CI. Other tests fail, needs some investigation.

Note: This list will grow.

@codecov
Copy link

codecov bot commented Nov 22, 2018

Codecov Report

Merging #611 into development will decrease coverage by 0.38%.
The diff coverage is 81.99%.

@@               Coverage Diff               @@
##           development     #611      +/-   ##
===============================================
- Coverage        84.95%   84.57%   -0.39%     
===============================================
  Files              335      344       +9     
  Lines            24821    25028     +207     
  Branches         11497    11285     -212     
===============================================
+ Hits             21087    21167      +80     
- Misses            3733     3851     +118     
- Partials             1       10       +9
Impacted Files Coverage Δ
dash/include/dash/iterator/internal/GlobPtrBase.h 91.2% <ø> (-0.1%) ⬇️
dash/include/dash/internal/Logging.h 100% <ø> (ø) ⬆️
dash/include/cpp17/monotonic_buffer.h 0% <0%> (ø)
dash/src/cpp17/monotonic_buffer.cc 0% <0%> (ø)
dash/include/dash/algorithm/sort/Histogram.h 100% <100%> (ø)
dash/include/dash/algorithm/sort/Sampling.h 100% <100%> (ø)
dash/test/algorithm/SortTest.cc 98.26% <100%> (+0.45%) ⬆️
dash/include/dash/algorithm/sort/Communication.h 100% <100%> (ø)
dash/include/dash/algorithm/sort/Types.h 100% <100%> (ø)
dash/include/dash/algorithm/sort/Sort-inl.h 100% <100%> (ø)
... and 19 more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants