Skip to content

Comments

Yambo - ChASE#225

Open
nicspalla wants to merge 15 commits intoyambo-code:5.4from
SimLabQuantumMaterials:yambo-chase-sync
Open

Yambo - ChASE#225
nicspalla wants to merge 15 commits intoyambo-code:5.4from
SimLabQuantumMaterials:yambo-chase-sync

Conversation

@nicspalla
Copy link
Contributor

ChASE library integration in Yambo.

richefort2 and others added 15 commits December 13, 2024 18:00
…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
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)
@nicspalla nicspalla self-assigned this Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants