Conversation
…piles - PARALLEL_HERMITIAN_chase added. --> Parallel routine that computes the neig smallest eigenvalues of the Hermitian Hamiltonian with ChASE using simple or double precision depending on user's configuration. /!\ Compiles but no tried. - Previous commit : -- SERIAL_HERMITIAN_chase added. --> Computes the neig smallest eigenvalues of the Hermitian Hamiltonian sequentially with ChASE. -- SERIAL_HERMITIAN_feweigenvalues added. --> Sequential routine that computes the neig smallest eigenvalues of the Hermitian Hamiltonian with (C|Z)HEEVx. -- PARALLEL_HERMITIAN_feweigenvalues added. --> Parallel routine that computes the neig smallest eigenvalues of the Hermitian Hamiltonian with p(C|Z)HEEVx. - The Hamiltonian is distributed using the block cyclic scheme. However, it seems that the size of each block is N/nprow, which appears to be equivalent with a block-block scattering. --> The number of eigenvalues is requested by the user in input file. See BSSNEig parameter. - Notes : --> The Eigensolver is chosen by setting BSSmod= "[BSS]" # [BSS] (h)aydock/(d)iagonalization/(s)lepc/(i)nversion/(t)ddft`/heev(x)/(c)hase --> ChASE config file in config/m4/chase.m4 /!\ \\$(lchase) added in sbin/compilation/libraries.sh /!\ - To do : --> Parameters such as deg and opt are defined internally yet, but should be set in the input file .in --> Download ChASE internaly if enabled but not referenced by user or not found in the system --> Adapt ChASE configuration to shared memory only and no-GPU clusters. --> Check that the grid distribution of the neig eigenvectors returned by ChASE fits with the BSE computation.
--> Need to fix the communicator issue - LINEAR_ALGEBRA_driver.F : --> if statement on l_chase added - To do : --> Need to understand the set-up of INTRA_comm and INTER_comm
--> The communicator issue is fixed. In fact, only "use chase_diag" was missing. - jobs/scripts --> contains a back-up of all the scripts used to benchmark yambo. Main test case yet is Silicon, but not commited. - config/m4/chase.m4 --> Order of linked libraries reordered. - To do : --> Add ChASE parameters in input file --> Extract information on ChASE convergence (iterations, etc.) --> Build ChASE internally if missing or $ChASEROOT undefined.
--> ChASE output eigenvectors reordered differently, assuming the spliting of the matrix is based on a block block distribution --> Fixed Bug in the if condition aims at choosing the right eigensolver --> Some debugging prints are now commented
… does not run on Stages/2026 yet
Ydiago disabled (possibly temporarily) when working with CHASE
* cleanup of CHASE support in Yambo * Testing works for a number of eigenvalues large enough (pathologic behaviour to be firther investigated)
|
Fine with me to proceed |
|
I had a look to the code. A couple of comments/questions:
|
ChASE library integration in Yambo.