Open Source Software for Microscopic Calculations

Presentation abstracts (June 25, 2002)

Mondriaan, partitioning software for sparse matrix computations

Rob Bisseling
Universiteit Utrecht

Mondriaan is a two-dimensional, multilevel, hypergraph-based package for the partitioning of a rectangular sparse matrix, as a sequential preprocessing step for parallel sparse matrix-vector multiplication. The partitioning is done recursively, each time splitting a rectangular submatrix into two parts, trying to minimise communication while maintaining a good load balance. The package (by Vastenhouw and Bisseling) is written in C and it is distributed under the GNU license.

In this talk, it will be demonstrated how Mondriaan can be used in applications from physics. Our first application is solving an eigensystem to find the steady state in a Markov model representing DNA electrophoresis in a gel, and we compare a partitioning based on the physical structure of polymer configurations to a partitioning obtained by using Mondriaan.

Our second application is finding the minimum-energy configuration of a 20,000-particle sample of amorphous silicon. We compare our geometry based partitioning (using BCC, FCC, and HCP sphere packings) to a partitioning obtained by translating the problem to a sparse matrix formulation and then using Mondriaan.

See also: http://www.math.uu.nl/people/bisseling/Mondriaan/mondriaan.html

(Presentation in PDF format)


Key techniques for success in open-source science

Paul F. Dubois
Center for Applied Scientific Computing, Lawrence Livermore National Laboratory

Scientific programming is dominated by change. Perhaps more than any other programming discipline, scientific programming requires a special emphasis on maintaining correctness while continuously changing the program. The author's strategy for achieving this will be presented. Steering plays a key role, along with techniques for the design of reusable mathematical and discipline-specific middleware.

(PowerPoint presentation)


A parallel FFT and a parallel interatomic potential for silicon

Stefan Goedecker
CEA Grenoble

I will give an overview over two small software packages that I have developped and made available under the GPL license. The first one is a 3-dimensional highly optimized FFT. There are serial versions for vector machines and RISC machines and a parallel OpenMP version for shared memory parallel computers, all with exactly the same interface. In addition there is a MPI version for distributed memory parallel computers. The second piece of software is an OpenMP program that evaluates the EDIP and Lenosky interatomic potentials for silicon in a very userfriendly way.


The PWSCF package

Paolo Giannozzi
NEST-INFM, Scuola Normale Superiore di Pisa

PWSCF is a collection of codes for electronic structure and phonon calculation in the framework of Density-Functional Theory, using a plane-wave basis set and pseudopotentials. PWSCF was released under an open-source licence only recently (may 2001), but it has been developed and used in real calculations for quite a long time (~ 15 years) under various versions, in several different groups, and for many computer architectures. As a consequence it is easily portable, highly tested, has a solid implementation of ultrasoft pseudopotentials and an effective MPI parallelization.

Future plans for PWSCF include:
- better code structure, performances, readability, documentation
- the release of an "educational" version
- interoperability with other codes (in particular with codes for Car-Parrinello molecular dynamics)


The ABINIT software project

Xavier Gonze, Gian-Marco Rignanese
Université Catholique de Louvain. Belgium
Gilles Zerah
Commissariat à l'Energie Atomique, France

The computation of electronic structure, total energy, forces and many related properties of condensed matter, thanks to density-functional theory (DFT), is a field in constant progress. A DFT software project that wants to stay at the frontier of knowledge cannot be the work of a single individual, neither of a small group. Also, up-to-date software engineering concepts can considerably ease the harmonious development of such software.

The ABINIT project relies upon these ideas: reliability, portability, readibility and freedom of sources are emphasized, in the course of developping a sophisticated plane-wave pseudopotential code. More than 200 automated tests secure existing capabilities (concept of self-testing), despite heavy development efforts and the associated bug generation; thanks to MAKE and PERL scripts, and CPP directives, the unique set of Fortran90 source files (about 100000 lines) can generate sequential (or parallel) object code for many platforms, under Unix/Linux, DOS/Windows and MacOS; strict coding rules have been followed to make the source readable; the documentation is extensive, including online help files, tutorials, HTML-formatted sources. The whole package is distributed under the GNU General Public Licence. Different groups, worldwide, contributes to the development of the package. For more information, see http://www.abinit.org


Free Software, the GNU project, and the FSF

Georg Greve
Free Software Foundation Europe Presentation


Distributed applications for long time scale simulations of solid systems

