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

1899 Improve performance of Runnable and surrounding machinery #1963

Merged

Conversation

lifflander
Copy link
Collaborator

@lifflander lifflander commented Sep 14, 2022

Fixes #1899
Fixes #1593 (see commit 4992e78)

@github-actions
Copy link

github-actions bot commented Sep 14, 2022

Pipelines results

PR tests (gcc-12, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (gcc-5, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-3.9, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (gcc-10, ubuntu, openmpi, no LB)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-5.0, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (gcc-7, ubuntu, mpich, trace runtime, LB)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (gcc-8, ubuntu, mpich, address sanitizer)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (gcc-9, ubuntu, mpich, zoltan)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (nvidia cuda 10.1, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (nvidia cuda 11.0, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (gcc-6, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-10, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-9, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-12, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (intel icpx, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-13, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-14, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (gcc-11, ubuntu, mpich, json schema test)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (intel icpc, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-11, ubuntu, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


PR tests (clang-13, alpine, mpich)

Build for 8568fb7

Compilation - successful

Testing - passed

Build log


@lifflander lifflander changed the title 1899 improve makerunnable allocation performance new variant 1899 Improve performance of Runnable and surroundering machinery Sep 15, 2022
@lifflander lifflander force-pushed the 1899-improve-makerunnable-allocation-performance-new-variant branch 3 times, most recently from d411151 to 3e4334b Compare September 20, 2022 15:27
@lifflander lifflander marked this pull request as ready for review September 20, 2022 15:27
@codecov
Copy link

codecov bot commented Sep 20, 2022

Codecov Report

Merging #1963 (c7df3b9) into develop (3c555c0) will decrease coverage by 0.00%.
The diff coverage is n/a.

❗ Current head c7df3b9 differs from pull request most recent head 8568fb7. Consider uploading reports for the commit 8568fb7 to get more accurate results

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #1963      +/-   ##
===========================================
- Coverage    84.37%   84.37%   -0.01%     
===========================================
  Files          727      727              
  Lines        25491    25491              
===========================================
- Hits         21508    21507       -1     
- Misses        3983     3984       +1     
Impacted Files Coverage Δ
src/vt/messaging/envelope/payload_envelope.h 73.52% <ø> (ø)
src/vt/termination/termination.cc 70.14% <ø> (ø)
src/vt/pool/pool.cc 87.50% <0.00%> (-1.05%) ⬇️

@lifflander
Copy link
Collaborator Author

Looks like we have a double free when fcontext is enabled.

@stmcgovern stmcgovern changed the title 1899 Improve performance of Runnable and surroundering machinery 1899 Improve performance of Runnable and surrounding machinery Sep 20, 2022
@lifflander lifflander force-pushed the 1899-improve-makerunnable-allocation-performance-new-variant branch from 5416018 to bc3b2b4 Compare September 22, 2022 17:42
This is a long-standing bug that started showing up with the changes
in #1899, making the runnable more
efficient. TestGroup.test_group_range_construct_2 was consistently
breaking on the gcc-8 build with address sanitizer. With extensive
debugging, I tracked this bug down to the lack of propagation of an
epoch on the remote group construction message when a rooted group is
constructed where the constructing node is not included. Additionally,
the group must be specified by a list (not a range). When these
conditions occur, the group manager sends the information about the
group to a remote node using a packed put, which uses the
`PayloadMessage`: namely, ` struct GroupListMsg :
GroupInfoMsg<GroupMsg<::vt::PayloadMessage>>`. The `PayloadMessage`,
using a default template parameter, uses a basic envelope which is not
large enough to store the epoch. Thus, it gets dropped. Therefore, the
test sometimes breaks because the group construction and following
broadcast escape the `runInEpochCollective` and the test condition
will fail sometimes as it races with the delivery of the group message
being broadcast to the group spanning tree.
@lifflander lifflander force-pushed the 1899-improve-makerunnable-allocation-performance-new-variant branch from c7df3b9 to ba19bad Compare September 27, 2022 17:06
Copy link
Contributor

@stmcgovern stmcgovern left a comment

Choose a reason for hiding this comment

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

Lots going on here, but looks good to me!

@lifflander lifflander merged commit c724cf0 into develop Sep 27, 2022
cz4rs pushed a commit that referenced this pull request Sep 28, 2022
…-allocation-performance-new-variant

1899 Improve performance of Runnable and surrounding machinery
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.

Improve makeRunnable allocation performance test_group_range_construct_2_proc_4 failing in CI
2 participants