July 10, 2017 to July 21, 2017
Abdus Salam International Centre for Theoretical Pysics, Trieste
LIST OF PARTICIPANTS (reference code or initiative in parentheses)
Volker Blum (ELSI), Viktor Yu (ELSI), William Huhn (ELSI), David Lopez (Siesta), Yann Pouillon (Abinit), Micael Oliveira (Octopus & Abinit), Fabiano Corsetti (Siesta & Onetep), Paolo Giannozzi (QE), Anoop Chandran (QE), Pietro Delugas (QE), Ivan Carnimeo (QE), Emine Kucukbenli (QE), Layla Martin-Samos (QE), Stefano de Gironcoli (QE), Ivan Girotto (QE).
First Two Days: round table presentations and discussions focusing on an analysis of the available ESL “utility tools” and on opportunities for code reuse.
From Day Three: daily morning update of the work done and planning the activity for the day. Coding sessions.
WORKSHOP MOTIVATION AND OUTCOME:
In the past several decades Electronic Structure methods have mostly been developed in self contained monolithic software distributions implementing a variety of features. Currently most of these large codes contain routines with overlapping functionality and make use of non-standard data formats due to historical reasons, and as the state of the art in theory and computer hardware progresses, the complexity of these codes continue to grow separately, in a way that reduces their inter-operability with each new version.
While this independent development model has certainly been successful in the past, the current situation is far from ideal: new developers willing to contribute new ideas, who already face a steep learning curve due to the complexity of the existing software, are also required to become deeply involved with the development of a specific package.
Furthermore, extension of their new development to other codes requires repetition of the same work for each independent package over and over, with very little academic and personal reward.
The problem is widely recognized in the community as important yet it remains unsolved. Addressing it from various angles is among the goals of the E-CAM Center of Excellence, spawn by the CECAM community, and the MaX Center of Excellence, both funded by EU.
A few years ago the Electronic Structure Library (ESL) project was launched within CECAM, with the idea of fostering a new paradigm of library-based development for electronic structure by creating a common online repository of high-quality software libraries, programming interfaces and data standards in the field of electronic structure, which will facilitate reuse of code, interoperability between different code bases, rapid and efficient evolution to new computer architectures, and development of new methodologies.
ESLW: “drivers|” has been the fourth edition of this series of workshops.
Adopting the successful format of previous years, the present two week workshop gathered a small team of coders connected with a number of different electronic structure codes. The first couple of days were devoted to presentations and discussions focusing on an analysis of the available ESL “utility tools” and on the opportunities for code reuse and standardization created and realized so far and on the actions needed to foster them further. The rest of the workshop was dedicated to the coding effort focusing on “drivers” .
Complementary to the previous ESL workshops, which addressed solvers for a variety of specific representations of the KS problem, “drivers” targeted the problem of extracting existing KS solvers from major Electronic Structure codes and refactor them as libraries in a representation-agnostic fashion, resulting in further code-interoperability.
The two main iterative eigensolvers employed in the pw.x code of the Quantum ESPRESSO distribution have been completely disentangled from the rest of the code and converted to libraries. The solvers make efficient use on a Linear Algebra domain-specific library LAXlib developed within the MaX CoE which has been tuned to make use of the Eigenvalue SoLvers for Petaflop-Applications (ELPA) replacement to ScalaPack when convenient. Solvers exploit MPI parallelization and in addition to basis-set component distribution, a parallelization over target states is possible, as well as a specific parallelization for the dense linear algebra operations using ScalaPack or ELPA. Generic k-point as well as Gamma specific versions of the solvers are included. The Reverse Communication Interface (RCI) paradigm, allowing for a complete abstraction from the basis type and the interface used to perform the matrix-vector operations, has also been implemented for one of the solvers.
A toy code implementing the Cohen-Bergstresser empirical-pseudopotential method has been included to exemplify the use of the solvers and allow a quick test of their functionalities. A git branch to contribute additional toy codes based on different basis set representations, tight-binding or real-space, to explicitly demonstrate the representation-agnostic nature of the solvers has been created and is under development. Contribution to the KS_Solvers library of additional solvers from other codes is also foreseen.
The software developed during the Workshop is hosted by the e-cam gitlab server as a sub-project of the ESL initiative (gitlab.e-cam2020/esl/ESLW_Drivers) and may serve as an ingredient of an Electronic Structure Library Demonstrator to be built to showcase ESL functionalities.