Graeme Henkelman, (a)
Kurt Ding, Todd Detwiler, and Hannes Jónsson (a,b)
(a) Department of Chemistry, University of Washington, Seattle, Washington 98195-1700, USA
(b) Faculty of Science, VR-II, University of Iceland, 107 Reykjavík, Iceland

An important challenge in theoretical chemistry is the time scale problem. Atomic motion can be simulated directly by integrating Newton's equations over a time scale of nanoseconds, but most interesting chemical reactions take place on a time scale of seconds. We have developed a methodology and accompanying software to help bridge this gap using harmonic transition state theory. Possible reactive events and their rates are found with a saddle point finding method called the dimer method. When enough events are found, a kinetic Monte Carlo algorithm is used to choose which event occurs so that the system's position can be advanced in time. This methodology has been used to study the surface roughness of aluminum and copper homoepitaxial growth at 80K with experimentally relevant deposition rates of monolayers per minute. The implementation of this methodology takes advantage of its important feature that the dimer searches are independent and can be performed in a distributed computing fashion. Distributing the computation over many processors effectively lengthens the time interval a simulation can cover. Because many scientific calculations can be implemented like this, in a highly parallel way, we have developed a simple framework for independently distributed applications, FIDA, that enables the separation of network computing tasks from the scientific computing tasks. The current implementation of FIDA is based upon a client/server architecture, similar to the popular seti@home and distributed.net projects. With FIDA, a scientist focuses on implementing their application as dynamically loadable library modules conforming to a predefined simple protocol. These modules can be deployed with FIDA initially and updated if the desired calculation changes. To run a different application, a FIDA server administrator simply reconfigures the server to load a specified application module. After that, any FIDA client will have its application module updated accordingly and automatically. The FIDA framework can be downloaded from http://fida.chem.washington.edu and the long time scale simulation project, EON, which is built on FIDA can be found at http://eon.chem.washington.edu.


The Molecular Modelling Toolkit

Konrad Hinsen
Centre de Biophysique Moléculaire, Orléans, France

The Molecular Modelling Toolkit (MMTK) is an Open Source library for simulations of molecular systems, with a special emphasis on biomolecules. It is written in and for Python, with time-critical parts implemented in C for speed. The presentation will discuss technical aspects of MMTK as well as specific Open Source aspects: use of other Open Source products within MMTK, use of MMTK in other Open Source projects, and the influence of the Open Source approach on the development of MMTK.

(Presentation in PDF format)


The CAMP Open Software project

Karsten W. Jacobsen
Danmarks Tekniske Universitet, Copenhagen, Denmark

The CAMPOS project consists of a continuously changing set of programs dedicated to performing and analyzing atomistic simulations. The project includes electronic structure codes for density functional theory (DFT) calculations and molecular dynamics/quasicontinuum codes based on effective medium theory interatomic potentials. The project is characterized by a rather diverse set of codes which the user can control and which can also collaborate with each other through Python interfaces. The computational engine behind our plane-wave-based DFT code is for example written in Fortran with a NetCDF interface while the MD codes are implemented using a combination of Python and C++. We make extensive use of public domain software for both numerical tasks, data analysis, and visualization purposes. In our experience the Python interfacing makes the code complex easier and more flexible to use and also to extend. In the talk I shall briefly describe some of the components in CAMPOS and discuss some of the advantages and possible pitfalls in connection with the Python interfacing.


Charm++, NAMD, LeanMD and Parallel Frameworks

Laxmikant Kale
University of Illinois at Urbana Champaign

I will present some of our software for parallel computing for Science and Engineering applications. The objective of our work is improve performance and programmer productivity in CSE applications. Charm++ is an object oriented system that allows application developers to specify their applications in terms of interacting entities (objects or threads), leaving the decisions of which processor they run on to the system. Since the entities are migratable, the system can automatically do measurement-based load balancing, checkpointing, shrinking and expanding the sets of processors used by an application, out-of-core execution, etc. The software has been freely distributed since its inception, in both source code and binary form. Using Charm++, we have developed NAMD (as a part of an intense collaboration with Prof. Klaus Schulten and Prof. R. M. Skeel), an efficient and scalable parallel MD program. We are developing frameworks to facilitate development and interoperation of domain specific codes, such as unstructured grids, particle codes in general with specialized frameworks for computational cosmology (N-Chilada) and molecular dynamics (leanMD). I recent collaboration aims at a new framework for Ab Initio MD. I will describe the basic design philosophy behind the frameworks, as a mechanism for reuse, and illustrate it with leanMD.

