Registered User Area
Username

Password

No username/password ?
Sign up here

Lost your password ?

About CECAM
Home 
Welcome 
Council 
Staff 
How to get to
    CECAM Headquarters 


CECAM Prize 

Proposals
Submitting a proposal 

Activities
Workshops 
Tutorials 
Visitors Program 

Network
European actions 
Multi-nodal structure 
Openings 

Useful links
Multimedia 
2008 Workshops 

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

February 11, 2008 to February 15, 2008

Location : CECAM, Lyon, France  [hotels...]

 Details
 Participants
 Files
 

Organisers

  • Xavier Gonze (Universite Catholique de Louvain)
  • Damien Caliste (CEA Grenoble)
  • Yann Pouillon (Universidad del País Vasco UPV/EHU)
  • Francesco Sottile (LSI - Ecole Polytechnique)
  • Matthieu Verstraete (University of York)
  • Alberto Castro (Free University of Berlin)

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.

Scientific Objectives

The goal of the tutorial will be to improve the ability of the participants to produce
software that will have a long life cycle, that is adequate for
group software development, that is re-usable, that can better communicate with
other atomic-scale software, that executes correctly and is portable,
with an acceptable execution speed. We will focus on concepts and tools
that are independent of the scientific programming language used by
the developer (FORTRAN or C/C++). Although
most of the exemples will be taken from the software and standards developed
within the Nanoquanta Network of Excellence (http://www.cmt.york.ac.uk/nanoquanta), the tutorial will aim at a high level
of applicability, and thus should benefit to every developer of atomic-scale software.
Both the example softwares and the tools (at the exception of Xdb) that will relied upon
are available under a free software licence, so that the participants will encounter
no barrier to immediately apply the formation when back in their research institution.

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


CECAM - Centre Européen de Calcul Atomique et Moléculaire
Station 13, Bat. PPH, 1015 Lausanne, Switzerland