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

1052 Implement epoch scopes #1053

Draft
wants to merge 71 commits into
base: develop
Choose a base branch
from
Draft

1052 Implement epoch scopes #1053

wants to merge 71 commits into from

Conversation

lifflander
Copy link
Collaborator

@lifflander lifflander commented Sep 15, 2020

Fixes #1052

TODO:

  • Write unit tests for new epoch scopes

Addresses multiple issues:

  • Implements epoch scopes
  • Fixes a long standing race condition between epochs created under the global epoch that never was triggered.
  • Combine windows with epoch component
  • Address epoch allocation ordering/race between a task and its continuation

@codecov
Copy link

codecov bot commented Sep 22, 2020

Codecov Report

Merging #1053 (57aa348) into develop (b5edc11) will decrease coverage by 0.49%.
The diff coverage is 97.12%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #1053      +/-   ##
===========================================
- Coverage    81.67%   81.17%   -0.50%     
===========================================
  Files          733      732       -1     
  Lines        27909    28281     +372     
===========================================
+ Hits         22795    22958     +163     
- Misses        5114     5323     +209     
Impacted Files Coverage Δ
src/vt/epoch/epoch.h 0.00% <ø> (ø)
src/vt/runtime/runtime.h 100.00% <ø> (ø)
src/vt/termination/graph/epoch_graph.cc 0.00% <ø> (ø)
src/vt/termination/termination.h 100.00% <ø> (ø)
src/vt/termination/termination.impl.h 100.00% <ø> (ø)
src/vt/termination/termination.cc 70.88% <91.37%> (+0.51%) ⬆️
src/vt/utils/adt/ranged_counter.h 93.75% <93.75%> (ø)
src/vt/epoch/epoch_window.cc 97.77% <96.15%> (ø)
src/vt/epoch/epoch_manip.cc 97.16% <97.16%> (ø)
tests/unit/epoch/test_epoch_scopes.cc 99.01% <99.01%> (ø)
... and 134 more


