- Add a new test folder CI with a small, medium and large water benchmark test input
- Reduce test output size
- Run medium test only
- Apply more specific pipeline task names
Fix small format issue in benchmarks/QS_pao_ml_tio2/pao_ml_tio2.inp. The
benchmark runs still fine after this.
This seems atypical compared to the other input files included in the
repo. And it triggers a complicated bug in the cp2k-input-tools
https://github.com/cp2k/cp2k-input-tools. I think it is correct to fix
this here.
The old H2O benchmark files do not use an OUTER_SCF with OT which causes
that the first SCF iteration, e.g. already for H2O-32.inp, does not converge.
This convergence failure, however, causes now an program abort. The keyword
IGNORE_CONVERGENCE_FAILURE is added in order to recover the old behavior
and to keep the obtained timings comparable.
* MP2: Split mp2_ri_get_sizes
* Split mp2_ri_create_group
* MP2: Call mp2_ri_get_integ_group_size outside of the loops
The determined parameters are only calculated once
* Split mp2_ri_allocate
* Check replication explicitly
This step prepares larger replication group sizes for open shell systems
* Move some deallocation outside of the loop
* Move Postprocessing of Gamma_P_ia outside of the loop
* Interchange loops
* Move more routines outside of the loops
* Carry out dereplication at the end
* Collect bits of P_ab afterwards
* Interchange order of case in open-shell systems
* Carry out replication only once
* Remove unused variable
* Save a dereplication step in the open-shell case
* Split two lines
* Correctly determine an adequate integral replication size
* Set lower limit to integration group size
Reduces communication from replication
* Extend open-shell MP2 to block sizes larger than one
* Chose a more suitable block size than just 1
* Several fixes
* Consider more memory
* Fix open-shell systems
* Allocate memory for exchange of Y_i_aP only once
* Preallocate buffers instad of reallocating them
Reduces the memoryfootprint because it takes some time for the operating system to know that freed memory is actually free.
* Use the same block size everywhere
* Allocate memory only if necessary
* Make pointers contiguous
* Use for MP2+ADMM and double hybrid tests an automatic block size
* Further adjustment memory management
* Improve description of group size and abort if it is not a divisor of the number of MPI ranks
* Use one central buffer for recv and send operations
* Use automatic block sizes with single-node benchmark
* Minor adjustments to memory management
* MP2: Use available buffer for nearly degenerate occ-occ pairs
* Skip estimation of left computation time in MP2 for the very first step