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

Add unit test cases and fixes for the S/R versions of the parallel algorithms #6494

Merged
merged 48 commits into from
Sep 3, 2024

Commits on May 22, 2024

  1. Add more unit tests for S/R algorithms

    This commit introduces simple unit test cases for the S/R (Sender
    and Receiver) versions of the parallel algorithms where they did not
    exist yet. Note that this is only the first part of these additional
    test cases, they have not been implemented for every algorithm yet.
    zhekemist committed May 22, 2024
    Configuration menu
    Copy the full SHA
    79d0fbc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0314c06 View commit details
    Browse the repository at this point in the history

Commits on May 25, 2024

  1. Change usages of tt::sync_wait to function calls

    All usages of the tt::sync_wait sender consumer in the recently
    added unit tests were replaced with equivalent function calls
    in order to make the tests compatible with NVIDIA's stdexec.
    zhekemist committed May 25, 2024
    Configuration menu
    Copy the full SHA
    56b7249 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Add the remaining S/R test cases

    This commit adds the remaining sender adaptor test cases. As of now,
    it is not planned to add further test cases, as test cases were
    added to all the algorithms where they are currently of interest.
    zhekemist committed May 28, 2024
    Configuration menu
    Copy the full SHA
    dadf073 View commit details
    Browse the repository at this point in the history
  2. Add missing include

    zhekemist committed May 28, 2024
    Configuration menu
    Copy the full SHA
    75605fe View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2024

  1. Configuration menu
    Copy the full SHA
    e5a7f75 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2024

  1. Fix S/R adaptors of some parallel algorithms

    This commit introduces a first batch of fixes for the
    S/R versions of some parallel algorithms. However,
    they are currently all build on a temporary solution
    for an issue in the "then sender" and therefore not
    final yet.
    zhekemist committed Jul 9, 2024
    Configuration menu
    Copy the full SHA
    9405f50 View commit details
    Browse the repository at this point in the history
  2. Add missing include

    zhekemist committed Jul 9, 2024
    Configuration menu
    Copy the full SHA
    2baa8be View commit details
    Browse the repository at this point in the history
  3. Fix error in adjacent_find

    - Fly-by: comment out sender tests for algorithms that are not fixed yet
    zhekemist committed Jul 9, 2024
    Configuration menu
    Copy the full SHA
    5aa62d6 View commit details
    Browse the repository at this point in the history
  4. Fix formatting issues

    zhekemist committed Jul 9, 2024
    Configuration menu
    Copy the full SHA
    679c8ac View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1f3738a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    f3248db View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2024

  1. Squash merge PR STEllAR-GROUP#6431, switching to NVIDIA's S/R impleme…

    …ntation
    
    Co-authored-by: isidorostsa <[email protected]>
    zhekemist and isidorostsa committed Jul 29, 2024
    Configuration menu
    Copy the full SHA
    83a180f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e4b3eb9 View commit details
    Browse the repository at this point in the history
  3. Add guard against invocables returning booleans

    The guard prevents the use of invocables returning bool in the
    bulk_async_execute method of the explicit_scheduler_executor to
    avoid data races. Using such invocables can cause issues because
    std::vector<return type of the invocable> may be simultaneously
    written to by multiple threads, which is problematic
    with std::vector<bool> due to its space optimizations.
    zhekemist committed Jul 29, 2024
    Configuration menu
    Copy the full SHA
    8bf92e8 View commit details
    Browse the repository at this point in the history
  4. Fix S/R adaptors of more parallel algorithms

    This commit introduces a new set of fixes for the
    S/R versions of several more parallel algorithms and
    reworks of some previous, buggy fixes. Additionally,
    new unit test cases have been added for some of the
    algorithms to cover edge cases such as empty ranges in
    case they could become pitfalls for the S/R adaptations.
    This led to the discovery of some general bugs in the
    algorithms, which were fixed as flybys:
    * `first_first_of` (+ regression test case)
    * `ends_with`
    zhekemist committed Jul 29, 2024
    Configuration menu
    Copy the full SHA
    ffd7842 View commit details
    Browse the repository at this point in the history
  5. Update CircleCI targets

    Fly-by: Rebalance the two target lists
    zhekemist committed Jul 29, 2024
    Configuration menu
    Copy the full SHA
    087c8b2 View commit details
    Browse the repository at this point in the history
  6. Fix CircleCI targets

    Flybys: add missing newline at EOF, fix typo
    zhekemist committed Jul 29, 2024
    Configuration menu
    Copy the full SHA
    a101036 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    65e35d8 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    03cc5aa View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2024

  1. Upgrade CircleCI build environment

    `stellargroup/build_env:14` uses Clang 10, which lacks support for
    `std::identity`, a type explicitly required for enabling stdexec in
    HPX. Since `stellargroup/build_env:16` uses Clang 12, switching
    to it should resolve this issue.
    zhekemist committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    22e5bc3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a60d958 View commit details
    Browse the repository at this point in the history
  3. Try experimental, temporary CircleCI fix

    This experimental fix uses an updated version of the build environment to
    address the issues arising with Clnag-Format 12. Additionally, as flybys,
    the compiler and the tools were upgraded to their most recent versions.
    This build environment might therefore not be suitable for getting merged
    and may be reverted in future commits.
    zhekemist committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    c41aac7 View commit details
    Browse the repository at this point in the history
  4. Temporarily adjust clang-tidy config

    This temporary commit disables that clang-tidy treats warnings as errors.
    The reason for this is that the upgraded clang-tidy reports many new
    warnings in various parts of HPX, causing the compilation to fail,
    and addressing this is probably out of this PR's scope.
    zhekemist committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    30d71fb View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2024

  1. Temporarily disable clang-tidy, clang-format

    This commit temporarily disables clang-tidy and clang-format
    in CircleCI to make the CI usable for this PR. These changes
    will therefore be reverted later. Additionally, the spelling
    mistakes were fixed and the Python dependencies in the build
    environment adapted, so that building the documentation should
    work again.
    zhekemist committed Jul 31, 2024
    Configuration menu
    Copy the full SHA
    6880e02 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2024

  1. Fix minor errors

    zhekemist committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    e193798 View commit details
    Browse the repository at this point in the history
  2. Temporarily disable work requesting scheduling policy

    stdexec's implementation of sync_wait blocks the entire OS thread,
    in accordance with P2300 [exec.sync.wait]. Without work stealing,
    this causes deadlocks at the PX-thread level, leading to timeouts
    in many of the sender-related tests. In the long term, this should
    probably be fixed by implementing a custom sync_wait for HPX that
    is compatible with stdexec's senders.
    zhekemist committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    c4f5276 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. Fix S/R adaptors of more parallel algorithms

    Flyby: fix bugs in `includes` and `search` algorithms
    zhekemist committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    1085a10 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c590cdd View commit details
    Browse the repository at this point in the history
  3. Fix minor problems

    zhekemist committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    ecfaf5c View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2024

  1. Fix S/R adaptors of more parallel algorithms

    Flyby: Fix bug in `mismatch` algorithm
    zhekemist committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    f20e649 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2024

  1. Remove HPX_UNUSED_PACK macro

    This macro was introduced for usage in some of the algorithm
    fixes, but is actually unnecessary as one can simply
    omit the parameter name.
    zhekemist committed Aug 9, 2024
    Configuration menu
    Copy the full SHA
    568201c View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2024

  1. Update CircleCI targets

    zhekemist committed Aug 15, 2024
    Configuration menu
    Copy the full SHA
    e2baf86 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2024

  1. Fix S/R version of rotate_copy

    Fly-by: Reenable S/R unit test for rotate
    zhekemist committed Aug 17, 2024
    Configuration menu
    Copy the full SHA
    1dcd257 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2024

  1. Remove currently pointless S/R unit tests

    Remove the S/R unit tests of the algorithms that are not fixed yet,
    since they will fail anyways and currently only pollute the test
    folder. To resume work on these tests in the future, simply revert
    this commit.
    zhekemist committed Aug 18, 2024
    Configuration menu
    Copy the full SHA
    a20f1b4 View commit details
    Browse the repository at this point in the history
  2. Conditionally disable S/R algorithm unit tests

    The unit tests for the S/R versions of the parallel algorithms are only configured
    if HPX_WITH_STDEXEC is enabled. Additionally, the tests cases that are in headers
    shared with the non-S/R tests are surrounded with macro guards checking if stdexec
    is available.
    zhekemist committed Aug 18, 2024
    Configuration menu
    Copy the full SHA
    3443586 View commit details
    Browse the repository at this point in the history
  3. Fix formatting

    zhekemist committed Aug 18, 2024
    Configuration menu
    Copy the full SHA
    15b4be5 View commit details
    Browse the repository at this point in the history
  4. Make minor adjustments in unit tests

    * Add missing headers
    * Update copyright comments
    * Make formatting and naming more consistent
    zhekemist committed Aug 18, 2024
    Configuration menu
    Copy the full SHA
    e0178e3 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2024

  1. Fix minor errors

    zhekemist committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    1cfafee View commit details
    Browse the repository at this point in the history
  2. Make minor cleanups

    zhekemist committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    a219c74 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2024

  1. Revert squash merging PR STEllAR-GROUP#6431

    This reverts commit 83a180f.
    zhekemist committed Aug 20, 2024
    Configuration menu
    Copy the full SHA
    2f41d32 View commit details
    Browse the repository at this point in the history
  2. Revert CircleCI configuration changes

    This reverts the following commits:
    c4f5276
    6880e02
    30d71fb
    c41aac7
    a60d958
    22e5bc3
    03cc5aa
    zhekemist committed Aug 20, 2024
    Configuration menu
    Copy the full SHA
    c4aad3a View commit details
    Browse the repository at this point in the history
  3. Remove S/R tests from CircleCI targets

    Flyby: Fix formatting issues
    zhekemist committed Aug 20, 2024
    Configuration menu
    Copy the full SHA
    c2afce0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1c24595 View commit details
    Browse the repository at this point in the history
  5. Revert remaining unrelated changes

    This commits reverts other changes that are not related to the aims of
    this PR, but which were not undone by the previous git reverts.
    zhekemist committed Aug 20, 2024
    Configuration menu
    Copy the full SHA
    5a2d965 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2024

  1. Fix findend regression test

    zhekemist committed Aug 21, 2024
    Configuration menu
    Copy the full SHA
    46a4883 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2024

  1. Configuration menu
    Copy the full SHA
    0344d00 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2024

  1. Accommodate removal of transfer_just

    `transfer_just` was removed in the 10th revision of P2300, this
    commit replaces its usage in the `explicit_scheduler_executor`.
    zhekemist committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    e35074d View commit details
    Browse the repository at this point in the history