[QE-developers] Parallelization question for G-wise projector-wavefunctions product computation

Marin Luca luca.marin at mat.ethz.ch
Sat Feb 8 15:31:37 CET 2025


Dear QE developers,
I had a conceptual question of how I should correctly modify a subroutine in order to avoid parallelization and memory’s absurdities. Specifically, my idea is to slightly modify one of the subroutines in the “calbec” (becmod.f90) interface that is computing <\Beta|\psi> products, and I am using QE v.6.4 because I’m working on a specific code repository using this version. By calling such or similar line:
CALL ZGEMV( 'C', npw, nkb, (1.0_DP,0.0_DP), beta, npwx, psi, 1, &
(0.0_DP, 0.0_DP), betapsi, 1 )
and subsequently summing through bands:
CALL mp_sum( betapsi( :, 1:m ), intra_bgrp_comm )
“calbec_k” computes the betapsi product as a 2D matrix with dimension (number of projectors, number of bands). My goal is to compute the same product but accessing the elements at each G vectors, i.e. without summing over the G vectors themselves. To this end, my (very basic, probably terrible) idea was to define another subroutine with an extra variable like this (without breaking the requirement of having unambiguous interface procedures in “calbec”):
calbec_k_modified ( npw, beta, psi, betapsi, betapsi_g, nbnd )
COMPLEX (DP), INTENT (out) :: betapsi_g(:,:,:)
and explicitly computing betapsi_g with nested do loops:
DO k = 1, npw
DO i = 1, nkb
DO j = 1, m
betapsi_g(k, i, j) = CONJG(beta(k, i)) * psi(k, j)
ENDDO
ENDDO
ENDDO
I am very unsure of whether this is a feasible approach and how I should handle the MPI parallelization in this case (I have little experience in QE development). I read the parallelization section of the developer’s manual, but I’m still quite confused. Any suggestions, critics or explanations will be very appreciated.
Best regards,
Luca Marin
ETH Zurich, PhD student


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20250208/74d96d9a/attachment.html>


More information about the developers mailing list