Electronic Structure Library coding workshop: utilities toolbox
Location: CECAM-HQ-EPFL, Lausanne, Switzerland
Organisers
In July 2014 CECAM's Electronic Structure Library (ESL) effort was launched in an extended software development workshop hosted by the CECAM HQ at Lausanne, with the idea of segregating shared pieces of software as libraries that could be contributed and used by the community. These could also become a target for re-coding by software engineers as hardware evolves. During the workshop, the tools and infrastructure for the project were prepared, and the first contributions were included and made available online (http://esl.cecam.org)
In this occasion we propose to develop the library's potential further by introducing a set of utilities, or a toolbox. The idea is to focus on sets of many not-too-large routines/modules that every standalone program has to include, which are not very demanding if taken separately, but which constitute a substantial effort as a whole. These, therefore, represent one of the major barriers in the development of new programs. The fact that there are many mutual dependencies for such a toolbox means that it is not easy for it to arise spontaneously by separate single contributions to the ESL from the community. Rather, it requires some initial coordinated planning and decision-making for coding and data standards and common low-lying utilities (e.g., dealing with input, I/O in parallel setups, timing, memory allocation and error handling, standards of language, etc.). Some examples of the medium-level utilities that would then form the bulk of the toolkit are:
-geometry tools: lattice vectors, atomic positions, k-grid, format conversion, finding neighbours
-atomic tools: processing of pseudos, generation of bases and population analysis, evaluation of radial functions and their gradients, multiplication by ylm functions
-grid tools: grid definition and FFT handling, multi-grid solvers
-matrix algebra tools: interfacing of iterative eigensolvers to low-level matrix storage and operations
-relaxation and dynamics tools: MD and relaxation routines tailored for electronic structure codes (different requirements to force-field codes), analysis of MD trajectories
-pre- and post-processing tools and scripts: XML processing, task farming, plotting of DOS, bands, and Fermi surfaces, interfacing to visualisation packages
The proposed workshop will act as a kick-starting process for the development of such a utilities toolbox. In a similar spirit to the initial extended workshop in which the ESL was set up, the focus will be on getting developers together to produce concrete results within the workshop itself, i.e., agreeing on common practices, and then coding new routines or adapting existing ones. The format we propose, therefore, is a one-week coding workshop (Monday-Saturday noon), with a team of 10 people connected with major (but varied) software codes in the community (from which existing routines might be segregated). The first day only will be dedicate to initial discussion between the coding team, the Advisory Committee of the ESL, and other invited stakeholders.
References
Fabiano Corsetti (Synopsys QuantumWise) - Organiser
Germany
Micael Oliveira (Max Planck Institute for the Structure and Dynamics of Matter) - Organiser
United Kingdom
Arash Mostofi (Imperial College London) - Organiser
United States
Volker Blum (Duke University) - Organiser