message: split residual computation and timing component
diff: @@ -257,7 +257,7 @@ void solve_system(const std::string &solver_name,
  }
  if (FLAGS_detailed) {
  - // slow run, gets the recurrent and true residuals of each iteration
  + // slow run, get the time of each functions
  auto x_clone = clone(x);
  auto gen_logger = std::make_shared<OperationLogger>(exec);
  @@ -283,19 +283,24 @@ void solve_system(const std::string &solver_name,
  auto apply_logger = std::make_shared<OperationLogger>(exec);
  exec->add_logger(apply_logger);
  +
  + solver->apply(lend(b), lend(x_clone));
  +
  + exec->remove_logger(gko::lend(apply_logger));
  + apply_logger->write_data(solver_json["apply"]["components"],
  + allocator, 1);
  +
  + // slow run, gets the recurrent and true residuals of each iteration
  if (FLAGS_nrhs == 1) {
  + x_clone = clone(x);
  auto res_logger = std::make_shared<ResidualLogger<etype>>(
  exec, lend(system_matrix), b,
  solver_json["recurrent_residuals"],
  solver_json["true_residuals"], allocator);
  solver->add_logger(res_logger);
  - }
  -
  solver->apply(lend(b), lend(x_clone));
  -
  - exec->remove_logger(gko::lend(apply_logger));
  - apply_logger->write_data(solver_json["apply"]["components"],
  - allocator, 1);
  + }
  + exec->synchronize();
  }
  // timed run
  