#2512: Release 1.7.0#2515
Conversation
#2450: [CI] sync configurations between Azure and Bake builds
…-mode-to-guarantee-cache-is-valid #2443: location: add options to keep cache valid and create independent instances
…-only-installs-fmtcoreh #2457: Don't install fmt files when we're using external fmt for `vt-trace`
…uests and one for develop-only builds. Also new workflow file was added for develop-only bulds
…zure-and-migrate-it-to-bake-github #2454: Add `spack-package` build to bake file
…-build #2461: Fix code coverage pipeline
…exing #2506: metrics: refactor for multiplexing/add groups/auto-group, etc
…ling #2508: CI: replace copy of entire folder with copies of specified files
…rary-to-latest-version #2495: Upgrade the json library to latest version
…n-asan-fails #2479: CI: add ASAN options to always detect leaks and abort on error (non-zero code)
|
diff --git a/examples/collection/do_flops_perf.cc b/examples/collection/do_flops_perf.cc
index fe3c78764..26f0afa6d 100644
--- a/examples/collection/do_flops_perf.cc
+++ b/examples/collection/do_flops_perf.cc
@@ -67,12 +67,10 @@ void printMultiplexingInfo(
) {
for (auto const& group : groups) {
fmt::print(
- " group {}: time_enabled={}, time_running={}, enabled/running={:.6f}, running/enabled={:.6f}\n",
- group.group_.group_name_,
- group.time_enabled_,
- group.time_running_,
- group.getScalingRatio(),
- group.getRunningFraction()
+ " group {}: time_enabled={}, time_running={}, enabled/running={:.6f}, "
+ "running/enabled={:.6f}\n",
+ group.group_.group_name_, group.time_enabled_, group.time_running_,
+ group.getScalingRatio(), group.getRunningFraction()
);
}
}
@@ -91,7 +89,8 @@ struct GenericWork : vt::Collection<GenericWork, vt::Index1D> {
// ----------------------------------------------------------
vt::theContext()->getTask()->stopMetrics();
- auto const group_measurements = vt::thePerfData()->getTaskGroupMeasurements();
+ auto const group_measurements =
+ vt::thePerfData()->getTaskGroupMeasurements();
std::unordered_map<std::string, uint64_t> res;
for (auto const& group : group_measurements) {
for (auto const& measurement : group.measurements_) {
@@ -103,14 +102,16 @@ struct GenericWork : vt::Collection<GenericWork, vt::Index1D> {
fmt::print(" expected scalar fp ops ~= {}\n", expected_ops);
printMultiplexingInfo(group_measurements);
- std::vector<std::pair<std::string, uint64_t>> ordered(res.begin(), res.end());
+ std::vector<std::pair<std::string, uint64_t>> ordered(
+ res.begin(), res.end()
+ );
std::sort(ordered.begin(), ordered.end());
for (auto const& [name, value] : ordered) {
fmt::print(" {}: {}", name, value);
if (expected_ops > 0) {
- auto const ratio = static_cast<double>(value) /
- static_cast<double>(expected_ops);
+ auto const ratio =
+ static_cast<double>(value) / static_cast<double>(expected_ops);
fmt::print(" (ratio to expected ops = {:.6f})", ratio);
}
fmt::print("\n");
diff --git a/src/vt/collective/collective_ops.h b/src/vt/collective/collective_ops.h
index a2fadb8f2..a70f8dfe7 100644
--- a/src/vt/collective/collective_ops.h
+++ b/src/vt/collective/collective_ops.h
@@ -100,8 +100,7 @@ struct CollectiveAnyOps {
* \return the runtime pointer
*/
static RuntimePtrType initializePreconfigured(
- std::unique_ptr<StartupConfig> startup_config,
- MPI_Comm* comm = nullptr,
+ std::unique_ptr<StartupConfig> startup_config, MPI_Comm* comm = nullptr,
arguments::AppConfig const* app_config = nullptr,
bool print_startup_banner = true
);
diff --git a/src/vt/collective/reduce/operators/functors/plus_op.h b/src/vt/collective/reduce/operators/functors/plus_op.h
index e0007923d..718b765d8 100644
--- a/src/vt/collective/reduce/operators/functors/plus_op.h
+++ b/src/vt/collective/reduce/operators/functors/plus_op.h
@@ -93,7 +93,8 @@ struct PlusOp< std::array<T,N> > {
template <typename T, typename U>
struct PlusOp<std::unordered_map<T, U>> {
- void operator()(std::unordered_map<T, U>& v1, std::unordered_map<T, U> const& v2) {
+ void
+ operator()(std::unordered_map<T, U>& v1, std::unordered_map<T, U> const& v2) {
for (auto const& [key, value] : v2) {
vtAssert(v1.find(key) == v1.end(), "Key must not exist in other map");
v1[key] = value;
diff --git a/src/vt/collective/reduce/reduce.impl.h b/src/vt/collective/reduce/reduce.impl.h
index 61b0475e4..8b108418d 100644
--- a/src/vt/collective/reduce/reduce.impl.h
+++ b/src/vt/collective/reduce/reduce.impl.h
@@ -151,9 +151,12 @@ Reduce::PendingSendType Reduce::reduce(
ReduceNumType num_contrib
) {
auto msg_ptr = promoteMsg(msg);
- return PendingSendType{theMsg()->getEpochContextMsg(msg_ptr), [this, root, msg_ptr, id, num_contrib](){
- reduceImmediate<f>(root, msg_ptr.get(), id, num_contrib);
- } };
+ return PendingSendType{
+ theMsg()->getEpochContextMsg(msg_ptr),
+ [this, root, msg_ptr, id, num_contrib]() {
+ reduceImmediate<f>(root, msg_ptr.get(), id, num_contrib);
+ }
+ };
}
template <typename MsgT, ActiveTypedFnType<MsgT>* f>
diff --git a/src/vt/collective/startup.cc b/src/vt/collective/startup.cc
index 33f382f04..031d71e33 100644
--- a/src/vt/collective/startup.cc
+++ b/src/vt/collective/startup.cc
@@ -50,9 +50,7 @@
namespace vt {
-std::unique_ptr<StartupConfig> preconfigure(
- int& argc, char**& argv
-) {
+std::unique_ptr<StartupConfig> preconfigure(int& argc, char**& argv) {
auto arg_config = std::make_unique<arguments::ArgConfig>();
auto parse_input_holder = arg_config->setupInputHolder(argc, argv);
return std::make_unique<StartupConfig>(
@@ -61,10 +59,8 @@ std::unique_ptr<StartupConfig> preconfigure(
}
RuntimePtrType initializePreconfigured(
- std::unique_ptr<StartupConfig> startup_config,
- MPI_Comm* comm,
- arguments::AppConfig const* app_config,
- bool print_startup_banner
+ std::unique_ptr<StartupConfig> startup_config, MPI_Comm* comm,
+ arguments::AppConfig const* app_config, bool print_startup_banner
) {
return CollectiveOps::initializePreconfigured(
std::move(startup_config), comm, app_config, print_startup_banner
@@ -73,8 +69,8 @@ RuntimePtrType initializePreconfigured(
// vt::{initialize,finalize} for main ::vt namespace
RuntimePtrType initialize(
- int& argc, char**& argv, MPI_Comm* comm, arguments::AppConfig const* appConfig,
- bool print_startup_banner
+ int& argc, char**& argv, MPI_Comm* comm,
+ arguments::AppConfig const* appConfig, bool print_startup_banner
) {
bool const is_interop = comm != nullptr;
return CollectiveOps::initialize(
diff --git a/src/vt/collective/startup.h b/src/vt/collective/startup.h
index 3dab0090c..73dc6dc54 100644
--- a/src/vt/collective/startup.h
+++ b/src/vt/collective/startup.h
@@ -67,9 +67,7 @@ namespace vt {
*
* \return the \c StartupConfig to pass to VT
*/
-std::unique_ptr<StartupConfig> preconfigure(
- int& argc, char**& argv
-);
+std::unique_ptr<StartupConfig> preconfigure(int& argc, char**& argv);
/**
* \brief Initialize VT after it has been preconfigured
@@ -82,8 +80,7 @@ std::unique_ptr<StartupConfig> preconfigure(
* \return the runtime pointer
*/
RuntimePtrType initializePreconfigured(
- std::unique_ptr<StartupConfig> startup_config,
- MPI_Comm* comm = nullptr,
+ std::unique_ptr<StartupConfig> startup_config, MPI_Comm* comm = nullptr,
arguments::AppConfig const* app_config = nullptr,
bool print_startup_banner = true
);
diff --git a/src/vt/collective/startup_config.cc b/src/vt/collective/startup_config.cc
index 3c7ef9cbb..cf9b895b3 100644
--- a/src/vt/collective/startup_config.cc
+++ b/src/vt/collective/startup_config.cc
@@ -49,9 +49,9 @@ namespace vt {
StartupConfig::StartupConfig(
std::unique_ptr<arguments::ArgConfig> in_arg_config,
std::unique_ptr<ParseInputHolder> in_parse_input_holder
-) : arg_config_(std::move(in_arg_config)),
- parse_input_holder_(std::move(in_parse_input_holder))
-{ }
+)
+ : arg_config_(std::move(in_arg_config)),
+ parse_input_holder_(std::move(in_parse_input_holder)) { }
StartupConfig::~StartupConfig() = default;
diff --git a/src/vt/collective/startup_config.h b/src/vt/collective/startup_config.h
index 90f630f1c..e1c8fa803 100644
--- a/src/vt/collective/startup_config.h
+++ b/src/vt/collective/startup_config.h
@@ -64,17 +64,13 @@ namespace vt {
struct StartupConfig;
// fwd-decl preconfigure function for friend decl
-std::unique_ptr<StartupConfig> preconfigure(
- int& argc, char**& argv
-);
+std::unique_ptr<StartupConfig> preconfigure(int& argc, char**& argv);
/**
* \brief StartupConfig for preconfiguring VT before starting up the runtime.
*/
struct StartupConfig {
- friend std::unique_ptr<StartupConfig> preconfigure(
- int& argc, char**& argv
- );
+ friend std::unique_ptr<StartupConfig> preconfigure(int& argc, char**& argv);
friend struct vt::runtime::Runtime;
diff --git a/src/vt/configs/arguments/args.cc b/src/vt/configs/arguments/args.cc
index ef640e27f..561723f36 100644
--- a/src/vt/configs/arguments/args.cc
+++ b/src/vt/configs/arguments/args.cc
@@ -1362,9 +1362,8 @@ public:
}
};
-std::unique_ptr<ParseInputHolder> ArgConfig::setupInputHolder(
- int& argc, char**& argv
-) {
+std::unique_ptr<ParseInputHolder>
+ArgConfig::setupInputHolder(int& argc, char**& argv) {
auto pih = std::make_unique<ParseInputHolder>();
if (argc == 0) {
@@ -1396,7 +1395,8 @@ std::unique_ptr<ParseInputHolder> ArgConfig::setupInputHolder(
// Build string-vector and reverse order to parse (CLI quirk)
for (auto it = vt_args.crbegin(); it != vt_args.crend(); ++it) {
- if (util::demangle::DemanglerUtils::splitString(*it,'=')[0] == "--vt_input_config_yaml") {
+ if (util::demangle::DemanglerUtils::splitString(*it, '=')[0] ==
+ "--vt_input_config_yaml") {
pih->vt_yaml_input_arg.push_back(*it);
} else {
pih->vt_args_to_parse.push_back(*it);
@@ -1439,15 +1439,13 @@ std::unique_ptr<ParseInputHolder> ArgConfig::setupInputHolder(
return pih;
}
-std::tuple<int, std::string> ArgConfig::parse(
- int& argc, char**& argv, AppConfig const* appConfig
-) {
+std::tuple<int, std::string>
+ArgConfig::parse(int& argc, char**& argv, AppConfig const* appConfig) {
return parse(setupInputHolder(argc, argv), appConfig);
}
std::tuple<int, std::string> ArgConfig::parse(
- std::unique_ptr<ParseInputHolder> pih,
- AppConfig const* appConfig
+ std::unique_ptr<ParseInputHolder> pih, AppConfig const* appConfig
) {
// If user didn't define appConfig, parse into this->config_.
if (not appConfig) {
@@ -1514,9 +1512,8 @@ std::tuple<int, std::string> ArgConfig::parseToConfig(
addTVArgs(app, appConfig);
addThreadingArgs(app, appConfig);
- std::tuple<int, std::string> result = parseArguments(
- app, std::move(pih), appConfig
- );
+ std::tuple<int, std::string> result =
+ parseArguments(app, std::move(pih), appConfig);
if (std::get<0>(result) not_eq -1) {
// non-success
return result;
diff --git a/src/vt/configs/arguments/args.h b/src/vt/configs/arguments/args.h
index 002fbbcd2..27576fcd8 100644
--- a/src/vt/configs/arguments/args.h
+++ b/src/vt/configs/arguments/args.h
@@ -119,9 +119,8 @@ struct ArgConfig : runtime::component::Component<ArgConfig> {
AppConfig config_;
private:
- std::tuple<int, std::string> parseToConfig(
- std::unique_ptr<ParseInputHolder> pih, AppConfig& appConfig
- );
+ std::tuple<int, std::string>
+ parseToConfig(std::unique_ptr<ParseInputHolder> pih, AppConfig& appConfig);
bool parsed_ = false;
};
diff --git a/src/vt/configs/debug/debug_print.h b/src/vt/configs/debug/debug_print.h
index 1c3dce171..82e02a74e 100644
--- a/src/vt/configs/debug/debug_print.h
+++ b/src/vt/configs/debug/debug_print.h
@@ -77,10 +77,9 @@
#define vt_print_colorize \
vt_print_colorize_impl(::vt::debug::bd_green(), "vt", ":")
-#define vt_proc_print_colorize(proc) \
- vt_print_colorize_impl( \
- ::vt::debug::blue(), std::string("[") + std::to_string(proc) + "]", \
- "" \
+#define vt_proc_print_colorize(proc) \
+ vt_print_colorize_impl( \
+ ::vt::debug::blue(), std::string("[") + std::to_string(proc) + "]", "" \
)
#define vt_debug_argument_option(opt) \
@@ -287,9 +286,8 @@ template <CatEnum cat, CtxEnum ctx, ModeEnum mod>
struct DebugPrintOp;
template <CatEnum cat, ModeEnum mod, typename... Args>
-static inline void debugPrintImpl(
- NodeType node, fmt::format_string<Args...> arg, Args&&... args
-) {
+static inline void
+debugPrintImpl(NodeType node, fmt::format_string<Args...> arg, Args&&... args) {
constexpr auto mask = ModeEnum::terse | ModeEnum::normal | ModeEnum::verbose;
constexpr auto level = mod & mask;
if (level <= vt::debug::preConfig()->vt_debug_level_val) {
@@ -340,7 +338,7 @@ struct DebugPrintOp<cat, CtxEnum::unknown, mod> {
bool const rt_option, fmt::format_string<Args...> arg, Args&&... args
) {
if (rt_option or vt::debug::preConfig()->vt_debug_all) {
- debugPrintImpl<cat,mod>(-1, arg, std::forward<Args>(args)...);
+ debugPrintImpl<cat, mod>(-1, arg, std::forward<Args>(args)...);
}
}
};
@@ -355,10 +353,9 @@ template <
>
struct DispatchOp {
template <typename... Args>
- static void apply(
- bool const op, fmt::format_string<Args...> arg, Args&&... args
- ) {
- return Op<cat,ctx,mode>()(op,arg,std::forward<Args>(args)...);
+ static void
+ apply(bool const op, fmt::format_string<Args...> arg, Args&&... args) {
+ return Op<cat, ctx, mode>()(op, arg, std::forward<Args>(args)...);
}
};
@@ -374,10 +371,9 @@ template <
>
struct CheckEnabled {
template <typename... Args>
- static void apply(
- bool const, fmt::format_string<Args...> arg, Args&&... args
- ) {
- return vt::debug::useVars(arg,std::forward<Args>(args)...);
+ static void
+ apply(bool const, fmt::format_string<Args...> arg, Args&&... args) {
+ return vt::debug::useVars(arg, std::forward<Args>(args)...);
}
};
@@ -396,10 +392,9 @@ struct CheckEnabled<
>
> {
template <typename... Args>
- static void apply(
- bool const op, fmt::format_string<Args...> arg, Args&&... args
- ) {
- return DispatchOp<Op,C,cat,ctx,mod>::apply(
+ static void
+ apply(bool const op, fmt::format_string<Args...> arg, Args&&... args) {
+ return DispatchOp<Op, C, cat, ctx, mod>::apply(
op, arg, std::forward<Args>(args)...
);
}
@@ -415,10 +410,9 @@ template <
>
struct ApplyOp {
template <typename... Args>
- static void apply(
- bool const op, fmt::format_string<Args...> arg, Args&&... args
- ) {
- return CheckEnabled<Op,C,cat,ctx,mod>::apply(
+ static void
+ apply(bool const op, fmt::format_string<Args...> arg, Args&&... args) {
+ return CheckEnabled<Op, C, cat, ctx, mod>::apply(
op, arg, std::forward<Args>(args)...
);
}
diff --git a/src/vt/configs/features/features_defines.h b/src/vt/configs/features/features_defines.h
index 3e645c2fb..39c01bbc1 100644
--- a/src/vt/configs/features/features_defines.h
+++ b/src/vt/configs/features/features_defines.h
@@ -63,7 +63,7 @@
#define vt_feature_memory_pool 0 || vt_feature_cmake_memory_pool
#define vt_feature_priorities 0 || vt_feature_cmake_priorities
#define vt_feature_fcontext 0 || vt_feature_cmake_fcontext
-#define vt_feature_ldms 0 || vt_feature_cmake_ldms
+#define vt_feature_ldms 0 || vt_feature_cmake_ldms
#define vt_feature_mimalloc 0 || vt_feature_cmake_mimalloc
#define vt_feature_mpi_access_guards 0 || vt_feature_cmake_mpi_access_guards
#define vt_feature_zoltan 0 || vt_feature_cmake_zoltan
diff --git a/src/vt/group/group_manager.cc b/src/vt/group/group_manager.cc
index c09581b30..3a06735ba 100644
--- a/src/vt/group/group_manager.cc
+++ b/src/vt/group/group_manager.cc
@@ -311,8 +311,7 @@ void GroupManager::initializeLocalGroup(
EventType GroupManager::sendGroupCollective(
MsgSharedPtr<BaseMsgType> const& base, NodeType const from,
- bool const is_root,
- bool* const deliver
+ bool const is_root, bool* const deliver
) {
auto const& msg = base.get();
auto const& group = envelopeGetGroup(msg->env);
@@ -418,9 +417,7 @@ EventType GroupManager::sendGroupCollective(
* that are part of the group can be in the spanning tree. Thus, this node
* must forward.
*/
- auto const put_event = theMsg()->sendMsgBytesWithPut(
- root_node, base
- );
+ auto const put_event = theMsg()->sendMsgBytesWithPut(root_node, base);
/*
* Do not deliver on this node since it is not part of the group and will
* just forward to the root node.
diff --git a/src/vt/messaging/active.cc b/src/vt/messaging/active.cc
index 02eecde53..69afca69d 100644
--- a/src/vt/messaging/active.cc
+++ b/src/vt/messaging/active.cc
@@ -215,10 +215,14 @@ MsgSizeType ActiveMessenger::packMsg(
// Choose active message tag based on final size
/*static*/ MPI_TagType ActiveMessenger::selectActiveTag(MsgSizeType size) {
- if (size <= ActiveRecvBroker::caps_[0]) return static_cast<MPI_TagType>(MPITag::ActiveMsgS);
- if (size <= ActiveRecvBroker::caps_[1]) return static_cast<MPI_TagType>(MPITag::ActiveMsgM);
- if (size <= ActiveRecvBroker::caps_[2]) return static_cast<MPI_TagType>(MPITag::ActiveMsgL);
- if (size <= ActiveRecvBroker::caps_[3]) return static_cast<MPI_TagType>(MPITag::ActiveMsgXL);
+ if (size <= ActiveRecvBroker::caps_[0])
+ return static_cast<MPI_TagType>(MPITag::ActiveMsgS);
+ if (size <= ActiveRecvBroker::caps_[1])
+ return static_cast<MPI_TagType>(MPITag::ActiveMsgM);
+ if (size <= ActiveRecvBroker::caps_[2])
+ return static_cast<MPI_TagType>(MPITag::ActiveMsgL);
+ if (size <= ActiveRecvBroker::caps_[3])
+ return static_cast<MPI_TagType>(MPITag::ActiveMsgXL);
return static_cast<MPI_TagType>(MPITag::ActiveMsgTag); // fallback
}
@@ -453,9 +457,7 @@ EventType ActiveMessenger::sendMsgBytes(
return event_id;
}
-EventType ActiveMessenger::doMessageSend(
- MsgSharedPtr<BaseMsgType>& base
-) {
+EventType ActiveMessenger::doMessageSend(MsgSharedPtr<BaseMsgType>& base) {
auto msg = base.get();
auto const dest = envelopeGetDest(msg->env);
@@ -714,8 +716,8 @@ bool ActiveMessenger::recvDataMsgBuffer(
{
VT_ALLOW_MPI_CALLS;
const int probe_ret = MPI_Improbe(
- node == uninitialized_destination ? MPI_ANY_SOURCE : node,
- tag, comm_, &flag, &first_msg_handle, &stat
+ node == uninitialized_destination ? MPI_ANY_SOURCE : node, tag, comm_,
+ &flag, &first_msg_handle, &stat
);
vtAssertMPISuccess(probe_ret, "MPI_Improbe");
}
@@ -723,9 +725,8 @@ bool ActiveMessenger::recvDataMsgBuffer(
if (flag == 1) {
MPI_Get_count(&stat, MPI_BYTE, &num_probe_bytes);
- std::byte* buf = user_buf == nullptr ?
- thePool()->alloc(num_probe_bytes) :
- user_buf;
+ std::byte* buf =
+ user_buf == nullptr ? thePool()->alloc(num_probe_bytes) : user_buf;
NodeType const sender = stat.MPI_SOURCE;
@@ -812,7 +813,8 @@ void ActiveMessenger::recvDataDirect(
MsgSizeType len, PriorityType prio, ActionType dealloc,
ContinuationDeleterType next, bool is_user_buf
#if MPI_VERSION >= 3
- , MPI_Message first_msg, MsgSizeType first_chunk_bytes
+ ,
+ MPI_Message first_msg, MsgSizeType first_chunk_bytes
#endif
) {
vtAssert(nchunks > 0, "Must have at least one chunk");
@@ -829,34 +831,31 @@ void ActiveMessenger::recvDataDirect(
#if MPI_VERSION >= 3
// If we have a pre-matched first message, use MPI_Imrecv for the first chunk
if (first_msg != MPI_MESSAGE_NULL && first_chunk_bytes > 0) {
- #if vt_check_enabled(trace_enabled)
- std::unique_ptr<trace::TraceScopedNote> trace_note;
- if (theConfig()->vt_trace_mpi) {
- trace_note = std::make_unique<trace::TraceScopedNote>(trace_irecv);
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ std::unique_ptr<trace::TraceScopedNote> trace_note;
+ if (theConfig()->vt_trace_mpi) {
+ trace_note = std::make_unique<trace::TraceScopedNote>(trace_irecv);
+ }
+#endif
{
VT_ALLOW_MPI_CALLS;
- int const ret = MPI_Imrecv(
- cbuf, first_chunk_bytes, MPI_BYTE,
- &first_msg, &reqs[0]
- );
+ int const ret =
+ MPI_Imrecv(cbuf, first_chunk_bytes, MPI_BYTE, &first_msg, &reqs[0]);
vtAssertMPISuccess(ret, "MPI_Imrecv");
}
dmPostedCounterGauge.incrementUpdate(first_chunk_bytes, 1);
- #if vt_check_enabled(trace_enabled)
- if (theConfig()->vt_trace_mpi) {
- auto tr_note = fmt::format(
- "Imrecv(Data, first chunk): from={}, bytes={}",
- from, first_chunk_bytes
- );
- trace_note->setNote(tr_note);
- trace_note->end();
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ if (theConfig()->vt_trace_mpi) {
+ auto tr_note = fmt::format(
+ "Imrecv(Data, first chunk): from={}, bytes={}", from, first_chunk_bytes
+ );
+ trace_note->setNote(tr_note);
+ trace_note->end();
+ }
+#endif
remainder -= first_chunk_bytes;
start_chunk = 1;
@@ -887,7 +886,7 @@ void ActiveMessenger::recvDataDirect(
dmPostedCounterGauge.incrementUpdate(sublen, 1);
- #if vt_check_enabled(trace_enabled)
+#if vt_check_enabled(trace_enabled)
if (theConfig()->vt_trace_mpi) {
auto tr_note = fmt::format(
"Irecv(Data): from={}, bytes={}",
@@ -1030,13 +1029,15 @@ void ActiveMessenger::processActiveMsg(
// Try to process one incoming active message via Improbe/Iprobe for any size tag
bool ActiveMessenger::tryProcessIncomingActiveMsg() {
- struct TagEntry { MPI_TagType tag; };
+ struct TagEntry {
+ MPI_TagType tag;
+ };
static constexpr TagEntry active_tags[] = {
- { static_cast<MPI_TagType>(MPITag::ActiveMsgS) },
- { static_cast<MPI_TagType>(MPITag::ActiveMsgM) },
- { static_cast<MPI_TagType>(MPITag::ActiveMsgL) },
- { static_cast<MPI_TagType>(MPITag::ActiveMsgXL) },
- { static_cast<MPI_TagType>(MPITag::ActiveMsgTag) }
+ {static_cast<MPI_TagType>(MPITag::ActiveMsgS)},
+ {static_cast<MPI_TagType>(MPITag::ActiveMsgM)},
+ {static_cast<MPI_TagType>(MPITag::ActiveMsgL)},
+ {static_cast<MPI_TagType>(MPITag::ActiveMsgXL)},
+ {static_cast<MPI_TagType>(MPITag::ActiveMsgTag)}
};
for (auto const& te : active_tags) {
@@ -1048,9 +1049,7 @@ bool ActiveMessenger::tryProcessIncomingActiveMsg() {
MPI_Message msg_handle = MPI_MESSAGE_NULL;
{
VT_ALLOW_MPI_CALLS;
- MPI_Improbe(
- MPI_ANY_SOURCE, te.tag, comm_, &flag, &msg_handle, &stat
- );
+ MPI_Improbe(MPI_ANY_SOURCE, te.tag, comm_, &flag, &msg_handle, &stat);
}
if (flag == 1) {
@@ -1062,28 +1061,28 @@ bool ActiveMessenger::tryProcessIncomingActiveMsg() {
MPI_Request req = MPI_REQUEST_NULL;
{
- #if vt_check_enabled(trace_enabled)
- std::unique_ptr<trace::TraceScopedNote> trace_note;
- if (theConfig()->vt_trace_mpi) {
- trace_note = std::make_unique<trace::TraceScopedNote>(trace_irecv);
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ std::unique_ptr<trace::TraceScopedNote> trace_note;
+ if (theConfig()->vt_trace_mpi) {
+ trace_note = std::make_unique<trace::TraceScopedNote>(trace_irecv);
+ }
+#endif
VT_ALLOW_MPI_CALLS;
MPI_Imrecv(buf, num_probe_bytes, MPI_BYTE, &msg_handle, &req);
amPostedCounterGauge.incrementUpdate(num_probe_bytes, 1);
- #if vt_check_enabled(trace_enabled)
- if (theConfig()->vt_trace_mpi) {
- auto tr_note = fmt::format(
- "Imrecv(AM): from={}, bytes={}, tag={}",
- stat.MPI_SOURCE, num_probe_bytes, te.tag
- );
- trace_note->setNote(tr_note);
- trace_note->end();
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ if (theConfig()->vt_trace_mpi) {
+ auto tr_note = fmt::format(
+ "Imrecv(AM): from={}, bytes={}, tag={}", stat.MPI_SOURCE,
+ num_probe_bytes, te.tag
+ );
+ trace_note->setNote(tr_note);
+ trace_note->end();
+ }
+#endif
}
InProgressIRecv recv_holder{buf, num_probe_bytes, sender, req};
@@ -1103,9 +1102,7 @@ bool ActiveMessenger::tryProcessIncomingActiveMsg() {
#else
{
VT_ALLOW_MPI_CALLS;
- MPI_Iprobe(
- MPI_ANY_SOURCE, te.tag, comm_, &flag, &stat
- );
+ MPI_Iprobe(MPI_ANY_SOURCE, te.tag, comm_, &flag, &stat);
}
if (flag == 1) {
@@ -1117,31 +1114,30 @@ bool ActiveMessenger::tryProcessIncomingActiveMsg() {
MPI_Request req;
{
- #if vt_check_enabled(trace_enabled)
- std::unique_ptr<trace::TraceScopedNote> trace_note;
- if (theConfig()->vt_trace_mpi) {
- trace_note = std::make_unique<trace::TraceScopedNote>(trace_irecv);
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ std::unique_ptr<trace::TraceScopedNote> trace_note;
+ if (theConfig()->vt_trace_mpi) {
+ trace_note = std::make_unique<trace::TraceScopedNote>(trace_irecv);
+ }
+#endif
VT_ALLOW_MPI_CALLS;
MPI_Irecv(
- buf, num_probe_bytes, MPI_BYTE, sender, stat.MPI_TAG,
- comm_, &req
+ buf, num_probe_bytes, MPI_BYTE, sender, stat.MPI_TAG, comm_, &req
);
amPostedCounterGauge.incrementUpdate(num_probe_bytes, 1);
- #if vt_check_enabled(trace_enabled)
- if (theConfig()->vt_trace_mpi) {
- auto tr_note = fmt::format(
- "Irecv(AM): from={}, bytes={}, tag={}",
- stat.MPI_SOURCE, num_probe_bytes, stat.MPI_TAG
- );
- trace_note->setNote(tr_note);
- trace_note->end();
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ if (theConfig()->vt_trace_mpi) {
+ auto tr_note = fmt::format(
+ "Irecv(AM): from={}, bytes={}, tag={}", stat.MPI_SOURCE,
+ num_probe_bytes, stat.MPI_TAG
+ );
+ trace_note->setNote(tr_note);
+ trace_note->end();
+ }
+#endif
}
InProgressIRecv recv_holder{buf, num_probe_bytes, sender, req};
@@ -1271,13 +1267,13 @@ void ActiveMessenger::finishPendingActiveMsgAsyncRecv(InProgressIRecv* irecv) {
envelopeSetPutPtrOnly(msg->env, put_ptr);
put_finished = true;
} else {
- /*bool const put_delivered = */recvDataMsg(
+ /*bool const put_delivered = */ recvDataMsg(
1, put_tag, sender,
- [this, base, sender](PtrLenPairType ptr, ActionType deleter){
+ [this, base, sender](PtrLenPairType ptr, ActionType deleter) {
envelopeSetPutPtr(base->env, std::get<0>(ptr), std::get<1>(ptr));
processActiveMsg(base, sender, true, deleter);
}
- );
+ );
}
}
@@ -1320,35 +1316,37 @@ bool ActiveMessenger::testPendingAsyncOps() {
);
}
-void ActiveMessenger::ActiveRecvBroker::postSlot(ActiveMessenger* self, Slot& s) {
+void ActiveMessenger::ActiveRecvBroker::postSlot(
+ ActiveMessenger* self, Slot& s
+) {
// Allocate a fresh buffer for this slot and post a Irecv for the corresponding tag
s.buf = thePool()->alloc(s.cap);
- #if vt_check_enabled(trace_enabled)
- std::unique_ptr<trace::TraceScopedNote> trace_note;
- if (theConfig()->vt_trace_mpi) {
- trace_note = std::make_unique<trace::TraceScopedNote>(self->trace_irecv);
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ std::unique_ptr<trace::TraceScopedNote> trace_note;
+ if (theConfig()->vt_trace_mpi) {
+ trace_note = std::make_unique<trace::TraceScopedNote>(self->trace_irecv);
+ }
+#endif
{
VT_ALLOW_MPI_CALLS;
int const ret = MPI_Irecv(
- s.buf, s.cap, MPI_BYTE, MPI_ANY_SOURCE,
- s.tag, self->comm_, &s.req
+ s.buf, s.cap, MPI_BYTE, MPI_ANY_SOURCE, s.tag, self->comm_, &s.req
);
vtAssertMPISuccess(ret, "Broker MPI_Irecv");
}
self->amPostedCounterGauge.incrementUpdate(s.cap, 1);
- #if vt_check_enabled(trace_enabled)
- if (theConfig()->vt_trace_mpi) {
- auto tr_note = fmt::format("Irecv(AM Broker): tag={}, cap={}", s.tag, s.cap);
- trace_note->setNote(tr_note);
- trace_note->end();
- }
- #endif
+#if vt_check_enabled(trace_enabled)
+ if (theConfig()->vt_trace_mpi) {
+ auto tr_note =
+ fmt::format("Irecv(AM Broker): tag={}, cap={}", s.tag, s.cap);
+ trace_note->setNote(tr_note);
+ trace_note->end();
+ }
+#endif
s.posted = true;
}
@@ -1359,7 +1357,9 @@ void ActiveMessenger::ActiveRecvBroker::setup(ActiveMessenger* self) {
for (int ci = 0; ci < num_caps_; ++ci) {
for (int k = 0; k < slots_per_class_; ++k) {
- slots_.emplace_back(Slot{caps_[ci], tags_[ci], nullptr, MPI_REQUEST_NULL, false});
+ slots_.emplace_back(
+ Slot{caps_[ci], tags_[ci], nullptr, MPI_REQUEST_NULL, false}
+ );
}
}
@@ -1379,7 +1379,8 @@ bool ActiveMessenger::ActiveRecvBroker::progress(ActiveMessenger* self) {
int tests = 0;
for (auto& s : slots_) {
- if (!s.posted) continue;
+ if (!s.posted)
+ continue;
int flag = 0;
MPI_Status stat{};
@@ -1452,8 +1453,8 @@ int ActiveMessenger::progress([[maybe_unused]] TimeType current_time) {
bool const broker_progress = active_broker_.progress(this);
return started_irecv_active_msg or started_irecv_data_msg or
- received_active_msg or received_data_msg or general_async or
- broker_progress;
+ received_active_msg or received_data_msg or general_async or
+ broker_progress;
}
void ActiveMessenger::registerAsyncOp(std::unique_ptr<AsyncOp> in) {
diff --git a/src/vt/messaging/active.h b/src/vt/messaging/active.h
index e39c7f8a9..cf9d3f371 100644
--- a/src/vt/messaging/active.h
+++ b/src/vt/messaging/active.h
@@ -105,13 +105,13 @@ static constexpr TagType const PutPackedTag =
enum class MPITag : MPI_TagType {
ActiveMsgTag = 1,
- DataMsgTag = 2,
+ DataMsgTag = 2,
// Size-class active message tags
- ActiveMsgS = 11, // <= 512 bytes
- ActiveMsgM = 12, // <= 2048 bytes
- ActiveMsgL = 13, // <= 8192 bytes
- ActiveMsgXL = 14 // <= 32768 bytes
+ ActiveMsgS = 11, // <= 512 bytes
+ ActiveMsgM = 12, // <= 2048 bytes
+ ActiveMsgL = 13, // <= 8192 bytes
+ ActiveMsgXL = 14 // <= 32768 bytes
};
static constexpr TagType const starting_direct_buffer_tag = 1000;
@@ -1389,7 +1389,8 @@ struct ActiveMessenger : runtime::component::PollableComponent<ActiveMessenger>
MsgSizeType len, PriorityType prio, ActionType dealloc = nullptr,
ContinuationDeleterType next = nullptr, bool is_user_buf = false
#if MPI_VERSION >= 3
- , MPI_Message first_msg = MPI_MESSAGE_NULL, MsgSizeType first_chunk_bytes = 0
+ ,
+ MPI_Message first_msg = MPI_MESSAGE_NULL, MsgSizeType first_chunk_bytes = 0
#endif
);
@@ -1759,6 +1760,7 @@ private:
static constexpr int num_caps_ = 4;
static constexpr int caps_[num_caps_] = {512, 2048, 8192, 32768};
+
private:
std::vector<Slot> slots_;
static constexpr MPI_TagType tags_[num_caps_] = {
@@ -1770,6 +1772,7 @@ private:
static constexpr int slots_per_class_ = 4;
void postSlot(ActiveMessenger* self, Slot& s);
+
public:
// Cleanup outstanding posted receives and buffers to avoid leaks at shutdown
void cleanup();
diff --git a/src/vt/messaging/active.impl.h b/src/vt/messaging/active.impl.h
index 417c6873f..1cdacf639 100644
--- a/src/vt/messaging/active.impl.h
+++ b/src/vt/messaging/active.impl.h
@@ -167,15 +167,13 @@ ActiveMessenger::PendingSendType ActiveMessenger::sendMsgCopyableImpl(
if (!is_term || vt_check_enabled(print_term_msgs)) {
if (is_bcast) {
vt_debug_print(
- verbose, active,
- "broadcastMsg of ptr={}, type={}\n",
- print_ptr(rawMsg), typeid(MsgT).name()
+ verbose, active, "broadcastMsg of ptr={}, type={}\n", print_ptr(rawMsg),
+ typeid(MsgT).name()
);
} else {
vt_debug_print(
- verbose, active,
- "sendMsg of ptr={}, type={}\n",
- print_ptr(rawMsg), typeid(MsgT).name()
+ verbose, active, "sendMsg of ptr={}, type={}\n", print_ptr(rawMsg),
+ typeid(MsgT).name()
);
}
}
diff --git a/src/vt/messaging/collection_chain_set.impl.h b/src/vt/messaging/collection_chain_set.impl.h
index 8e44f9896..c99137223 100644
--- a/src/vt/messaging/collection_chain_set.impl.h
+++ b/src/vt/messaging/collection_chain_set.impl.h
@@ -69,7 +69,9 @@ CollectionChainSet<Index>::CollectionChainSet(
auto const this_node = theContext()->getNode();
auto const proxy_bits = proxy.getProxy();
- ListenerType l = [this, p, layout, this_node](ElementEventEnum event, IndexT idx, NodeType home) {
+ ListenerType l = [this, p, layout, this_node](
+ ElementEventEnum event, IndexT idx, NodeType home
+ ) {
switch (event) {
case ElementEventEnum::ElementCreated:
case ElementEventEnum::ElementMigratedIn:
diff --git a/src/vt/metrics/example_events.h b/src/vt/metrics/example_events.h
index 4a9727b67..b20961e19 100644
--- a/src/vt/metrics/example_events.h
+++ b/src/vt/metrics/example_events.h
@@ -52,12 +52,28 @@
namespace vt { namespace metrics {
std::unordered_map<std::string, PerfEventDescriptor> const example_event_map = {
- {"cycles", PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, "compute"}},
- {"instructions", PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, "compute"}},
- {"cache_references", PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES, "cache"}},
- {"cache_misses", PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES, "cache"}},
- {"branch_instructions", PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_INSTRUCTIONS, "branch"}},
- {"branch_misses", PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_MISSES, "branch"}}
+ {"cycles",
+ PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, "compute"}
+ },
+ {"instructions",
+ PerfEventDescriptor{
+ PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, "compute"
+ }},
+ {"cache_references",
+ PerfEventDescriptor{
+ PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES, "cache"
+ }},
+ {"cache_misses",
+ PerfEventDescriptor{PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES, "cache"}
+ },
+ {"branch_instructions",
+ PerfEventDescriptor{
+ PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_INSTRUCTIONS, "branch"
+ }},
+ {"branch_misses",
+ PerfEventDescriptor{
+ PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_MISSES, "branch"
+ }}
};
}} // end namespace vt::metrics
diff --git a/src/vt/metrics/perf_data.cc b/src/vt/metrics/perf_data.cc
index 8de5027b4..a12c2e0bc 100644
--- a/src/vt/metrics/perf_data.cc
+++ b/src/vt/metrics/perf_data.cc
@@ -62,19 +62,16 @@ std::string joinEventNames(std::vector<std::string> const& event_names) {
}
std::string makePerfOpenError(
- vt::metrics::PerfEventGroupInfo const& group,
- std::string const& event_name,
- std::size_t attempted_group_size,
- int error_number
+ vt::metrics::PerfEventGroupInfo const& group, std::string const& event_name,
+ std::size_t attempted_group_size, int error_number
) {
- auto message =
- "Error opening perf event '" + event_name + "' for group '" +
- group.group_name_ + "' (source=" + group.source_ + ", attempted_size=" +
- std::to_string(attempted_group_size) + ", configured_size=" +
- std::to_string(group.event_names_.size()) + ", events=[" +
- joinEventNames(group.event_names_) + "], pinned=" +
- std::string(group.pinned_ ? "true" : "false") + "): " +
- std::strerror(error_number);
+ auto message = "Error opening perf event '" + event_name + "' for group '" +
+ group.group_name_ + "' (source=" + group.source_ +
+ ", attempted_size=" + std::to_string(attempted_group_size) +
+ ", configured_size=" + std::to_string(group.event_names_.size()) +
+ ", events=[" + joinEventNames(group.event_names_) +
+ "], pinned=" + std::string(group.pinned_ ? "true" : "false") +
+ "): " + std::strerror(error_number);
if (group.event_names_.size() > 1) {
message +=
@@ -97,14 +94,12 @@ std::string makePerfOpenError(
uint64_t scaleCounterValue(
uint64_t value, uint64_t time_enabled, uint64_t time_running
) {
- if (
- time_enabled == 0 or time_running == 0 or time_running >= time_enabled
- ) {
+ if (time_enabled == 0 or time_running == 0 or time_running >= time_enabled) {
return value;
}
- auto const scale = static_cast<double>(time_enabled) /
- static_cast<double>(time_running);
+ auto const scale =
+ static_cast<double>(time_enabled) / static_cast<double>(time_running);
auto const scaled_value = std::llround(static_cast<double>(value) * scale);
if (scaled_value < 0) {
@@ -130,24 +125,20 @@ void PerfData::maybePrintEventGroups() const {
fmt::print("Perf groups manifested:\n");
for (auto const& group : event_groups_) {
fmt::print(
- " {} [{}{}]: {}\n",
- group.group_name_,
- group.source_,
- group.pinned_ ? ", pinned" : "",
- joinEventNames(group.event_names_)
+ " {} [{}{}]: {}\n", group.group_name_, group.source_,
+ group.pinned_ ? ", pinned" : "", joinEventNames(group.event_names_)
);
}
}
-PerfData::PerfData()
- : event_map_(example_event_map)
-{
+PerfData::PerfData() : event_map_(example_event_map) {
auto const* event_spec = std::getenv("VT_EVENTS");
auto const auto_group_enabled = isPerfEnvEnabled("VT_PERF_AUTO_GROUP");
- auto const auto_group_max_size = auto_group_enabled ?
- getPerfGroupMaxSize("VT_PERF_AUTO_GROUP_MAX_SIZE") : 0;
- auto const resolved_spec =
- event_spec == nullptr ? std::string{"instructions"} : std::string{event_spec};
+ auto const auto_group_max_size =
+ auto_group_enabled ? getPerfGroupMaxSize("VT_PERF_AUTO_GROUP_MAX_SIZE") : 0;
+ auto const resolved_spec = event_spec == nullptr ?
+ std::string{"instructions"} :
+ std::string{event_spec};
event_groups_ = resolvePerfEventGroups(
resolved_spec, event_map_, auto_group_enabled, auto_group_max_size,
@@ -224,36 +215,43 @@ void PerfData::startTaskMeasurement() {
void PerfData::stopTaskMeasurement() {
for (auto const& group_state : group_states_) {
if (group_state.leader_fd_ != -1) {
- ioctl(group_state.leader_fd_, PERF_EVENT_IOC_DISABLE, PERF_IOC_FLAG_GROUP);
+ ioctl(
+ group_state.leader_fd_, PERF_EVENT_IOC_DISABLE, PERF_IOC_FLAG_GROUP
+ );
}
}
}
-std::vector<PerfData::TaskGroupMeasurements> PerfData::readTaskGroupMeasurements() const {
+std::vector<PerfData::TaskGroupMeasurements>
+PerfData::readTaskGroupMeasurements() const {
std::vector<TaskGroupMeasurements> groups;
if (group_states_.size() != event_groups_.size()) {
- vtAbort("Mismatch between opened event groups and configured event groups.");
+ vtAbort("Mismatch between opened event groups and configured event groups."
+ );
}
for (auto const& group_state : group_states_) {
auto const expected_events = group_state.info_.event_names_.size();
std::vector<uint64_t> buffer(3 + (expected_events * 2), 0);
- auto const expected_bytes = static_cast<ssize_t>(buffer.size() * sizeof(uint64_t));
+ auto const expected_bytes =
+ static_cast<ssize_t>(buffer.size() * sizeof(uint64_t));
auto const bytes_read = read(
group_state.leader_fd_, buffer.data(), static_cast<size_t>(expected_bytes)
);
if (bytes_read == -1) {
vtAbort(
- "Failed to read perf event group data for: " + group_state.info_.group_name_ +
+ "Failed to read perf event group data for: " +
+ group_state.info_.group_name_ +
". Error: " + std::string(std::strerror(errno))
);
}
if (bytes_read != expected_bytes) {
vtAbort(
- "Incomplete read for perf event group: " + group_state.info_.group_name_ +
- ". Expected " + std::to_string(expected_bytes) + " bytes, but got " +
+ "Incomplete read for perf event group: " +
+ group_state.info_.group_name_ + ". Expected " +
+ std::to_string(expected_bytes) + " bytes, but got " +
std::to_string(bytes_read)
);
}
@@ -286,9 +284,8 @@ std::vector<PerfData::TaskGroupMeasurements> PerfData::readTaskGroupMeasurements
);
}
- group_measurements.measurements_[iter->second] = scaleCounterValue(
- value, time_enabled, time_running
- );
+ group_measurements.measurements_[iter->second] =
+ scaleCounterValue(value, time_enabled, time_running);
}
groups.push_back(std::move(group_measurements));
@@ -314,11 +311,13 @@ std::unordered_map<std::string, uint64_t> PerfData::getTaskMeasurements() {
return measurements;
}
-std::vector<PerfData::TaskGroupMeasurements> PerfData::getTaskGroupMeasurements() {
+std::vector<PerfData::TaskGroupMeasurements>
+PerfData::getTaskGroupMeasurements() {
return readTaskGroupMeasurements();
}
-std::unordered_map<std::string, PerfEventDescriptor> PerfData::getEventMap() const {
+std::unordered_map<std::string, PerfEventDescriptor>
+PerfData::getEventMap() const {
return event_map_;
}
diff --git a/src/vt/metrics/perf_data.h b/src/vt/metrics/perf_data.h
index dc6b04132..978562ae6 100644
--- a/src/vt/metrics/perf_data.h
+++ b/src/vt/metrics/perf_data.h
@@ -190,9 +190,7 @@ public:
*/
template <typename SerializerT>
void serialize(SerializerT& s) {
- s | event_map_
- | event_names_
- | event_groups_;
+ s | event_map_ | event_names_ | event_groups_;
}
private:
diff --git a/src/vt/metrics/perf_event_groups.cc b/src/vt/metrics/perf_event_groups.cc
index 0ce802239..21b547d32 100644
--- a/src/vt/metrics/perf_event_groups.cc
+++ b/src/vt/metrics/perf_event_groups.cc
@@ -82,20 +82,16 @@ std::pair<std::string, bool> splitPinnedSuffix(std::string token) {
return {trimmed, false};
}
- if (
- marker_pos != trimmed.size() - 1 or
- trimmed.find('!', marker_pos + 1) != std::string::npos
- ) {
- vtAbort(
- "Malformed VT_EVENTS specification: pin marker must appear once at the end of an event or group."
- );
+ if (marker_pos != trimmed.size() - 1 or
+ trimmed.find('!', marker_pos + 1) != std::string::npos) {
+ vtAbort("Malformed VT_EVENTS specification: pin marker must appear once at "
+ "the end of an event or group.");
}
auto event_name = trim(trimmed.substr(0, marker_pos));
if (event_name.empty()) {
- vtAbort(
- "Malformed VT_EVENTS specification: pin marker must follow an event or grouped event list."
- );
+ vtAbort("Malformed VT_EVENTS specification: pin marker must follow an "
+ "event or grouped event list.");
}
return {event_name, true};
@@ -139,15 +135,13 @@ std::vector<ParsedEventGroup> parseEventGroups(std::string const& event_spec) {
if (ch == '!') {
if (parsed_groups.empty() or not parsed_groups.back().explicit_group_) {
- vtAbort(
- "Malformed VT_EVENTS specification: pin marker must follow a grouped event list or event name."
- );
+ vtAbort("Malformed VT_EVENTS specification: pin marker must follow a "
+ "grouped event list or event name.");
}
if (parsed_groups.back().pinned_) {
- vtAbort(
- "Malformed VT_EVENTS specification: duplicate pin marker after grouped events."
- );
+ vtAbort("Malformed VT_EVENTS specification: duplicate pin marker "
+ "after grouped events.");
}
parsed_groups.back().pinned_ = true;
@@ -167,15 +161,13 @@ std::vector<ParsedEventGroup> parseEventGroups(std::string const& event_spec) {
if (ch == '{') {
if (in_group) {
- vtAbort(
- "Malformed VT_EVENTS specification: nested event groups are not supported."
- );
+ vtAbort("Malformed VT_EVENTS specification: nested event groups are "
+ "not supported.");
}
if (not trim(current_token).empty()) {
- vtAbort(
- "Malformed VT_EVENTS specification: missing comma before grouped events."
- );
+ vtAbort("Malformed VT_EVENTS specification: missing comma before "
+ "grouped events.");
}
current_token.clear();
@@ -193,15 +185,13 @@ std::vector<ParsedEventGroup> parseEventGroups(std::string const& event_spec) {
auto const token = flushToken();
auto const parsed_token = splitPinnedSuffix(token);
if (parsed_token.first.empty()) {
- vtAbort(
- "Malformed VT_EVENTS specification: empty event in grouped configuration."
- );
+ vtAbort("Malformed VT_EVENTS specification: empty event in grouped "
+ "configuration.");
}
if (parsed_token.second) {
- vtAbort(
- "Malformed VT_EVENTS specification: pin a grouped event list with a trailing '!' after the closing brace."
- );
+ vtAbort("Malformed VT_EVENTS specification: pin a grouped event list "
+ "with a trailing '!' after the closing brace.");
}
current_group.push_back(parsed_token.first);
@@ -219,24 +209,26 @@ std::vector<ParsedEventGroup> parseEventGroups(std::string const& event_spec) {
if (in_group) {
if (parsed_token.first.empty()) {
- vtAbort(
- "Malformed VT_EVENTS specification: empty event in grouped configuration."
- );
+ vtAbort("Malformed VT_EVENTS specification: empty event in grouped "
+ "configuration.");
}
if (parsed_token.second) {
- vtAbort(
- "Malformed VT_EVENTS specification: pin a grouped event list with a trailing '!' after the closing brace."
- );
+ vtAbort("Malformed VT_EVENTS specification: pin a grouped event list "
+ "with a trailing '!' after the closing brace.");
}
current_group.push_back(parsed_token.first);
} else {
if (parsed_token.first.empty()) {
- vtAbort("Malformed VT_EVENTS specification: empty event in event list.");
+ vtAbort(
+ "Malformed VT_EVENTS specification: empty event in event list."
+ );
}
- parsed_groups.push_back({{parsed_token.first}, false, parsed_token.second});
+ parsed_groups.push_back(
+ {{parsed_token.first}, false, parsed_token.second}
+ );
}
saw_delimiter = true;
@@ -266,7 +258,8 @@ std::vector<ParsedEventGroup> parseEventGroups(std::string const& event_spec) {
}
if (saw_delimiter) {
- vtAbort("Malformed VT_EVENTS specification: trailing comma in event list.");
+ vtAbort("Malformed VT_EVENTS specification: trailing comma in event list."
+ );
}
} else {
parsed_groups.push_back({{parsed_token.first}, false, parsed_token.second});
@@ -278,8 +271,7 @@ std::vector<ParsedEventGroup> parseEventGroups(std::string const& event_spec) {
void appendAutoGroupEvent(
std::vector<vt::metrics::PerfEventGroupInfo>& resolved_groups,
std::unordered_map<std::string, AutoGroupState>& auto_group_states,
- std::string const& auto_name,
- std::string const& event_name,
+ std::string const& auto_name, std::string const& event_name,
std::size_t auto_group_max_size
) {
auto iter = auto_group_states.find(auto_name);
@@ -293,8 +285,8 @@ void appendAutoGroupEvent(
auto& state = iter->second;
auto& current_group = resolved_groups[state.current_index_];
auto const max_size_enabled = auto_group_max_size > 0;
- auto const current_group_full =
- max_size_enabled and current_group.event_names_.size() >= auto_group_max_size;
+ auto const current_group_full = max_size_enabled and
+ current_group.event_names_.size() >= auto_group_max_size;
if (not current_group_full) {
current_group.event_names_.push_back(event_name);
@@ -307,12 +299,12 @@ void appendAutoGroupEvent(
++state.chunk_count_;
state.current_index_ = resolved_groups.size();
- resolved_groups.push_back({
- auto_name + "-" + std::to_string(state.chunk_count_),
- "auto",
- {event_name},
- false
- });
+ resolved_groups.push_back(
+ {auto_name + "-" + std::to_string(state.chunk_count_),
+ "auto",
+ {event_name},
+ false}
+ );
}
} // end anonymous namespace
@@ -344,10 +336,9 @@ std::size_t getPerfGroupMaxSize(char const* env_name) {
errno = 0;
auto const parsed_value = std::strtoull(value, &end, 10);
- if (
- errno != 0 or end == value or end == nullptr or *end != '\0' or
- parsed_value == 0 or parsed_value > std::numeric_limits<std::size_t>::max()
- ) {
+ if (errno != 0 or end == value or end == nullptr or *end != '\0' or
+ parsed_value == 0 or
+ parsed_value > std::numeric_limits<std::size_t>::max()) {
vtAbort(
std::string(env_name) +
" must be set to a positive integer when provided. Got: " + value
@@ -375,12 +366,10 @@ std::vector<PerfEventGroupInfo> resolvePerfEventGroups(
}
if (parsed_group.explicit_group_) {
- resolved_groups.push_back({
- "explicit-" + std::to_string(explicit_group_index++),
- "explicit",
- parsed_group.event_names_,
- parsed_group.pinned_
- });
+ resolved_groups.push_back(
+ {"explicit-" + std::to_string(explicit_group_index++), "explicit",
+ parsed_group.event_names_, parsed_group.pinned_}
+ );
continue;
}
@@ -388,12 +377,9 @@ std::vector<PerfEventGroupInfo> resolvePerfEventGroups(
auto const& descriptor = event_map.at(event_name);
if (parsed_group.pinned_) {
- resolved_groups.push_back({
- "singleton-" + event_name,
- "singleton",
- {event_name},
- true
- });
+ resolved_groups.push_back(
+ {"singleton-" + event_name, "singleton", {event_name}, true}
+ );
continue;
}
@@ -404,12 +390,9 @@ std::vector<PerfEventGroupInfo> resolvePerfEventGroups(
auto_group_max_size
);
} else {
- resolved_groups.push_back({
- "singleton-" + event_name,
- "singleton",
- {event_name},
- false
- });
+ resolved_groups.push_back(
+ {"singleton-" + event_name, "singleton", {event_name}, false}
+ );
}
}
diff --git a/src/vt/pipe/callback/cb_union/cb_raw_base.impl.h b/src/vt/pipe/callback/cb_union/cb_raw_base.impl.h
index 4d131fc77..bf959acfb 100644
--- a/src/vt/pipe/callback/cb_union/cb_raw_base.impl.h
+++ b/src/vt/pipe/callback/cb_union/cb_raw_base.impl.h
@@ -133,12 +133,9 @@ void CallbackTyped<Args...>::send(Params&&... params) {
// wrong ParamMsg will be cast to which requires serialization, leading to
// a failure.
if constexpr (sizeof...(Params) == sizeof...(Args) + 1) {
- using MsgT = messaging::ParamMsg<
- std::tuple<
- std::decay_t<std::tuple_element_t<0, std::tuple<Params...>>>,
- std::decay_t<Args>...
- >
- >;
+ using MsgT = messaging::ParamMsg<std::tuple<
+ std::decay_t<std::tuple_element_t<0, std::tuple<Params...>>>,
+ std::decay_t<Args>...>>;
auto msg = vt::makeMessage<MsgT>();
msg->setParams(std::forward<Params>(params)...);
CallbackRawBaseSingle::sendMsg<MsgT>(msg);
diff --git a/src/vt/pool/pool.cc b/src/vt/pool/pool.cc
index e0fcda35f..f6dca5a8c 100644
--- a/src/vt/pool/pool.cc
+++ b/src/vt/pool/pool.cc
@@ -201,13 +201,13 @@ Pool::SizeType Pool::remainingSize(
[[maybe_unused]] std::byte* const buf
) const {
#if vt_check_enabled(memory_pool)
- auto const& actual_used_size = HeaderManagerType::getHeaderUsedBytes(buf);
- auto const& oversize = HeaderManagerType::getHeaderOversizeBytes(buf);
+ auto const& actual_used_size = HeaderManagerType::getHeaderUsedBytes(buf);
+ auto const& oversize = HeaderManagerType::getHeaderOversizeBytes(buf);
- ePoolSize const pool_type = getPoolType(actual_used_size, oversize);
+ ePoolSize const pool_type = getPoolType(actual_used_size, oversize);
- if (pool_type == ePoolSize::Small) {
- return small_msg->getNumBytes() - actual_used_size;
+ if (pool_type == ePoolSize::Small) {
+ return small_msg->getNumBytes() - actual_used_size;
} else if (pool_type == ePoolSize::Medium) {
return medium_msg->getNumBytes() - actual_used_size;
} else {
@@ -219,11 +219,13 @@ Pool::SizeType Pool::remainingSize(
}
Pool::SizeType Pool::allocatedSize(std::byte* const buf) const {
- return HeaderManagerType::getHeaderUsedBytes(buf) + HeaderManagerType::getHeaderOversizeBytes(buf);
+ return HeaderManagerType::getHeaderUsedBytes(buf) +
+ HeaderManagerType::getHeaderOversizeBytes(buf);
}
void Pool::setUsedSize(std::byte* const buf, SizeType used_bytes) {
- auto *header = reinterpret_cast<Header*>(HeaderManagerType::getHeaderPtr(buf));
+ auto* header =
+ reinterpret_cast<Header*>(HeaderManagerType::getHeaderPtr(buf));
header->use_size = used_bytes;
}
diff --git a/src/vt/rdma/rdma.cc b/src/vt/rdma/rdma.cc
index b501f4b20..da9014a79 100644
--- a/src/vt/rdma/rdma.cc
+++ b/src/vt/rdma/rdma.cc
@@ -1289,7 +1289,9 @@ void RDMAManager::createDirectChannelInternal(
);
auto cb = theCB()->makeFunc<GetInfoChannel>(
- pipe::LifetimeEnum::Once, [this, type, han, non_target, action, unique_channel_tag, is_target, override_target](GetInfoChannel* msg){
+ pipe::LifetimeEnum::Once,
+ [this, type, han, non_target, action, unique_channel_tag, is_target,
+ override_target](GetInfoChannel* msg) {
auto const& my_num_bytes = msg->num_bytes;
createDirectChannelFinish(
type, han, non_target, action, unique_channel_tag, is_target, my_num_bytes,
@@ -1326,18 +1328,21 @@ void RDMAManager::removeDirectChannel(
auto const target = getTarget(han, override_target);
if (this_node != target) {
- auto cb = theCB()->makeFunc(pipe::LifetimeEnum::Once, [this, han, action, target, this_node]{
- auto iter = channels_.find(
- makeChannelLookup(han,RDMA_TypeType::Put,target,this_node)
- );
- if (iter != channels_.end()) {
- iter->second.freeChannel();
- channels_.erase(iter);
- }
- if (action) {
- action();
+ auto cb = theCB()->makeFunc(
+ pipe::LifetimeEnum::Once,
+ [this, han, action, target, this_node] {
+ auto iter = channels_.find(
+ makeChannelLookup(han, RDMA_TypeType::Put, target, this_node)
+ );
+ if (iter != channels_.end()) {
+ iter->second.freeChannel();
+ channels_.erase(iter);
+ }
+ if (action) {
+ action();
+ }
}
- });
+ );
auto msg = makeMessage<DestroyChannel>(
RDMA_TypeType::Get, han, no_byte, no_tag, cb
diff --git a/src/vt/rdmahandle/holder.impl.h b/src/vt/rdmahandle/holder.impl.h
index 28af16e35..e342528eb 100644
--- a/src/vt/rdmahandle/holder.impl.h
+++ b/src/vt/rdmahandle/holder.impl.h
@@ -150,7 +150,7 @@ RequestHolder Holder<T,E>::rget(
auto mpi_type_str = TypeMPI<T>::getTypeStr();
RequestHolder r;
if (mpi2_) {
- r.add([this, l, node, ptr, offset, len, mpi_type, mpi_type_str]{
+ r.add([this, l, node, ptr, offset, len, mpi_type, mpi_type_str] {
LockMPI _scope_lock(l, node, data_window_);
vt_debug_print(
verbose, rdma,
@@ -188,7 +188,7 @@ RequestHolder Holder<T,E>::rput(
auto mpi_type_str = TypeMPI<T>::getTypeStr();
RequestHolder r;
if (mpi2_) {
- r.add([this, l, node, ptr, offset, len, mpi_type, mpi_type_str]{
+ r.add([this, l, node, ptr, offset, len, mpi_type, mpi_type_str] {
LockMPI _scope_lock(l, node, data_window_);
vt_debug_print(
verbose, rdma,
@@ -245,7 +245,7 @@ RequestHolder Holder<T,E>::raccum(
auto mpi_type_str = TypeMPI<T>::getTypeStr();
RequestHolder r;
if (mpi2_) {
- r.add([this, l, node, offset, ptr, len, mpi_type, mpi_type_str, op]{
+ r.add([this, l, node, offset, ptr, len, mpi_type, mpi_type_str, op] {
LockMPI _scope_lock(l, node, data_window_);
vt_debug_print(
verbose, rdma,
diff --git a/src/vt/runtime/runtime.cc b/src/vt/runtime/runtime.cc
index ab81af032..442d0b6ab 100644
--- a/src/vt/runtime/runtime.cc
+++ b/src/vt/runtime/runtime.cc
@@ -97,19 +97,18 @@ namespace vt { namespace runtime {
/*static*/ bool volatile Runtime::sig_user_1_ = false;
Runtime::Runtime(
- std::unique_ptr<StartupConfig> startup_config,
- MPI_Comm in_comm,
- arguments::AppConfig const* appConfig,
- RuntimeInstType const in_instance
-) : instance_(in_instance), runtime_active_(false), is_interop_(true),
+ std::unique_ptr<StartupConfig> startup_config, MPI_Comm in_comm,
+ arguments::AppConfig const* appConfig, RuntimeInstType const in_instance
+)
+ : instance_(in_instance),
+ runtime_active_(false),
+ is_interop_(true),
initial_communicator_(in_comm),
arg_config_(std::move(startup_config->arg_config_)),
- app_config_(&arg_config_->config_)
-{
+ app_config_(&arg_config_->config_) {
startupMPIConfigArgs(
- std::move(startup_config->parse_input_holder_),
- initial_communicator_, arg_config_.get(),
- appConfig
+ std::move(startup_config->parse_input_holder_), initial_communicator_,
+ arg_config_.get(), appConfig
);
setUpSignals();
determinePhysicalNodeIDs();
@@ -152,8 +151,7 @@ Runtime::Runtime(
/// =========================================================================
startupMPIConfigArgs(
- argc, argv, is_interop_, initial_communicator_, arg_config_.get(),
- appConfig
+ argc, argv, is_interop_, initial_communicator_, arg_config_.get(), appConfig
);
setUpSignals();
determinePhysicalNodeIDs();
@@ -187,17 +185,13 @@ void Runtime::setUpSignals() {
}
startupMPIConfigArgs(
- arg_config->setupInputHolder(argc, argv),
- in_comm,
- arg_config,
- appConfig
+ arg_config->setupInputHolder(argc, argv), in_comm, arg_config, appConfig
);
}
/*static*/ void Runtime::startupMPIConfigArgs(
- std::unique_ptr<arguments::ParseInputHolder> pih,
- MPI_Comm in_comm, arguments::ArgConfig* arg_config,
- arguments::AppConfig const* appConfig
+ std::unique_ptr<arguments::ParseInputHolder> pih, MPI_Comm in_comm,
+ arguments::ArgConfig* arg_config, arguments::AppConfig const* appConfig
) {
// n.b. ref-update of args with pass-through arguments
std::tuple<int, std::string> result =
@@ -259,7 +253,9 @@ void Runtime::determinePhysicalNodeIDs() {
MPI_Comm i_comm = initial_communicator_;
MPI_Comm shm_comm;
- MPI_Comm_split_type(i_comm, MPI_COMM_TYPE_SHARED, 0, MPI_INFO_NULL, &shm_comm);
+ MPI_Comm_split_type(
+ i_comm, MPI_COMM_TYPE_SHARED, 0, MPI_INFO_NULL, &shm_comm
+ );
int shm_rank = -1;
int node_size = -1;
MPI_Comm_rank(shm_comm, &shm_rank);
diff --git a/src/vt/runtime/runtime.h b/src/vt/runtime/runtime.h
index b4dc772f8..d18434d62 100644
--- a/src/vt/runtime/runtime.h
+++ b/src/vt/runtime/runtime.h
@@ -163,9 +163,8 @@ struct Runtime {
* \param[in] appConfig possible app config overrides
*/
static void startupMPIConfigArgs(
- std::unique_ptr<arguments::ParseInputHolder> pih,
- MPI_Comm in_comm, arguments::ArgConfig* arg_config,
- arguments::AppConfig const* appConfig
+ std::unique_ptr<arguments::ParseInputHolder> pih, MPI_Comm in_comm,
+ arguments::ArgConfig* arg_config, arguments::AppConfig const* appConfig
);
/**
@@ -239,7 +238,8 @@ struct Runtime {
*
* \return whether it initialized or not
*/
- bool initialize(bool const force_now = false, bool print_startup_banner = true);
+ bool
+ initialize(bool const force_now = false, bool print_startup_banner = true);
/**
* \internal \brief Finalize the runtime
diff --git a/src/vt/scheduler/scheduler.impl.h b/src/vt/scheduler/scheduler.impl.h
index 545d7ee3b..84a550ba6 100644
--- a/src/vt/scheduler/scheduler.impl.h
+++ b/src/vt/scheduler/scheduler.impl.h
@@ -51,14 +51,16 @@
namespace vt {
template <typename Callable>
-void runInEpoch([[maybe_unused]] std::string const& label, EpochType ep, Callable&& fn) {
+void runInEpoch(
+ [[maybe_unused]] std::string const& label, EpochType ep, Callable&& fn
+) {
theSched()->triggerEvent(sched::SchedulerEvent::PendingSchedulerLoop);
theMsg()->pushEpoch(ep);
{
-# if vt_check_enabled(trace_enabled)
+#if vt_check_enabled(trace_enabled)
trace::TraceScopedEventHash event_{label};
-# endif
+#endif
fn();
}
theMsg()->popEpoch(ep);
diff --git a/src/vt/topos/location/location.h b/src/vt/topos/location/location.h
index 5e9b3ab38..7aca3fdd2 100644
--- a/src/vt/topos/location/location.h
+++ b/src/vt/topos/location/location.h
@@ -128,11 +128,10 @@ struct EntityLocationCoord : LocationCoord {
explicit EntityLocationCoord(
bool in_anytime_migration, bool in_keep_cache_updated,
std::size_t in_max_cache_size = default_max_cache_size
- ) : recs_(in_max_cache_size, theContext()->getNode()),
+ )
+ : recs_(in_max_cache_size, theContext()->getNode()),
anytime_migration_(in_anytime_migration),
- keep_cache_updated_(in_keep_cache_updated)
- { }
-
+ keep_cache_updated_(in_keep_cache_updated) { }
virtual ~EntityLocationCoord() {}
@@ -434,8 +433,7 @@ private:
*
* \param[in] global_map the global map reduced
*/
- void globalMapHandler(
- std::unordered_map<EntityID, NodeType> const& global_map
+ void globalMapHandler(std::unordered_map<EntityID, NodeType> const& global_map
);
/**
diff --git a/src/vt/topos/location/location.impl.h b/src/vt/topos/location/location.impl.h
index 1e24c6596..f0abd1d77 100644
--- a/src/vt/topos/location/location.impl.h
+++ b/src/vt/topos/location/location.impl.h
@@ -206,9 +206,9 @@ void EntityLocationCoord<EntityID>::doneMigrations() {
}
template <typename EntityID>
-bool EntityLocationCoord<EntityID>::entityExistsLocal(EntityID const& id) const {
- return
- local_registered_.find(id) != local_registered_.end() or
+bool EntityLocationCoord<EntityID>::entityExistsLocal(EntityID const& id
+) const {
+ return local_registered_.find(id) != local_registered_.end() or
local_registered_msg_han_.find(id) != local_registered_msg_han_.end();
}
@@ -241,9 +241,8 @@ void EntityLocationCoord<EntityID>::entityExists(
action(false, -1);
} else {
// Go to home node
- auto cb = theCB()->makeSend<&ThisType::entityExistsResponse>(
- proxy_[this_node]
- );
+ auto cb =
+ theCB()->makeSend<&ThisType::entityExistsResponse>(proxy_[this_node]);
proxy_[home_node].template send<&ThisType::entityExistsRequest>(
MsgProps().asLocationMsg(), id, home_node, cb
);
@@ -478,9 +477,8 @@ void EntityLocationCoord<EntityID>::getLocation(
if (not rec_exists) {
if (home_node != this_node) {
- auto cb = theCB()->makeSend<&ThisType::updateLocation>(
- proxy_[this_node]
- );
+ auto cb =
+ theCB()->makeSend<&ThisType::updateLocation>(proxy_[this_node]);
proxy_[home_node].template send<&ThisType::getLocationRequest>(
MsgProps().asLocationMsg(), id, home_node, cb
);
@@ -597,7 +595,8 @@ void EntityLocationCoord<EntityID>::routeMsgNode(
theTerm()->produce(epoch);
- auto trigger_msg_handler_action = [this, msg, home_node](EntityID const& hid) {
+ auto trigger_msg_handler_action = [this, msg,
+ home_node](EntityID const& hid) {
bool const& has_handler = msg->hasHandler();
auto const& from = msg->getLocFromNode();
if (has_handler) {
@@ -666,30 +665,34 @@ void EntityLocationCoord<EntityID>::routeMsgNode(
EntityID id_ = id;
// buffer the message here, the entity will be registered in the future
- insertPendingEntityAction(id_, [this, id_, epoch, msg, home_node, trigger_msg_handler_action](NodeType resolved) {
- auto const& my_node = theContext()->getNode();
-
- vt_debug_print(
- normal, location,
- "EntityLocationCoord: routeMsgNode: trigger action: resolved={}, "
- "this_node={}, id={}, ref={}, epoch={:x}\n",
- resolved, my_node, id_, envelopeGetRef(msg->env), epoch
- );
-
- theMsg()->pushEpoch(epoch);
- if (resolved == my_node) {
- trigger_msg_handler_action(id_);
- } else {
- /*
+ insertPendingEntityAction(
+ id_,
+ [this, id_, epoch, msg, home_node,
+ trigger_msg_handler_action](NodeType resolved) {
+ auto const& my_node = theContext()->getNode();
+
+ vt_debug_print(
+ normal, location,
+ "EntityLocationCoord: routeMsgNode: trigger action: resolved={}, "
+ "this_node={}, id={}, ref={}, epoch={:x}\n",
+ resolved, my_node, id_, envelopeGetRef(msg->env), epoch
+ );
+
+ theMsg()->pushEpoch(epoch);
+ if (resolved == my_node)
(...) |
Not up to standards ⛔🔴 Issues
|
| Category | Results |
|---|---|
| ErrorProne | 33 medium |
| Security | 1 critical |
| Performance | 1 medium |
🟢 Metrics 193 complexity · -2 duplication
Metric Results Complexity 193 Duplication -2
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Pipelines resultsvt-build-amd64-ubuntu-20-04-gcc-9-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-20-04-gcc-10-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-24-04-gcc-14-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-20-04-clang-9-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-clang-15-cpp-cxx20 Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-clang-11-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-clang-12-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-alpine-3-16-clang-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-24-04-clang-16-zoltan-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-gcc-12-vtk-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-clang-14-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-gcc-12-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-20-04-gcc-10-openmpi-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-24-04-clang-18-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-24-04-clang-17-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-24-04-clang-16-vtk-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-clang-13-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-24-04-gcc-13-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-24-04-icpx-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-20-04-gcc-9-cuda-11-4-3-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-20-04-gcc-9-cuda-12-2-0-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-22-04-gcc-11-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) vt-build-amd64-ubuntu-20-04-clang-10-cpp Build for bf47110 (2026-07-15 08:22:57 UTC) |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2515 +/- ##
==========================================
+ Coverage 84.37% 88.51% +4.14%
==========================================
Files 730 728 -2
Lines 25632 31015 +5383
==========================================
+ Hits 21627 27453 +5826
+ Misses 4005 3562 -443
🚀 New features to boost your workflow:
|
|
@antoinemeyer5 Can you look at the extended testing? I think it's trying to run the old Azure pipelines instead of the bake pipelines. |
Fixes #2512.