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

1279 gossiplb inform and decide have bugs #1348

Merged
merged 30 commits into from
Apr 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3429637
#1279: gossiplb: Use best of multiple trials
nlslatt Feb 8, 2021
23945c5
#1279: gossiplb: select unique nodes
nlslatt Feb 22, 2021
b749bdd
#1279: gossiplb: pass load instead of rank
nlslatt Feb 22, 2021
5489aab
#1279: gossiplb: init variable
lifflander Feb 8, 2021
52decfa
#1279: gossiplb: improve debugging output
nlslatt Mar 2, 2021
82dcc74
#1279: gossiplb: corrected async informs
nlslatt Mar 2, 2021
66092e1
#1279: gossiplb: added sync informs that match lbaf
nlslatt Mar 2, 2021
5c7db6f
#1279: gossiplb: cleanup
nlslatt Mar 2, 2021
f28fd97
#1279: gossiplb: order objects by object id
nlslatt Mar 2, 2021
c497a80
#1279: gossiplb: add deterministic mode
nlslatt Mar 4, 2021
6f47e49
#1279: gossiplb: fix loads that ended up in microseconds
nlslatt Mar 5, 2021
e76aed3
#1279: gossiplb: add object ordering options
nlslatt Mar 5, 2021
26775fe
#1279: gossiplb: cleanup
nlslatt Mar 5, 2021
ec4de3d
#1279: gossiplb: increase precision of imbalance
nlslatt Mar 6, 2021
f3f4f72
#1279: gossiplb: add options for cmf
nlslatt Mar 6, 2021
45ce2d5
#1279: gossiplb: tune print verbosity
nlslatt Mar 8, 2021
0b7dbc5
#1279: gossiplb: clean up redundant code
nlslatt Mar 8, 2021
3a168e5
#1279: gossiplb: minimize reductions when not debugging
nlslatt Mar 8, 2021
fadcc8b
#1279: gossiplb: fix bug in cmf computation
nlslatt Mar 15, 2021
f19ff09
#1279: gossiplb: change default options
nlslatt Mar 15, 2021
3e9536b
#1279: gossiplb: fix missing allowed key
nlslatt Mar 16, 2021
cfccd66
#1279: gossiplb: prevent informs from being received early
nlslatt Mar 17, 2021
da68ac1
#1279: gossiplb: roll back to best iter
nlslatt Mar 17, 2021
e4ae883
#1279: gossiplb: add option to target long pole load instead of avg
nlslatt Mar 17, 2021
f832796
#1279: gossiplb: name barrier to prevent hang
nlslatt Mar 23, 2021
9d72dde
#1279: gossiplb: cleanup
nlslatt Mar 26, 2021
a0a1c26
#1279: gossiplb: document lb args
nlslatt Mar 26, 2021
4d38c6a
#1279: gossiplb: fix compile errors
nlslatt Mar 26, 2021
da2e611
#1279: gossiplb: clean up sync round number
nlslatt Mar 26, 2021
242282c
#1279: gossiplb: convert comments to doxygen
nlslatt Apr 9, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions src/vt/vrt/collection/balance/gossiplb/gossip_msg.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,31 @@ struct GossipMsg : vt::Message {
NodeLoadType node_load_ = {};
};

struct GossipMsgAsync : GossipMsg {
using MessageParentType = GossipMsg;
vt_msg_serialize_if_needed_by_parent();

GossipMsgAsync() = default;
GossipMsgAsync(
NodeType in_from_node, NodeLoadType const& in_node_load, int round
)
: GossipMsg(in_from_node, in_node_load), round_(round)
{ }

uint8_t getRound() const {
return round_;
}

template <typename SerializerT>
void serialize(SerializerT& s) {
MessageParentType::serialize(s);
s | round_;
}

private:
int round_;
};

struct LazyMigrationMsg : SerializeRequired<
vt::Message,
LazyMigrationMsg
Expand Down Expand Up @@ -118,6 +143,46 @@ struct LazyMigrationMsg : SerializeRequired<
ObjsType objs_ = {};
};

struct RejectionStats {
RejectionStats() = default;
RejectionStats(int n_rejected, int n_transfers)
: n_rejected_(n_rejected), n_transfers_(n_transfers) { }

friend RejectionStats operator+(RejectionStats a1, RejectionStats const& a2) {
a1.n_rejected_ += a2.n_rejected_;
a1.n_transfers_ += a2.n_transfers_;

return a1;
}

int n_rejected_ = 0;
int n_transfers_ = 0;
};

static_assert(
vt::messaging::is_byte_copyable_t<RejectionStats>::value,
"Must be trivially copyable to avoid serialization."
);

struct GossipRejectionStatsMsg : NonSerialized<
collective::ReduceTMsg<RejectionStats>,
GossipRejectionStatsMsg
>
{
using MessageParentType = NonSerialized<
collective::ReduceTMsg<RejectionStats>,
GossipRejectionStatsMsg
>;

GossipRejectionStatsMsg() = default;
GossipRejectionStatsMsg(int n_rejected, int n_transfers)
: MessageParentType(RejectionStats(n_rejected, n_transfers))
{ }
GossipRejectionStatsMsg(RejectionStats&& rs)
: MessageParentType(std::move(rs))
{ }
};

}}}} /* end namespace vt::vrt::collection::balance */

#endif /*INCLUDED_VT_VRT_COLLECTION_BALANCE_GOSSIPLB_GOSSIP_MSG_H*/
Loading