calque

Schools

Basic techniques and tools for development and maintenance of atomic-scale software.

February 11, 2008 to February 15, 2008
Location : CECAM, Lyon, France

Organisers

  • Xavier Gonze (Catholic University of Louvain, Belgium)
  • Damien Caliste (Alternative Energies and Atomic Energy Commission (CEA), France)
  • Yann Pouillon (University of Cantabria, Spain)
  • Francesco Sottile (Ecole Polytechnique, Palaiseau, France)
  • Matthieu Verstraete (Universite de Liege, Belgium)
  • Alberto Castro (University of Zaragoza, Spain)

Supports

   CECAM

Description

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

[1] Software maintenance. Concepts and practice. (2003) 2nd ed.
P. Grubb & A.A. Takang, World Scientific (London)
[2] The mythical man-month. Essays on software engineering. Anniversary edition (1995) Frederick P. Brooks, Jr. Addison-Wesley
[3] http://www.tuxedo.org/~esr/writings/cathedral-bazaar
[4] http://www.extremeprogramming.org/rules.html
[5] http://www.xs4all.nl/~rfsber/Robo/robodoc.html
[6] http://bazaar-vcs.org
[7] http://subversion.tigris.org
[8] http://www.unidata.ucar.edu/software/netcdf
[9] http://www.etsf.eu/index.php?page=tools
[10] http://www.etsf.eu/index.php?page=standardization
[11] http://www.xml.com
[12] http://www.python.org
[13] http://www.intel.com/software/products/compilers/docs/linux/idb_manual_l.html and http://sourceware.org/gdb/download/onlinedocs/gdb.html
[14] http://www.gnu.org/software/autoconf
[15] http://www.gnu.org/software/automake