Links:
http://charm.cs.uiuc.edu
http://www.cs.uiuc.edu/people/faculty/kale.html


Octopus: a first-principles tool for electron-ion dynamics

Miguel Marques, Alberto Castro
Universidad del País Vasco

We present a computer package aimed at the simulation of the electron-ion dynamics of finite systems, both in one and three dimensions, under the influence of time-dependent electromagnetic fields. The electronic degrees of freedom are treated quantum mechanically within the time-dependent Kohn-Sham formalism, while the ions are handled classically. All quantities are expanded in a regular mesh in real-space, and the simulations are performed in real-time. The method employed proved quite reliable and general, and has been successfully used to calculate linear and non-linear absorption spectra, harmonic spectra, laser induced fragmentation, etc. of a variety of systems, from small clusters to medium sized quantum dots.


Pseudopotential generation and cpw2000 plane-wave code

Jose Luis Martins
INESC-MN and Instituto Superior Tecnico, Lisboa

We maintain a stable pseudopotential generation code and keep developing a self-consistent pseudopotential plane-wave code. The first has been available on the web for a decade, and has at its core the atomic code of Sverre Froyen. The second has its roots in the Berkeley codes and should be released under a GPL once some subroutines of unknown origins have been rewritten. Both codes are kept simple and run in many platforms with several compilers.

For the pseudopotential generation code Carlos S. Loia has developed a graphics interface in perl/tk that guides the user through the steps necessary to generate a pseudopotential and test it at the atomic level without having to worry about the filename conventions of the command line approach.

The cpw2000 is a research code for DFT total energy calculations with pseudopotentials and plane-waves. It allows to perform molecular dynamics simulations, or structural optimization with the option of having a variational cell-shape. It is modular and portable, and the optimization is concentrated in a small number of core subroutines. It is easy to use in the command line style of the seventies, and compiles without modifications in many platforms. One of our interests is the use of group theory within the code, including the recognition of the space group.


Development of Atomic Simulation Tools using Python and C++

Jens Jřrgen Mortensen
Technical University of Denmark

No single language is good at everything. We are using a combination of Python and C++ to develop a classical molecular dynamics (MD) tool and a density functional theory (DFT) program. We use a compiled language (C++) to produce highly optimized code for those parts where efficiency is important and an interpreted language (Python) to glue these parts together - this gives optimal efficiency and flexibility. Python, which is a very high-level object oriented language, is also used as a scripting language for controlling a simulation. The presentation will focus on how we have divided the MD and DFT codes into Python and C++ parts. Parallelization of the MD code will also be discussed.

(Presentation in OpenOffice or compressed PostScript format)


The molecular viewer GAMGI

Carlos Pereira
Instituto Superior Técnico
Lisboa, Portugal

Our goal is to provide a free computer package to construct, view and analyse atomic structures, as powerful and simple to use as possible.

We believe that open societies, where knowledge is shared and discussed, promote innovation and justice, freedom and intelligence, and ultimately better individuals and stronger economies. From Galileu, Descartes and Newton, to Darwin, Faraday and Einstein, the development of Science has been always based in the open discussion, in the unrestricted exchange of information. Unfortunately, recent changes in the trends governing intellectual and industrial knowledge have modified considerably this panorama, and knowledge is becoming more and more something that can be owned and restricted from the general public.

We are thus developing GAMGI - General Atomistic Modelling Graphic Interface, a computer package that can be inspected, modified, distributed and even included in other programs, according to the terms of the GPL license. Physical Science students can investigate the code to study the mathematical, physical and chemical algorithms implemented in GAMGI. Computer Science students can study the code to learn how to design the architecture, the data infrastructure, and the flux of information of a big application, involving very different technologies. As the code is free, GAMGI can be installed in any computer, can be recompiled when the operating system changes, can be copied as many times as wished, can be immediately investigated and hopefully corrected when bugs are found. Users should see GAMGI as a common project, something that belongs to the whole community, to which they are invited to contribute, if they wish so.

GAMGI aims to be useful for: 1) the scientific community working in Atomistic Modelling, that needs a graphic interface to build input data and to view and analyse output data, calculated with Ab-Initio and Molecular Mechanics programs; 2) the scientific community at large, studying Chemistry, Physics, Materials Science, Geology, etc., that needs a graphic interface to view and analyse atomic structural information and to prepare images for presentations in classes and seminars; 3) teaching chemistry and physics in secondary schools and universities, even inviting students to install and run GAMGI at home; 4) science promotion, in schools, exhibitions and science museums.


