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

#2209: location manager should use objgroups #2222

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

lifflander
Copy link
Collaborator

Fixes #2209

  • Redesign location manager to use objgroups instead of the hackish method used currently. This reduces a bunch of code and simplifies the interactions.
  • Had to order rooted collection construction with this change by reflecting all constructions off of node 0 before constructing them

@lifflander lifflander linked an issue Nov 30, 2023 that may be closed by this pull request
Copy link

github-actions bot commented Nov 30, 2023

Pipelines results

PR tests (clang-9, ubuntu, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


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

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


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

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


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

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (clang-11, ubuntu, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (clang-12, ubuntu, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (clang-10, ubuntu, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (clang-13, ubuntu, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (clang-14, ubuntu, mpich)

Build for 395d553 (2023-11-30 17:08:22 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (gcc-12, ubuntu, mpich)

Build for 395d553 (2023-11-30 17:08:22 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (gcc-11, ubuntu, mpich, trace runtime, coverage)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (nvidia cuda 11.2, gcc-9, ubuntu, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

/vt/src/vt/pipe/pipe_manager.impl.h(133): warning: missing return statement at end of non-void function "vt::pipe::PipeManager::makeSend<f,Target>(Target) [with f=&vt::vrt::collection::lb::GreedyLB::collectHandler, Target=vt::objgroup::proxy::ProxyElm<vt::vrt::collection::lb::GreedyLB>]"
          detected during:
            instantiation of "auto vt::pipe::PipeManager::makeSend<f,Target>(Target) [with f=&vt::vrt::collection::lb::GreedyLB::collectHandler, Target=vt::objgroup::proxy::ProxyElm<vt::vrt::collection::lb::GreedyLB>]" 
/vt/src/vt/objgroup/proxy/proxy_objgroup.impl.h(202): here
            instantiation of "vt::objgroup::proxy::Proxy<ObjT>::PendingSendType vt::objgroup::proxy::Proxy<ObjT>::reduce<f,Op,Target,Args...>(Target, Args &&...) const [with ObjT=vt::vrt::collection::lb::GreedyLB, f=&vt::vrt::collection::lb::GreedyLB::collectHandler, Op=vt::collective::PlusOp, Target=vt::objgroup::proxy::ProxyElm<vt::vrt::collection::lb::GreedyLB>, Args=<vt::vrt::collection::lb::GreedyPayload>]" 
/vt/src/vt/vrt/collection/balance/greedylb/greedylb.cc(222): here

/vt/src/vt/pipe/pipe_manager.impl.h(133): warning: missing return statement at end of non-void function "vt::pipe::PipeManager::makeSend<f,Target>(Target) [with f=&vt::location::EntityLocationCoord<vt::Index1D>::updateLocation, Target=vt::objgroup::proxy::ProxyElm<vt::location::EntityLocationCoord<vt::Index1D>>]"
          detected during:
            instantiation of "auto vt::pipe::PipeManager::makeSend<f,Target>(Target) [with f=&vt::location::EntityLocationCoord<vt::Index1D>::updateLocation, Target=vt::objgroup::proxy::ProxyElm<vt::location::EntityLocationCoord<vt::Index1D>>]" 
/vt/src/vt/topos/location/location.impl.h(383): here
            instantiation of "void vt::location::EntityLocationCoord<EntityID>::getLocation(const EntityID &, const vt::NodeType &, const vt::location::NodeActionType &) [with EntityID=vt::Index1D]" 
/vt/src/vt/topos/location/location.impl.h(682): here
            instantiation of "void vt::location::EntityLocationCoord<EntityID>::routePreparedMsg(const vt::MsgSharedPtr<MessageT> &) [with EntityID=vt::Index1D, MessageT=vt::tutorial::MyCollMsg]" 
/vt/src/vt/topos/location/location.impl.h(619): here
            instantiation of "void vt::location::EntityLocationCoord<EntityID>::routePreparedMsgHandler(const vt::MsgSharedPtr<MessageT> &) [with EntityID=vt::Index1D, MessageT=vt::tutorial::MyCollMsg]" 
/vt/src/vt/vrt/collection/manager.impl.h(1141): here
            instantiation of "vt::messaging::PendingSend vt::vrt::collection::CollectionManager::sendMsgUntypedHandler(const vt::vrt::VirtualElmProxyType<ColT, ColT::IndexType> &, MsgT *, vt::HandlerType, __nv_bool) [with MsgT=vt::tutorial::MyCollMsg, ColT=vt::tutorial::MyCol, IdxT=vt::Index1D]" 
/vt/src/vt/vrt/collection/manager.impl.h(984): here
            [ 13 instantiation contexts not shown ]-=-=-%0D%0A%0D%0A%0D%0A ==> And there is more. Read log. <==

Build log


PR tests (intel icpx, ubuntu, mpich, verbose)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (clang-14, ubuntu, mpich, verbose)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (gcc-12, ubuntu, mpich, verbose)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (intel icpc, ubuntu, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


PR tests (nvidia cuda 12.2.0, gcc-9, ubuntu, mpich, verbose)

Build for adeef2e (2024-04-30 23:29:47 UTC)

/vt/lib/CLI/CLI/CLI11.hpp(1029): warning #2361-D: invalid narrowing conversion from "double" to "unsigned long"
          TT { std::declval<CC>() }
               ^
          detected during:
            instantiation of "vt::CLI::detail::is_direct_constructible<T, C>::test [with T=std::vector<std::string, std::allocator<std::string>>, C=double]" based on template arguments <std::vector<std::string, std::allocator<std::string>>, double> at line 1041
            instantiation of class "vt::CLI::detail::is_direct_constructible<T, C> [with T=std::vector<std::string, std::allocator<std::string>>, C=double]" at line 5005
            instantiation of "void vt::CLI::Option::results(T &) const [with T=std::vector<std::string, std::allocator<std::string>>]" at line 5034
            instantiation of "T vt::CLI::Option::as<T>() const [with T=std::vector<std::string, std::allocator<std::string>>]" at line 7315

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/vt/lib/CLI/CLI/CLI11.hpp(1029): warning #2361-D: invalid narrowing conversion from "int" to "unsigned long"
          TT { std::declval<CC>() }
               ^
          detected during:
            instantiation of "vt::CLI::detail::is_direct_constructible<T, C>::test [with T=std::vector<std::string, std::allocator<std::string>>, C=int]" based on template arguments <std::vector<std::string, std::allocator<std::string>>, int> at line 1041
            instantiation of class "vt::CLI::detail::is_direct_constructible<T, C> [with T=std::vector<std::string, std::allocator<std::string>>, C=int]" at line 5005
            instantiation of "void vt::CLI::Option::results(T &) const [with T=std::vector<std::string, std::allocator<std::string>>]" at line 5034
            instantiation of "T vt::CLI::Option::as<T>() const [with T=std::vector<std::string, std::allocator<std::string>>]" at line 7315

Testing - passed

Build log


PR tests (clang-13, alpine, mpich)

Build for adeef2e (2024-04-30 23:29:47 UTC)

Compilation - successful

Testing - passed

Build log


@lifflander lifflander force-pushed the 2209-location-manager-should-use-objgroups branch from db6b6d2 to adeef2e Compare April 30, 2024 23:29
@ppebay ppebay changed the title 2209 location manager should use objgroups #2209: location manager should use objgroups May 16, 2024
) {
theCollection()->makeCollectionImpl(*msg->po);
if (is_root) {
if (theCollection()->has_pending_construction_) {
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see has_pending_construction_ being set to true anywhere, am I missing something?

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.

Location manager should use objgroups
2 participants