message: Fixed slow COO SpMV for the OpenMP executor
  Moved the `omp parallel for` to the most outer loop of the apply,
  so it is parallelized over the matrix entries instead over the number
  of right hand sides for every single matrix entry.
diff: @@ -108,8 +108,8 @@ void spmv2(std::shared_ptr<const OmpExecutor> exec,
  auto coo_row = a->get_const_row_idxs();
  auto num_cols = b->get_size()[1];
  - for (size_type i = 0; i < a->get_num_stored_elements(); i++) {
  #pragma omp parallel for
  + for (size_type i = 0; i < a->get_num_stored_elements(); i++) {
  for (size_type j = 0; j < num_cols; j++) {
  c->at(coo_row[i], j) += coo_val[i] * b->at(coo_col[i], j);
  }
  @@ -132,8 +132,8 @@ void advanced_spmv2(std::shared_ptr<const OmpExecutor> exec,
  auto alpha_val = alpha->at(0, 0);
  auto num_cols = b->get_size()[1];
  - for (size_type i = 0; i < a->get_num_stored_elements(); i++) {
  #pragma omp parallel for
  + for (size_type i = 0; i < a->get_num_stored_elements(); i++) {
  for (size_type j = 0; j < num_cols; j++) {
  c->at(coo_row[i], j) +=
  alpha_val * coo_val[i] * b->at(coo_col[i], j);
  