message: add l_strategy to par_ilu convergence ex
diff: @@ -59,14 +59,6 @@ const std::map<std::string, std::function<std::shared_ptr<gko::Executor>()>>
  }}};
  -void output(const gko::WritableToMatrixData<double, int> *mtx, std::string name)
  -{
  - std::ofstream stream{name};
  - std::cerr << "Writing " << name << std::endl;
  - gko::write(stream, mtx, gko::layout_type::coordinate);
  -}
  -
  -
  template <typename Function>
  auto try_generate(Function fun) -> decltype(fun())
  {
  @@ -108,10 +100,11 @@ int main(int argc, char *argv[])
  {
  // print usage message
  if (argc < 2 || executors.find(argv[1]) == executors.end()) {
  - std::cerr << "Usage: executable"
  + std::cerr
  + << "Usage: executable"
  << " <reference|omp|cuda|hip|dpcpp> [<matrix-file>] "
  "[<parilu|parilut|paric|parict] [<max-iterations>] "
  - "[<num-repetitions>] [fill-in-limit]\n";
  + "[<num-repetitions>] [<fill-in-limit>] [<sequential-kernels>]\n";
  return -1;
  }
  @@ -124,6 +117,7 @@ int main(int argc, char *argv[])
  int max_iterations = argc < 5 ? 10 : std::stoi(argv[4]);
  int num_repetitions = argc < 6 ? 10 : std::stoi(argv[5]);
  double limit = argc < 7 ? 2 : std::stod(argv[6]);
  + bool sequential = argc < 8 ? false : std::stoi(argv[7]);
  // load matrix file into Csr format
  auto mtx = gko::share(try_generate([&] {
  @@ -135,17 +129,28 @@ int main(int argc, char *argv[])
  return gko::read<gko::matrix::Csr<>>(mtx_stream, exec);
  }));
  + std::shared_ptr<gko::matrix::Csr<>::strategy_type> strategy;
  + if (sequential) {
  + strategy = std::make_shared<gko::matrix::Csr<>::classical>();
  + } else {
  + strategy = std::make_shared<gko::matrix::Csr<>::sparselib>();
  + }
  +
  std::shared_ptr<gko::LinOpFactory> factory;
  std::function<void(int)> set_iterations;
  if (precond == "parilu") {
  - factory = gko::factorization::ParIlu<>::build().on(exec);
  + factory =
  + gko::factorization::ParIlu<>::build().with_l_strategy(strategy).on(
  + exec);
  set_iterations = [&](int it) {
  gko::as<gko::factorization::ParIlu<>::Factory>(factory)
  ->get_parameters()
  .iterations = it;
  };
  } else if (precond == "paric") {
  - factory = gko::factorization::ParIc<>::build().on(exec);
  + factory =
  + gko::factorization::ParIc<>::build().with_l_strategy(strategy).on(
  + exec);
  set_iterations = [&](int it) {
  gko::as<gko::factorization::ParIc<>::Factory>(factory)
  ->get_parameters()
  