EpochType EpochManip::nextSeq(EpochScopeType scope, bool is_collective) {
auto& scope_map = is_collective ? scope_collective_ : scope_rooted_;
if (scope_map.find(scope) == scope_map.end()) {
Copy link
Member

Choose a reason for hiding this comment

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

Could we simplify the logic here by having an invariant that all create scopes exist in scope_map, rather than seemingly inserting them on first use?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

There's a race if one rank creates a scope before the others, then a message gets sent which creates a child epoch (think rooted epoch within that scope) from that one. It will call nextSeq to generate one.

Copy link
Member

Choose a reason for hiding this comment

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

Please write that up in a comment here, and reference it explicitly in scope creation.

Copy link
Member

Choose a reason for hiding this comment

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

I think there may still be a race in this, but it would be I think bad application design that would let it happen

Comment on lines 171 to 173
vtAssert(next >= 0, "Scope must be greater than 0");
vtAssert(next < scope_limit, "Scope must be less than the scope limit");
vtAssert(not live_scopes_.exists(next), "Scope must not already exist");
Copy link
Member

Choose a reason for hiding this comment

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

These should probably be vtAbortIf instead - the counter is an exhaustible resource, and we have no reason to expect it to only exhaust in debugging builds but not release.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ok, I've changed one above these to vtAbortIf (which is the out-of-space error), the others are just a logic error. Should those be changed also?

@lifflander
Copy link
Collaborator Author

@PhilMiller I think I'm missing some major code to carry to scope down to child epochs created.

Copy link
Member

@PhilMiller PhilMiller left a comment

Choose a reason for hiding this comment

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

As noted in discussion, scopes will need to be inherited by any epoch (rooted or collective) created as the child of an existing epoch, and without an explicit scope used for the creation

src/vt/epoch/epoch.h Outdated Show resolved Hide resolved
docs/md/epoch.md Outdated Show resolved Hide resolved
@lifflander
Copy link
Collaborator Author

I'm thinking about adding a scope.runInEpochCollective([]{}). What do you think?

@lifflander
Copy link
Collaborator Author

lifflander commented Sep 24, 2020

So I've found a major problem in how collective epoch scopes are implement wrt nesting. Here's a fairly simple example program that hangs most of the time. The while loop in the scheduler is needed to perturb the order and increase the chance that a message arrives in between.

using TestMsg = vt::Message;

static void nestedHandler(TestMsg* msg);
static void nestedHandler2(TestMsg* msg);

TEST_F(TestEpochScopes, test_epoch_scope_3) {
  // Test creating nested collective epochs

  auto const this_node = theContext()->getNode();
  auto const num_nodes = theContext()->getNumNodes();

  // Must have at least 2 nodes to run this test
  if (num_nodes < 2) {
    return;
  }

  auto scope = theEpoch()->makeScopeCollective();

  for (int i = 0; i < 100; i++) {
    auto ep = scope.makeEpochCollective();
    theMsg()->pushEpoch(ep);

    auto next_node = (this_node + 1) % num_nodes;
    auto msg = makeMessage<TestMsg>();
    theMsg()->sendMsg<TestMsg, nestedHandler>(next_node, msg);

    for (int j = 0; j < 5; j++) {
      vt::runScheduler();
    }

    theMsg()->popEpoch(ep);
    theTerm()->finishedEpoch(ep);
  }
}

static void nestedHandler(TestMsg* msg) {
  auto ep = theTerm()->makeEpochCollective();
  theMsg()->pushEpoch(ep);

  auto const this_node = theContext()->getNode();
  auto const num_nodes = theContext()->getNumNodes();
  auto next_node = (this_node + 1) % num_nodes;
  auto nmsg = makeMessage<TestMsg>();
  theMsg()->sendMsg<TestMsg, nestedHandler2>(next_node, nmsg);

  theMsg()->popEpoch(ep);
  theTerm()->finishedEpoch(ep);
}

static void nestedHandler2(TestMsg* msg) {}

Copy link
Collaborator Author

Codacy Here is an overview of what got changed by this pull request:

Clones added
============
- tests/unit/epoch/test_epoch_scopes.cc  2
         

See the complete overview on Codacy

@azure-pipelines
Copy link

PR tests (clang-8, alpine, mpich)

FAILED: examples/callback/callback_context 
: && /usr/share/spack/var/spack/environments/clang-mpich/.spack-env/view/bin/mpicxx  -Wall -pedantic -Wshadow -Wno-unknown-pragmas -Wsign-compare -ftemplate-backtrace-limit=100 -Werror -O3 -DNDEBUG  -lexecinfo    -rdynamic examples/callback/CMakeFiles/callback_context.dir/callback_context.cc.o  -o examples/callback/callback_context  lib/libfort/lib/libfort.a src/libvt-release.a -ldl /lib/libz.so /build/checkpoint/install/lib/libcheckpoint.a lib/libfort/lib/libfort.a && :
/usr/bin/ld: src/libvt-release.a(epoch_window.cc.o): in function `vt::epoch::EpochWindow::checkGarbageCollection()':
epoch_window.cc:(.text+0xf51): undefined reference to `vt::objgroup::proxy::Proxy<vt::epoch::EpochManip>::getProxy() const'
/usr/bin/ld: src/libvt-release.a(epoch_garbage_collect.cc.o): in function `vt::epoch::GarbageCollectTrait::reducedEpochs(vt::epoch::GarbageCollectMsg*)':
epoch_garbage_collect.cc:(.text+0x3be): undefined reference to `vt::objgroup::proxy::Proxy<vt::epoch::EpochManip>::getProxy() const'
clang-8: error: linker command failed with exit code 1 (use -v to see invocation)

@azure-pipelines
Copy link

azure-pipelines bot commented Jan 27, 2021

PR tests (intel 19, ubuntu, mpich)

Build for 94bfdd6

Successful

@azure-pipelines
Copy link

azure-pipelines bot commented Jan 27, 2021

PR tests (nvidia cuda 11.0, ubuntu, mpich)

Build for 94bfdd6

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<TestMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=MyCol, MsgT=TestMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<MyCol, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(155): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=MyCol, T=TestMsg, f=&colHan, CbkT=vt::pipe::callback::cbunion::CallbackTyped<TestMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(116): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=MyCol, MsgT=TestMsg, f=&colHan]" 
/vt/examples/callback/callback.cc(151): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb1DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb1DJacobi, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, T=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb1DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi1d_vt.cc(188): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb2DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb2DJacobi, vt::Index2D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, T=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb2DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi2d_vt.cc(226): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<Hello::ReduceMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=Hello, MsgT=Hello::ReduceMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<Hello, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=Hello, T=Hello::ReduceMsg, f=&Hello::done, CbkT=vt::pipe::callback::cbunion::CallbackTyped<Hello::ReduceMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=Hello, MsgT=Hello::ReduceMsg, f=&Hello::done]" 
/vt/examples/hello_world/hello_world_collection_reduce.cc(64): here

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

@azure-pipelines
Copy link

azure-pipelines bot commented Jan 27, 2021

PR tests (nvidia cuda 10.1, ubuntu, mpich)

Build for 94bfdd6

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<TestMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=MyCol, MsgT=TestMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<MyCol, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(155): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=MyCol, T=TestMsg, f=colHan, CbkT=vt::pipe::callback::cbunion::CallbackTyped<TestMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(116): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=MyCol, MsgT=TestMsg, f=colHan]" 
/vt/examples/callback/callback.cc(151): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb1DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb1DJacobi, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, T=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb1DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi1d_vt.cc(188): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb2DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb2DJacobi, vt::Index2D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, T=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb2DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi2d_vt.cc(226): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<Hello::ReduceMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=Hello, MsgT=Hello::ReduceMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<Hello, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=Hello, T=Hello::ReduceMsg, f=&Hello::done, CbkT=vt::pipe::callback::cbunion::CallbackTyped<Hello::ReduceMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=Hello, MsgT=Hello::ReduceMsg, f=&Hello::done]" 
/vt/examples/hello_world/hello_world_collection_reduce.cc(64): here

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

@github-actions
Copy link

PR tests (gcc-5, ubuntu, mpich)

Build for 94bfdd6

Successful

@github-actions
Copy link

PR tests (clang-5.0, ubuntu, mpich)

Build for 94bfdd6

Successful

@github-actions
Copy link

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

Build for 94bfdd6

Successful

@github-actions
Copy link

PR tests (clang-3.9, ubuntu, mpich)

Build for 94bfdd6

Successful

@github-actions
Copy link

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

Build for 94bfdd6

Successful

@github-actions
Copy link

PR tests (gcc-6, ubuntu, mpich)

Build for 94bfdd6

Successful

@github-actions
Copy link

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

Build for 94bfdd6

Successful

@github-actions
Copy link

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

Build for 94bfdd6

Successful

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.

Epoch scopes
2 participants