CP2K: flexible framework for atomistic simulations

Ari P. Seitsonen
Centro Svizzero di Calcolo Scientifico

CP2K is a generic frame for atomistic dynamical simulations, both from first principles and classically. It is written in Fortran 95 as a distributed, international effort, and it currently comprises the methods for classical molecular dynamics, polarisable force field and density functional theory with a localised Gaussian basis for wave functions and a plane wave basis for the density. We introduce the basic methods, and our general principles for coding. We also discuss the difficulties which we have encountered in the fortran 90/95 programming development environment, like the file dependencies.


Automating Software Documentation with ROBODoc

Frans Slothouber

It is difficult to keep documentation in sync with source code. One of the reasons is that documentation and source code are stored in separate files that usually also require different editors to edit them. ROBODoc solves this problem. Specially formatted documentation headers are extracted from source files, reformatted in HTML, SGML, TROFF, ASCII or RTF, and stored in a different files. This way ROBODoc allows you to include your documentation in the source code. You can edit the source code as well as documentation in a single file with your favourite editor. This makes it easier to update the documentation as you code and keep your documentation in sync with your source code. The presentation focuses on the strengths and weaknesses, use, and future of ROBODoc.


Using Python for intense particle beams simulations

Eric Sonnendrucker
Universite Louis Pasteur, Strasbourg

A model often used for intense particle beams simulation, where the space charge created by the particles themselves generates an electromagnetic field of magnitude comparable to the applied focusing field, consists of the Vlasov-Poisson equations. As the solution of the Vlasov equation is a distribution function describing the position of the particles in phase space, the dimensionality is high, six dimensions when there are no symmetries. Therefore the method of choice for the numerical resolution is most of the time, the so-called Particle-In-Cell (PIC) method, which consists in following the trajectories of macro particles. However, this method involves important numerical noise and for some problems it is better to use methods based on a phase space grid.

During this talk we shall present two codes solving the Vlasov-Poisson equations on a phase space grid. The first of those is written in Fortran and completely interfaced to the Python interpreter which is used as a glue. All the numerically intensive parts are written in Fortran 77 and 90 with an object oriented Python interface which makes it relatively fast to combine the different pieces to simulate different kinds of accelerators and beams. The second code is written in C++ and uses Blitz. Python was used to write a GUI to enable the user to enter the data and do some post-processing and visualization without having to learn anything about the code.


PINY_MD: A scalable, extensible open-source software development platform and application tool for molecular dynamics simulations

Mark E. Tuckerman
New York University
Glenn J. Martyna
IBM T. J. Watson Research Laboratory

As the field of molecular dynamics (MD) grows and broadens and computational platforms place greater demands on software efficiency and parallel scalability, it is important to have a software base that is easily developable and can be used for a wide variety of applications and simulation types. The introduction of such a software base is the primary goal of the PINY_MD project. In its current version, PINY_MD is a multi-purpose simulation software package capable of performing MD simulations using classical force fields, ``on the fly'' ab initio electronic structure calculations within the Car-Parrinello scheme, and mixed force field/ab initio calculations all within the same framework. Nuclear quantum effects can also be included using the path integral methodology developed by the authors. The code make use of state-of-the-art integration algorithms and techniques for generating different statistical ensembles and runs on a wide variety of scalar and parallel platforms with high efficiency. The design of the current C version of the code employs a tight coupling between functions and data to give the code a quasi object-oriented structure. In the two talks to be presented by the authors, we shall discuss the current capabilities of PINY_MD as well as our vision for transforming the present verion of PINY_MD into an extensible, object-oriented, developable framework and for building a community of developers and users.


GROMACS: An efficient and versatile software package for molecular simulation

David van der Spoel
University of Uppsala

GROMACS 3.0 is the latest release of a versatile and very well optimized package for molecular simulation. Large efforts have been devoted to achieve extremely high performance on both workstations and parallel computers. The design includes an extraction of virial and periodic boundary conditions from the loops over pairwise interactions, and special software routines to enable rapid calculation of x-1/2. Inner loops are generated automatically in C or Fortran at compile time, with optimizations adopted to each architecture. Assembly loops using SSE and 3DNow! multimedia instructions are provided for x86 processors, resulting in exceptional performance on inexpensive PC workstations. The user interface is simple and consistent, based on standard command line arguments with self-explanatory functionality and integrated documentation. Future directions include the use of XML based file formats, easing portability of data between software packages.