101 for (
TObject *file : *durationFiles) {
102 if (std::string(file->GetName()).find(
"p_") == std::string::npos)
105 std::ifstream
f(logs_dir +
"/" + std::string(file->GetName()));
107 if (std::string(file->GetName()).find(
"999") != std::string::npos) {
108 jsonData_->gradients = nlohmann::json::parse(
f);
110 jsonData_->durations.push_back(nlohmann::json::parse(
f));
114 for (nlohmann::json &durations_json :
jsonData_->durations) {
115 for (
auto &&el : durations_json.items()) {
116 if (el.key().find(
"eval_task") != std::string::npos &&
119 }
else if (el.key().find(
"eval_partition") != std::string::npos &&
123 }
else if (el.key().find(
"metadata") != std::string::npos) {
124 jsonData_->metadata = durations_json[el.key()];
129 for (nlohmann::json &durations_json :
jsonData_->durations) {
130 durations_json.erase(
"metadata");
146 int gradient_start_t =
jsonData_->gradients[
"master:gradient"][analyzed_gradient * 2 - 2];
147 int gradient_end_t =
jsonData_->gradients[
"master:gradient"][analyzed_gradient * 2 - 1];
153 for (nlohmann::json &durations_json :
jsonData_->durations) {
155 auto partial_matrix =
159 for (
auto &&el : durations_json.items()) {
161 std::upper_bound(durations_json[el.key()].begin(), durations_json[el.key()].end(), gradient_start_t);
163 std::upper_bound(durations_json[el.key()].begin(), durations_json[el.key()].end(), gradient_end_t);
164 durations_json[el.key()].erase(end_interval, durations_json[el.key()].end());
165 durations_json[el.key()].erase(durations_json[el.key()].begin(), beg_interval);
173 for (
size_t idx = 0; idx < durations_json[eval_partition_name].size(); idx += 2) {
174 if (durations_json[eval_partition_name][idx + 1] > gradient_end_t ||
175 durations_json[eval_partition_name][idx] < gradient_start_t)
177 std::string task_name = findTaskForDuration(durations_json, durations_json[eval_partition_name][idx],
178 durations_json[eval_partition_name][idx + 1]);
180 if (task_name.empty())
185 int eval_partitions_idx =
188 partial_matrix->SetBinContent(eval_partitions_idx, tasks_idx,
189 durations_json[eval_partition_name][idx + 1].get<int>() -
190 durations_json[eval_partition_name][idx].get<int>());
194 total_matrix->Add(partial_matrix.get());
198 total_matrix->SetStats(
false);
201 TAxis *
y = total_matrix->GetYaxis();
202 TAxis *
x = total_matrix->GetXaxis();
203 for (std::size_t i = 0; i !=
tasks_names_.size(); ++i) {
204 y->SetBinLabel(i + 1,
jsonData_->metadata[0][i].get<std::string>().c_str());
205 y->ChangeLabel(i + 1, 30, 0.01, -1, -1, -1,
"");
209 x->ChangeLabel(i + 1, 30, -1, -1, -1, -1,
"");
211 x->LabelsOption(
"v");