This five-day tutorial, is intended for an audience of scientists involved
in software development for atomic-scale simulations. The following topics will be covered :
(1) Basic concepts of software maintenance
(concepts [1-4] ; coding rules, ROBODOC [5]) ;
(2) Version management tools
(concepts ; bzr [6] and svn [7]) ;
(3) Code re-use. Libraries.
(concepts ; NetCDF [8], ETSF_IO [9], LibXC) ;
(4) File formats. Conversion tools.
(concepts ; NetCDF [8] , NQ FileFormat [10], ETSF_IO [9], XML [11], pspconvert [9]) ;
(5) Scripting. Introduction to Python [12] ;
(6) Testing, debugging, profiling, optimizing.
(concepts - idb and gdb [13] ) ;
(7) Build system : the autotools and platform specificities [14,15].
Each theme will be addressed thanks to a mix of :
presentation of basic concepts, and general information ;
introduction to related specific tools, with examples ;
detailed presentation of how it works for selected atomic-scale software ;
prepared hands-on exercices ;
working sessions, during which the student work on a self-defined project ;
short presentations of the integration of these concepts for different atomic-scale software.
References
Belgium
Xavier Gonze
(UCLouvain)
- Organiser
Matthieu Verstraete
(University of Liege)
- Organiser
France
Damien Caliste
(CEA)
- Organiser
Francesco Sottile
(Ecole Polytechnique)
- Organiser