Skip to content

Commit 3cd9309

Browse files
committed
#2201: fixed print errors; added pseudocode; and epoch boilerplate
1 parent 7133f33 commit 3cd9309

File tree

1 file changed

+47
-6
lines changed

1 file changed

+47
-6
lines changed

src/vt/vrt/collection/balance/temperedlb/temperedlb.cc

+47-6
Original file line numberDiff line numberDiff line change
@@ -1434,7 +1434,7 @@ void TemperedLB::originalTransfer() {
14341434
// Initialize transfer and rejection counters
14351435
int n_transfers = 0, n_rejected = 0;
14361436

1437-
// Try to migrate objects only from overloaded objects
1437+
// Try to migrate objects only from overloaded ranks
14381438
if (is_overloaded_) {
14391439
std::vector<NodeType> under = makeUnderloaded();
14401440
std::unordered_map<NodeType, ObjsType> migrate_objs;
@@ -1473,7 +1473,7 @@ void TemperedLB::originalTransfer() {
14731473

14741474
vt_debug_print(
14751475
verbose, temperedlb,
1476-
"TemperedLB::decide: selected_node={}, load_info_.size()={}\n",
1476+
"TemperedLB::originalTransfer: selected_node={}, load_info_.size()={}\n",
14771477
selected_node, load_info_.size()
14781478
);
14791479

@@ -1488,7 +1488,7 @@ void TemperedLB::originalTransfer() {
14881488
);
14891489
vt_debug_print(
14901490
verbose, temperedlb,
1491-
"TemperedLB::decide: trial={}, iter={}, under.size()={}, "
1491+
"TemperedLB::originalTransfer: trial={}, iter={}, under.size()={}, "
14921492
"selected_node={}, selected_load={:e}, obj_id={:x}, home={}, "
14931493
"obj_load={}, target_max_load={}, this_new_load_={}, "
14941494
"criterion={}\n",
@@ -1544,7 +1544,7 @@ void TemperedLB::originalTransfer() {
15441544

15451545
if (theConfig()->vt_debug_temperedlb) {
15461546
// compute rejection rate because it will be printed
1547-
runInEpochCollective("TemperedLB::decide -> compute rejection", [=] {
1547+
runInEpochCollective("TemperedLB::originalTransfer -> compute rejection", [=] {
15481548
proxy_.allreduce<&TemperedLB::rejectionStatsHandler, collective::PlusOp>(
15491549
n_rejected, n_transfers
15501550
);
@@ -1553,11 +1553,52 @@ void TemperedLB::originalTransfer() {
15531553
}
15541554

15551555
void TemperedLB::swapClusters() {
1556-
//auto lazy_epoch = theTerm()->makeEpochCollective("TemperedLB: swapClusters");
1556+
auto lazy_epoch = theTerm()->makeEpochCollective("TemperedLB: swapClusters");
15571557

15581558
// Initialize transfer and rejection counters
1559-
//int n_transfers = 0, n_rejected = 0;
1559+
int n_transfers = 0, n_rejected = 0;
1560+
1561+
// Try to migrate objects only from overloaded ranks
1562+
if (is_overloaded_) {
1563+
// Compute collection of potential targets
1564+
std::vector<NodeType> under = makeUnderloaded();
1565+
std::unordered_map<NodeType, ObjsType> migrate_objs;
1566+
if (under.size() > 0) {
1567+
std::vector<ObjIDType> ordered_obj_ids = orderObjects(
1568+
obj_ordering_, cur_objs_, this_new_load_, target_max_load_
1569+
);
1570+
1571+
// Cluster migratable objects on source rank
1572+
1573+
// Iterage over potential targets to try to swap clusters
1574+
1575+
//// Iteratr over target clusters
1576+
1577+
////// Decide whether swap is beneficial
15601578

1579+
1580+
//////// If swap is beneficial compute source cluster size
1581+
//////// Test whether criterion is creater than swap RTOL times source size
1582+
1583+
////////// Only in this case perform swap
1584+
////////// Else reject swap
1585+
1586+
} // if (under.size() > 0)
1587+
} // if (is_overloaded_)
1588+
1589+
// Finalize epoch
1590+
theTerm()->finishedEpoch(lazy_epoch);
1591+
vt::runSchedulerThrough(lazy_epoch);
1592+
1593+
// Report on rejection rate in debug mode
1594+
if (theConfig()->vt_debug_temperedlb) {
1595+
runInEpochCollective("TemperedLB::swapClusters -> compute rejection", [=] {
1596+
proxy_.allreduce<&TemperedLB::rejectionStatsHandler, collective::PlusOp>(
1597+
n_rejected, n_transfers
1598+
);
1599+
});
1600+
}
1601+
15611602
} // void TemperedLB::originalTransfer()
15621603

15631604
void TemperedLB::thunkMigrations() {

0 commit comments

Comments
 (0)