Submitting jobs to cdash (#124)
* Submitting jobs to cdash * Fail on submit * submit url env * submit url env * try passing submit url as arg * fix submit url * Updated default URL * Add submissions for remaining ubuntu focal workflow jobs * Replace g++ with gcc in dashboard build name * Add --ctest-args to run-ci.sh * Add cdash support for bionic, jammy, and opensuse workflows * Decrease CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE * OMNITRACE_BUILD_CODECOV option * Support code coverage in CDash script * CI dyninst built with debug info * Update ci-containers - cron schedule moved 4 hours later to UTC+5 * Update implementation of config::configure_signal_handler - using lambdas failed to compile with codecov flags * Add codecov job to ubuntu focal workflow * Fix support for --ctest-args in run-ci script * Fix ubuntu workflows * Fix quotation handling in run-ci script * git safe directory for codecov * New MPI examples * Remove --stop-on-failure * dynamic_library update - find_library_path checks procfs maps - invoke find_library_path with no additional args to resolve to mapped file * RCCLP uses dynamic_library * check if file exists for memory_map_files metadata * Testing updates - include new mpi examples in tests - fix test labels - test critical-trace exe * Update MPI C examples tests (needed arg) * Remove try/catch block from critical-trace * Fix sampling max wait when shutting down * Fix test env for critical-trace * Fix settings for critical-trace - disable time output: data is deterministic - disable PID suffixes: not multiprocess * Update critical-trace ctest * Update critical-trace exe - throw error if input cannot be opened - throw error if input has no data * Update lulesh example with more kokkos tools usage * Fix tasking issue with critical_trace and roctracer - were not setting pools to active - also sync before critical_trace::get_entries * Increase verbosity of critical-trace tests * Update code coverage tests - skip code coverage + preload - code-coverage python example and test * Remove duplication omnitrace.initialize function * Skip python3.6 for ubuntu jammy * Update MPI examples - use MPI_Isend and MPI_Irecv - explicitly use MPI_Bcast * Update Formatting.cmake - include C files in examples * run-ci script does not check return of coverage * mpi-allreduce link to libm * Update ctest args in run-ci script * Update dyninst submodule - safety improvements in BinaryEdit::openResolvedLibraryName * capture cmake error for ctest_coverage
This commit is contained in:
committed by
GitHub
parent
139070a2de
commit
46b6db1a4c
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "api.hpp"
|
||||
#include "library/config.hpp"
|
||||
#include "library/debug.hpp"
|
||||
#include "library/perfetto.hpp"
|
||||
|
||||
#include <timemory/hash/types.hpp>
|
||||
@@ -57,6 +58,8 @@ main(int argc, char** argv)
|
||||
config::set_setting_value<int64_t>("OMNITRACE_THREAD_POOL_SIZE",
|
||||
std::thread::hardware_concurrency());
|
||||
config::set_setting_value("OMNITRACE_CRITICAL_TRACE_SERIALIZE_NAMES", true);
|
||||
config::set_setting_value("OMNITRACE_USE_PID", false);
|
||||
config::set_setting_value("OMNITRACE_TIME_OUTPUT", false);
|
||||
|
||||
if(config::get_verbose() >= 0)
|
||||
{
|
||||
@@ -70,8 +73,12 @@ main(int argc, char** argv)
|
||||
{
|
||||
critical_trace::complete_call_chain = {};
|
||||
OMNITRACE_BASIC_PRINT_F("Loading call-chain %s...\n", argv[i]);
|
||||
critical_trace::load_call_chain(argv[i], "call_chain",
|
||||
critical_trace::complete_call_chain);
|
||||
if(!critical_trace::load_call_chain(argv[i], "call_chain",
|
||||
critical_trace::complete_call_chain))
|
||||
{
|
||||
OMNITRACE_THROW("Error loading '%s'. Data size: %zu\n", argv[i],
|
||||
critical_trace::complete_call_chain.size());
|
||||
}
|
||||
for(const auto& itr : *tim::get_hash_ids())
|
||||
critical_trace::complete_hash_ids.emplace(itr.second);
|
||||
OMNITRACE_BASIC_PRINT_F("Computing critical trace for %s...\n", argv[i]);
|
||||
@@ -369,22 +376,28 @@ save_call_chain_json(const std::string& _fname, const std::string& _label,
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
bool
|
||||
load_call_chain(const std::string& _fname, const std::string& _label,
|
||||
call_chain& _call_chain)
|
||||
{
|
||||
namespace cereal = tim::cereal;
|
||||
|
||||
std::ifstream ifs{};
|
||||
ifs.open(_fname);
|
||||
if(ifs && ifs.is_open())
|
||||
{
|
||||
namespace cereal = tim::cereal;
|
||||
auto ar = tim::policy::input_archive<cereal::JSONInputArchive>::get(ifs);
|
||||
|
||||
ar->setNextName("omnitrace");
|
||||
ar->startNode();
|
||||
(*ar)(cereal::make_nvp(_label.c_str(), _call_chain));
|
||||
ar->finishNode();
|
||||
}
|
||||
OMNITRACE_CONDITIONAL_THROW(!ifs || !ifs.is_open(),
|
||||
"Error! call-chain file '%s' could not be opened",
|
||||
_fname.c_str());
|
||||
|
||||
auto ar = tim::policy::input_archive<cereal::JSONInputArchive>::get(ifs);
|
||||
auto _val = call_chain{};
|
||||
ar->setNextName("omnitrace");
|
||||
ar->startNode();
|
||||
(*ar)(cereal::make_nvp(_label.c_str(), _val));
|
||||
ar->finishNode();
|
||||
auto _success = (_val.empty() == false);
|
||||
if(_success) std::swap(_call_chain, _val);
|
||||
return _success;
|
||||
}
|
||||
|
||||
auto
|
||||
@@ -484,6 +497,7 @@ find_children(PTL::ThreadPool& _tp, call_graph_t& _graph, const call_chain& _cha
|
||||
return !_data.empty();
|
||||
};
|
||||
|
||||
OMNITRACE_CT_DEBUG_F("Checking index at -1...\n");
|
||||
if(!_indexed.at(-1).empty())
|
||||
{
|
||||
OMNITRACE_CT_DEBUG_F("Setting root (line %i)...\n", __LINE__);
|
||||
@@ -856,7 +870,7 @@ compute_critical_trace()
|
||||
|
||||
OMNITRACE_BASIC_PRINT("\n");
|
||||
|
||||
try
|
||||
// try
|
||||
{
|
||||
PTL::ThreadPool _tp{ get_thread_pool_size(), []() { copy_hash_ids(); }, []() {} };
|
||||
_tp.set_verbose(-1);
|
||||
@@ -970,11 +984,11 @@ compute_critical_trace()
|
||||
|
||||
_tg.join();
|
||||
_tp.destroy_threadpool();
|
||||
} catch(std::exception& e)
|
||||
} // catch(std::exception& e)
|
||||
{
|
||||
OMNITRACE_BASIC_PRINT("Thread exited '%s' with exception: %s\n", __FUNCTION__,
|
||||
e.what());
|
||||
TIMEMORY_CONDITIONAL_DEMANGLED_BACKTRACE(true, 32);
|
||||
// OMNITRACE_BASIC_PRINT("Thread exited '%s' with exception: %s\n", __FUNCTION__,
|
||||
// e.what());
|
||||
// TIMEMORY_CONDITIONAL_DEMANGLED_BACKTRACE(true, 32);
|
||||
}
|
||||
|
||||
_report_perf(_ct_perf, __FUNCTION__, "critical trace computation");
|
||||
|
||||
@@ -65,7 +65,7 @@ std::mutex complete_call_mutex{};
|
||||
void
|
||||
update_critical_path(call_chain _chain, int64_t _tid);
|
||||
|
||||
void
|
||||
bool
|
||||
load_call_chain(const std::string& _fname, const std::string& _label,
|
||||
call_chain& _call_chain);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user