Skip to content

Conversation

@fstein93
Copy link
Contributor

@fstein93 fstein93 commented Oct 30, 2023

This PR implements several options which have already been available in the input but were not implemented:

  • half-transformed integral calculation algorithm: borrowed from the GPW-MP2 method. It is a much fast algorithm to calculate the integrals, especially if all orbitals are correlated. This implementation is 2-3 faster than the legacy FULL_GPW algorithm.
  • store_wfn: this option enables the on-the-fly calculation the orbital functions on a grid. It increases the costs by 40 % in case of half-transformed integrals (no idea in case of the FULL_GPW method but probably much more expensive than the with storing the orbitals). It allows to reduce the memory footprint significantly, especially in case of molecular systems with their larger number of grid points
  • subgroups: As in the WFC module, the calculation of integrals is possible in subgroups trading memory for reduced communication. I measured a threefold improvement.
  • The new implementation is GPU accelerated as it relies on DBCSR and the grid code for the integration of the potential (untested).
  • A bunch of new regression tests (QS/regtest-as-2, QS/regtest-as-3)

This implementation works well with the GPW method but is inadequate if highly localised AOs are present (known issue of GPW). In these cases, a GAPW-like implementation would be advantageous but a matter of implementation.

Turning it off results into segfaults because not being implemented. Would also not run efficiently without it.
prepares application of code for active space code
The option was available but not implemented. It allows to reduce the memory demands.
reduces communication costs but increases memory demands
@fstein93 fstein93 merged commit b95f545 into cp2k:master Oct 31, 2023
MGraml pushed a commit to MGraml/cp2k that referenced this pull request Nov 20, 2023
…als (cp2k#3082)



This PR implements several options which have already been available in the input but were not implemented:

    half-transformed integral calculation algorithm: borrowed from the GPW-MP2 method. It is a much fast algorithm to calculate the integrals, especially if all orbitals are correlated. This implementation is 2-3 faster than the legacy FULL_GPW algorithm.
    store_wfn: this option enables the on-the-fly calculation the orbital functions on a grid. It increases the costs by 40 % in case of half-transformed integrals (no idea in case of the FULL_GPW method but probably much more expensive than the with storing the orbitals). It allows to reduce the memory footprint significantly, especially in case of molecular systems with their larger number of grid points
    subgroups: As in the WFC module, the calculation of integrals is possible in subgroups trading memory for reduced communication. I measured a threefold improvement.
    The new implementation is GPU accelerated as it relies on DBCSR and the grid code for the integration of the potential (untested).
    A bunch of new regression tests (QS/regtest-as-2, QS/regtest-as-3)

This implementation works well with the GPW method but is inadequate if highly localised AOs are present (known issue of GPW). In these cases, a GAPW-like implementation would be advantageous but a matter of implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant