Simulation program for two-flavour lattice QCD

Lattice QCD simulations are performed on high-performance parallel computers with hundreds or more processing units. As larger and larger lattices are considered, the use of efficient simulation algorithms becomes increasingly important.

The DD-HMC algorithm combines domain decomposition ideas with the Hybrid-Monte-Carlo algorithm and the Sexton-Weingarten multiple-time integration scheme. It applies to the Wilson formulation of lattice QCD (and its relatives) and is designed to be particularly efficient at lattice spacings less than 0.1 fm and at small quark masses. Being based on domain-decomposition methods, the algorithm is also well suited for parallel processing.

Program scope

The source code that can be downloaded from this page implements the DD-HMC algorithm for lattice QCD with the Wilson plaquette action and a doublet of mass-degenerate O(a)-improved Wilson quarks. The code can be used without any modifications, but may also serve as starting point for the development of simulation programs for other forms of lattice QCD (2+1 flavour QCD, in particular, and formulations with 6-link gauge actions).

A simulation program for quenched QCD is also included, as well as a set of modules for the solution of the Dirac equation, using a deflated Schwarz-preconditioned GCR solver. These parts of the source tree can be used separately if so desired.

All programs parallelize in 0,1,2,3 or 4 dimensions, depending on what is specified at compilation time. They are highly optimized for machines with current Intel or AMD processors, but will run correctly on any system that complies with the ISO C89 (formerly ANSI C) and the MPI 1.2 standards. So far the code has been extensively used on PC clusters with Myrinet or Infiniband networks, on a CRAY XT3, on the IBM "MareNostrum" cluster and on IBM Blue Gene computers (machine-specific accelerations for the Blue Gene/L have been added to the program by Björn Leder and Rainer Sommer).

For the purpose of testing and code development, the programs can also be run on a desktop or laptop computer. All that is needed for this is a compliant C compiler and a local MPI installation such as Open MPI .


The DD-HMC algorithm is described in

   Schwarz-preconditioned HMC algorithm for two-flavour lattice QCD,
   Comput. Phys. Commun. 165 (2005) 199 (Science Direct , arXiv.org )

(the name DD-HMC was introduced later). In this paper details are given for the case of the standard Wilson theory, but the modifications required for the improved theory are obvious.

Normally the DD-HMC algorithm spends large fraction of the time in the subprogram that solves the lattice Dirac equation for a specified source field. The solver used for this task combines the classical Schwarz alternating procedure with a standard Krylov space solver (the GCR algorithm). Full details can be found in

   Solution of the Dirac equation in lattice QCD using a domain decomposition method ,
   Comput. Phys. Commun. 156 (2004) 209 ( Science Direct , arXiv.org )

Deflation acceleration is now also included in the program. For a description of this technique see

   Local coherence and deflation of the low quark modes in lattice QCD,
   J. High Energy Phys. 07 (2007) 081 ( JHEP, arXiv.org )

   Deflation acceleration of lattice QCD simulations,
   J. High Energy Phys. 12 (2007) 011 ( JHEP , arXiv.org )

To be able to understand the parameters of the DD-HMC algorithm, and thus to run the simulation program correctly, some familiarity with these papers is probably required.

Program documentation

The simulation program has a modular form, with strict prototyping and a minimal use of external variables. Each program file contains a small number of externally accessible functions whose functionality is described at the top of the file.

The data layout is explained in various README files and detailed instructions are given on how to run the main simulation program. Further documentation files describe the built-in self-monitoring system, the implementation of the lattice Dirac operator and other important program elements such as the random number generator.

The correct functioning of the individual modules can always be verified by running the check programs that are included in the distribution. These programs are often fairly short and may serve to illustrate the proper use of the programs in the module directories.


The publicly available DD-HMC releases are

   DD-HMC-1.2.2.tar.gz (latest stable release)

See the CHANGELOG file for summary of the modifications that were made from one version to the next. The packages contain the source code, usage instructions and other documentation files. After unpacking, first read the README file in the top directory.


The software may be used under the terms of the GNU General Public Licence (GPL).

Last updated 19 February 2015