Closed ppebay closed 1 month ago
Standardizing this across all DARMA-tasking repos may be more complicated since vt
seems to expect shared_id
. For example, here's a snippet from temperedlb.cc
:
SharedIDType shared_id = vt::no_shared_id;
vt::NodeType home_rank = vt::uninitialized_destination;
BytesType shared_bytes = 0;
BytesType working_bytes = 0;
BytesType footprint_bytes = 0;
BytesType serialized_bytes = 0;
for (auto const& [key, variant] : data_map) {
auto val = std::get_if<double>(&variant);
vtAbortIf(!val, '"' + key + "\" in variant does not match double");
if (key == "shared_id") {
// Because of how JSON is stored this is always a double, even
// though it should be an integer
shared_id = static_cast<int>(*val);
}
if (key == "home_rank") {
// Because of how JSON is stored this is always a double, even
// though it should be an integer
home_rank = static_cast<int>(*val);
}
if (key == "shared_bytes") {
shared_bytes = *val;
}
if (key == "task_working_bytes") {
working_bytes = *val;
}
if (key == "task_footprint_bytes") {
footprint_bytes = *val;
}
if (key == "task_serialized_bytes") {
serialized_bytes = *val;
}
if (key == "rank_working_bytes") {
rank_bytes_ = *val;
}
}
This is a follow on to #506.
LBAF expects to see
shared_block_id
as the object QOI providing the identifiers of the shared memory blocks (used in particular for object clustering when shared block memory must remain bounded from above on each rank). However it appears that several use cases created by the generator contain theshared_id
label instead.This should be verified and possibly modified to ensure consistency