Skip to content

Yambo 4.2

Compare
Choose a tag to compare
@sangallidavide sangallidavide released this 29 Sep 19:59

Memory Support

A dedicated and centralised procedure for memory allocation/deallocation and tracking have been decided to improve control over memory usage.
All allocation and deallocation statements in the code have been replaced by avoiding any performance issue, by exploiting Fortran/C preprocessor directives, keeping the inlining of allocations/deallocations. Fortran pointers have been replaced by allocatable arrays when possible, with a small though sensible performance improvement.


SLK new interface

Dense parallel linear algebra have been implemented by exploiting Scalapack (SLK) library within the MPI parallel structure of YAMBO. Concerning the RPA response, for instance, this means that on the top of the MPI parallelism over q vectors, multiple SLK parallel linear algebra instances are run at the same time (one per q vector).
In the specific case of the response function, we have also reformulated the initial linear algebra problem as the solution of a linear system, with the aim of reducing communication.


QP-DBS operations:

This new tool allow to perform all kind of simple arithmetic operations on QP databases. It is now possible to merge databases coming from different calculations and perform operation as addition, subtraction and multiplication. This tool turns out to be very useful in calculations of QP properties of large systems, where it allows one to split a large run (many k-points and many bands) requiring high memory and cpu resources in several independent and ess demanding runs.


Real-Time BSE

A real-time approach for the solution of the BSE have been implemented to overcome problems connected with the storing of the Bethe-Salpeter Kernel (BSK). The new approach is based on the re-formulation of the problem by using non-equilibrium MBPT which reduce the solution of the BSE to a real time problem where the kernel is never actually calculated. Yambo can now calculate directly the polarization function, real-time.


P2Y

QUANTUM ESPRESSO has implemented a new data layout, featuring a schema-compliant XML format combined with either Fortran or HDF5 binaries (if available) to store massive data (like wavefunctions). Though the previous data layout is still available and operational, in view of the tight data exchange between QUANTUM ESPRESSO and YAMBO, we have implemented the support for the new format. This comes as a native and independent software library, which has the advantage of being simple to install and flexible to use. This library can in principle be used by other third party codes interested in interfacing with QUANTUM ESPRESSO.


WF-IO

We have changed the structure of the ns.wf fragments generated by the interfaces (a2y, p2y, etc..). The new implementation allows to reduce time and memory consumption of the procedure that read KS wave-functions (ns.wf databases) imported by other DFT codes. With the new version each core needs to read only the fraction of the fragment it needs. With this upgrade both the memory and the time needed now scales with the number of MPI cores used. This new features becomes crucial when running on big databases and thousands of cores. Note that old wavefunction databases are not compatible anymore with the current release. Anyway a tool to convert database among releases is provided.


New interface for IO of complex variables improved and widely use in the code

The interface to print complex variable to file have been further improved, thanks to the use of pointers. The new interface has been adopted for the I/O of all complex variables with a substantial simplification of many I/O subroutines. Note that many databases generated with previous yambo releases are not compatible anymore with the current release.


Modularization of configure

The main source for the autoconf tools "config/configure.ac" was reduced from 464 lines
down to 270 lines moving part of the source in files specific for libraries and configuration
flags. The newer simplified structure makes now easier to introduce dependencies on new
libraries including the automatic management of either the linking of external libraries
or the download of internal ones (see for example internally available HDF5 library in
following section “Interfaces with NetCDF4/HDF5 for advanced IO”)


Extension of the number of libraries internally supported

With the new structure of the configure the number of internal libraries which are sup-
ported grew from 4 (iotk, etsf-io, netcdf, and libxc) to 12 with 8 new libraries now na-
tively supported (blas, lapack, scalapack, blacs, petsc, slepsc, fftw, and hdf5) and the up-
grade of the netcdf to the most recent version (4.4) which is made of 2 separate libraries
for C and fortran (netcdf and netcdff). All these libraries can now be automatically down-
loaded and compiled when running "make yambo". The same libraries can then be linked
in future compilations of the YAMBO or even by other codes. We tested the system with
different architectures and compilers.


Interface with FFTXLib domain libraries

In the 4.2 release we have modularised the calls to the FFT kernel done in YAMBO
and implemented an interface with FFTXLib, developed within MAX Center of Excellence as a materials science domain specific library. This library is now distributed with YAMBO (under the name of FFTQE) and can be called by the main code (a subset of the features implemented in FFTXLib is currently supported, though a more extended interfacing is planned).


Response function and Green’s function terminators

In order to reduce the number of empty states necessary to converge both polarizability and GW self-energy, we have implemented in YAMBO both response function (X) and self-energy (G) terminator techniques, in the scheme proposed by F. Bruneval and X. Gonze [1]. X and G terminators can be exploited to accelerate GW convergence leading to a reduction of both memory usage and time-to solution. Terminator algorithms do not affect scalability and parallel performance of YAMBO.


Interface with the WANT package for the interpolation of GW results
In the current release Yambo has been interfaced to the WanT package (http://www.wannier-transport.org) to exploit the real-space tools based on pseudo-atomic orbital projections [2] and Wannier functions [3,4] to Fourier interpolate (real and complex) band structure and density of states in the framework of GW. This feature is an alternative to the ypp tool for band interpolations already present in the previous release based in polynomial interpolation and it is very useful when the ypp interpolation presents difficulties or shows noisy bands.

[1] F. Bruneval and X. Gonze, Phys. Rev. B 78, 085125 (2008)
[2] Agapito, L. A., Ferretti, A., Calzolari, A., Curtarolo, S. & Nardelli, M. B. Effective and accurate representation of extended bloch states on finite hilbert spaces.
Phys. Rev. B 88, 165127 (2013).
[3] Marzari, N. & Vanderbilt, D. Maximally localized generalized wannier functions for composite energy bands.Phys. Rev. B 56, 12847–12865 (1997).
[4] Marzari, N., Mostofi, A. A., Yates, J. R., Souza, I. & Vanderbilt, D. Maximally localized wannier functions: Theory and applications. Rev. Mod. Phys.84, 1419–1475 (2012)