10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-11-03 20:53:54 +01:00

Can't improve davidsion with storage

This commit is contained in:
Anthony Scemama 2024-09-26 19:02:59 +02:00
parent db29e0048a
commit 0b3b62aec8
3 changed files with 16 additions and 31 deletions

View File

@ -775,12 +775,6 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_
)
FREE nthreads_davidson
! call mmap_destroy(singles_alpha_csc_map)
! FREE singles_alpha_csc_map
!
! call mmap_destroy(singles_beta_csc_map)
! FREE singles_beta_csc_map
end

View File

@ -179,13 +179,12 @@ subroutine H_u_0_nstates_openmp_work_$N_int(v_t,u_t,N_st,sze,istart,iend,ishift,
!
! compute_singles = (mem+rss > qp_max_mem)
!
! if (.not.compute_singles) then
! provide singles_beta_csc
! endif
compute_singles=.True.
PROVIDE singles_beta_csc_map singles_alpha_csc_map
if (.not.compute_singles) then
provide singles_alpha_csc singles_beta_csc
endif
compute_singles=.True.
maxab = max(N_det_alpha_unique, N_det_beta_unique)+1
@ -212,8 +211,8 @@ compute_singles=.True.
!$OMP psi_bilinear_matrix_transp_rows_loc, &
!$OMP istart, iend, istep, irp_here, v_t, &
!$OMP ishift, idx0, u_t, maxab, compute_singles, &
!$OMP singles_alpha_csc_map,singles_alpha_csc_idx, &
!$OMP singles_beta_csc_map,singles_beta_csc_idx) &
!$OMP singles_alpha_csc,singles_alpha_csc_idx, &
!$OMP singles_beta_csc_,singles_beta_csc_idx) &
!$OMP PRIVATE(krow, kcol, tmp_det, spindet, k_a, k_b, i, &
!$OMP lcol, lrow, l_a, l_b, utl, kk, u_is_sparse, &
!$OMP buffer, doubles, n_doubles, umax, &
@ -275,7 +274,7 @@ compute_singles=.True.
!DIR$ LOOP COUNT avg(1000)
do k8=singles_beta_csc_idx(kcol),singles_beta_csc_idx(kcol+1)-1
n_singles_b = n_singles_b+1
singles_b(n_singles_b) = singles_beta_csc_map%i1(k8)
singles_b(n_singles_b) = singles_beta_csc(k8)
enddo
endif
endif
@ -329,9 +328,9 @@ compute_singles=.True.
right = singles_alpha_csc_idx(krow+1)
do while (right-left>0_8)
k8 = shiftr(right+left,1)
if (singles_alpha_csc_map%i1(k8) > lrow) then
if (singles_alpha_csc(k8) > lrow) then
right = k8
else if (singles_alpha_csc_map%i1(k8) < lrow) then
else if (singles_alpha_csc(k8) < lrow) then
left = k8 + 1_8
else
right_max = k8+1_8
@ -357,9 +356,9 @@ compute_singles=.True.
right = right_max
do while (right-left>0_8)
k8 = shiftr(right+left,1)
if (singles_alpha_csc_map%i1(k8) > lrow) then
if (singles_alpha_csc(k8) > lrow) then
right = k8
else if (singles_alpha_csc_map%i1(k8) < lrow) then
else if (singles_alpha_csc(k8) < lrow) then
left = k8 + 1_8
else
n_singles_a += 1

View File

@ -218,14 +218,13 @@ subroutine H_S2_u_0_nstates_openmp_work_$N_int(v_t,s_t,u_t,N_st,sze,istart,iend,
!
! compute_singles = (mem+rss > qp_max_mem)
!
! if (.not.compute_singles) then
! provide singles_beta_csc
! endif
compute_singles=.True.
! PROVIDE singles_beta_csc_map singles_alpha_csc_map
PROVIDE singles_beta_csc singles_alpha_csc
if (.not.compute_singles) then
provide singles_alpha_csc
provide singles_beta_csc
endif
compute_singles=.True.
maxab = max(N_det_alpha_unique, N_det_beta_unique)+1
@ -254,8 +253,6 @@ subroutine H_S2_u_0_nstates_openmp_work_$N_int(v_t,s_t,u_t,N_st,sze,istart,iend,
!$OMP ishift, idx0, u_t, maxab, compute_singles, &
!$OMP singles_alpha_csc,singles_alpha_csc_idx, &
!$OMP singles_beta_csc,singles_beta_csc_idx) &
! !$OMP singles_alpha_csc_map,singles_alpha_csc_idx, &
! !$OMP singles_beta_csc_map,singles_beta_csc_idx) &
!$OMP PRIVATE(krow, kcol, tmp_det, spindet, k_a, k_b, i, &
!$OMP lcol, lrow, l_a, l_b, utl, kk, u_is_sparse, &
!$OMP buffer, doubles, n_doubles, umax, &
@ -317,7 +314,6 @@ subroutine H_S2_u_0_nstates_openmp_work_$N_int(v_t,s_t,u_t,N_st,sze,istart,iend,
!DIR$ LOOP COUNT avg(1000)
do k8=singles_beta_csc_idx(kcol),singles_beta_csc_idx(kcol+1)-1
n_singles_b = n_singles_b+1
! singles_b(n_singles_b) = singles_beta_csc_map%i1(k8)
singles_b(n_singles_b) = singles_beta_csc(k8)
enddo
endif
@ -375,10 +371,8 @@ subroutine H_S2_u_0_nstates_openmp_work_$N_int(v_t,s_t,u_t,N_st,sze,istart,iend,
right = singles_alpha_csc_idx(krow+1)
do while (right-left>0_8)
k8 = shiftr(right+left,1)
! if (singles_alpha_csc_map%i1(k8) > lrow) then
if (singles_alpha_csc(k8) > lrow) then
right = k8
! else if (singles_alpha_csc_map%i1(k8) < lrow) then
else if (singles_alpha_csc(k8) < lrow) then
left = k8 + 1_8
else
@ -405,10 +399,8 @@ subroutine H_S2_u_0_nstates_openmp_work_$N_int(v_t,s_t,u_t,N_st,sze,istart,iend,
right = right_max
do while (right-left>0_8)
k8 = shiftr(right+left,1)
! if (singles_alpha_csc_map%i1(k8) > lrow) then
if (singles_alpha_csc(k8) > lrow) then
right = k8
! else if (singles_alpha_csc_map%i1(k8) < lrow) then
else if (singles_alpha_csc(k8) < lrow) then
left = k8 + 1_8
else