QMCPACK/miniqmc

Separate the reference implemenation of einspline_spo as einspline_spo_ref

Closed this issue · 3 comments

Some ideas on refactoring the miniapp.
It looks like the Kokkos branch needs a reference version of einspline_spo.hpp.
It also may be useful for other code explorations, if the new version of the spline code doesn't fit into the exact model that einspline_spo.hpp uses.
Should we make this change in the main branch of the miniapp?

I'm happy that you exposed all the problems and I got a chance to think it more carefully.
I think we can have einspline_spo_ref. But before making the change, I'd like to solve the design problem of einspline_spo and then see if we still need to make a ref.

I'm thinking of adding back SPOSet base class.

There’s clearly been some exploration into parallelization at the einspline_spo level, at least based on the #pragma openmp flags in various evaluate_X functions. Given that parallelization is happening at this level, it makes sense that einspline_spo should be subject to changes based on parallelization strategy, hence why an einspline_spo_ref is needed.