From 8c7184fb774706add1e56ed536cb3f18126aa79d Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 6 Feb 2025 11:50:11 +0100 Subject: [PATCH] Speed up cache in integrals --- src/davidson/u0_hs2_u0.irp.f | 2 +- src/mo_two_e_ints/map_integrals.irp.f | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/davidson/u0_hs2_u0.irp.f b/src/davidson/u0_hs2_u0.irp.f index f2ce7aa9..dd5e01eb 100644 --- a/src/davidson/u0_hs2_u0.irp.f +++ b/src/davidson/u0_hs2_u0.irp.f @@ -158,7 +158,7 @@ subroutine H_S2_u_0_nstates_openmp_work(v_t,s_t,u_t,N_st,sze,istart,iend,ishift, double precision, intent(out) :: v_t(N_st,sze), s_t(N_st,sze) - PROVIDE ref_bitmask_energy N_int + PROVIDE ref_bitmask_energy N_int all_mo_integrals select case (N_int) case (1) diff --git a/src/mo_two_e_ints/map_integrals.irp.f b/src/mo_two_e_ints/map_integrals.irp.f index 5b233899..b5f78b7b 100644 --- a/src/mo_two_e_ints/map_integrals.irp.f +++ b/src/mo_two_e_ints/map_integrals.irp.f @@ -81,11 +81,15 @@ BEGIN_PROVIDER [ double precision, mo_integrals_cache, (0_8:mo_integrals_cache_s integer(key_kind) :: idx real(integral_kind) :: integral FREE ao_integrals_cache + if (do_mo_cholesky) then call set_multiple_levels_omp(.False.) - !$OMP PARALLEL DO PRIVATE (k,l,ii) + + + !$OMP PARALLEL DO PRIVATE(k,l,ii) SCHEDULE(dynamic) do l=mo_integrals_cache_min,mo_integrals_cache_max + print *, l do k=mo_integrals_cache_min,mo_integrals_cache_max ii = int(l-mo_integrals_cache_min,8) ii = ior( shiftl(ii,mo_integrals_cache_shift), int(k-mo_integrals_cache_min,8)) @@ -101,7 +105,7 @@ BEGIN_PROVIDER [ double precision, mo_integrals_cache, (0_8:mo_integrals_cache_s !$OMP END PARALLEL DO else - !$OMP PARALLEL DO PRIVATE (i,j,k,l,idx,ii,integral) + !$OMP PARALLEL DO PRIVATE (i,j,k,l,idx,ii,integral) SCHEDULE(dynamic) do l=mo_integrals_cache_min,mo_integrals_cache_max do k=mo_integrals_cache_min,mo_integrals_cache_max do j=mo_integrals_cache_min,mo_integrals_cache_max