Skip to content

Commit

Permalink
store benchmarking exceptions in JSON
Browse files Browse the repository at this point in the history
  • Loading branch information
upsj committed Jul 5, 2021
1 parent 4430c84 commit ba0c3f4
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 0 deletions.
6 changes: 6 additions & 0 deletions benchmark/blas/blas.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,12 @@ void apply_blas(const char *operation_name, std::shared_ptr<gko::Executor> exec,
} catch (const std::exception &e) {
add_or_set_member(test_case["blas"][operation_name], "completed", false,
allocator);
if (FLAGS_keep_errors) {
rapidjson::Value msg_value;
msg_value.SetString(e.what(), allocator);
add_or_set_member(test_case["blas"][operation_name], "error",
msg_value, allocator);
}
std::cerr << "Error when processing test case " << test_case << "\n"
<< "what(): " << e.what() << std::endl;
}
Expand Down
6 changes: 6 additions & 0 deletions benchmark/conversions/conversions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,12 @@ void convert_matrix(const gko::LinOp *matrix_from, const char *format_to,
} catch (const std::exception &e) {
add_or_set_member(test_case["conversions"][conversion_name],
"completed", false, allocator);
if (FLAGS_keep_errors) {
rapidjson::Value msg_value;
msg_value.SetString(e.what(), allocator);
add_or_set_member(test_case["conversions"][conversion_name],
"error", msg_value, allocator);
}
std::cerr << "Error when processing test case " << test_case << "\n"
<< "what(): " << e.what() << std::endl;
}
Expand Down
6 changes: 6 additions & 0 deletions benchmark/preconditioner/preconditioner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,12 @@ void run_preconditioner(const char *precond_name,
rapidjson::Value(rapidjson::kObjectType), allocator);
add_or_set_member(test_case["preconditioner"][encoded_name.c_str()],
"completed", false, allocator);
if (FLAGS_keep_errors) {
rapidjson::Value msg_value;
msg_value.SetString(e.what(), allocator);
add_or_set_member(test_case["preconditioner"][encoded_name.c_str()],
"error", msg_value, allocator);
}
std::cerr << "Error when processing test case " << test_case << "\n"
<< "what(): " << e.what() << std::endl;
}
Expand Down
6 changes: 6 additions & 0 deletions benchmark/solver/solver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,12 @@ void solve_system(const std::string &solver_name,
} catch (const std::exception &e) {
add_or_set_member(test_case["solver"][precond_solver_name], "completed",
false, allocator);
if (FLAGS_keep_errors) {
rapidjson::Value msg_value;
msg_value.SetString(e.what(), allocator);
add_or_set_member(test_case["solver"][precond_solver_name], "error",
msg_value, allocator);
}
std::cerr << "Error when processing test case " << test_case << "\n"
<< "what(): " << e.what() << std::endl;
}
Expand Down
6 changes: 6 additions & 0 deletions benchmark/spmv/spmv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,12 @@ void apply_spmv(const char *format_name, std::shared_ptr<gko::Executor> exec,
} catch (const std::exception &e) {
add_or_set_member(test_case["spmv"][format_name], "completed", false,
allocator);
if (FLAGS_keep_errors) {
rapidjson::Value msg_value;
msg_value.SetString(e.what(), allocator);
add_or_set_member(test_case["spmv"][format_name], "error",
msg_value, allocator);
}
std::cerr << "Error when processing test case " << test_case << "\n"
<< "what(): " << e.what() << std::endl;
}
Expand Down
4 changes: 4 additions & 0 deletions benchmark/utils/general.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ DEFINE_string(double_buffer, "",
DEFINE_bool(detailed, true,
"If set, performs several runs to obtain more detailed results");

DEFINE_bool(keep_errors, false,
"If set, writes exception messages during the execution into the "
"JSON output");

DEFINE_bool(nested_names, false, "If set, separately logs nested operations");

DEFINE_uint32(seed, 42, "Seed used for the random number generator");
Expand Down

0 comments on commit ba0c3f4

Please sign in to comment.