Quick Links

USQCD Software Home

Chroma Tutorials through the ages

HackLatt'08 Chroma Tutorial

HackLatt'07 Chroma Tutorial

HackLatt'06 Chroma Tutorial

Numerical methods lecture series by Balint Joo Using QDP++

Doxygen Documentation

CVS Statistics

CVS ChangeLog

Individual Module Web Pages

QMP

QMT

QLA

QIO

QDP/C

QDP/C++

QOP

CG DWF

C-LIME

ADAT

BAGEL QDP

Application Code Web Pages

Chroma

CPS

FermiQCD

MILC


The Chroma Library for Lattice Field Theory


The Chroma package supports data-parallel programming constructs for lattice field theory and in particular lattice QCD. It uses the SciDAC QDP++ data-parallel programming (in C++) that presents a single high-level code image to the user, but can generate highly optimized code for many architectural systems including single node workstations, multi-threaded SMP workstations (soon to come), clusters of workstations via QMP, and classic vector computers.


Code releases:

The current version of chroma is chroma-3.28.3.

This version of the code uses a reimplementation of a level 3 dslash routine with compiler intrinsics. The old version of the dslash is still available with the --enable-sse-wilson-dslash-old configure switch.

To use this version of Chroma one should compile underneath a suitably recent version of QDP++ (v1.24.5 or higher)

Source Code

The chroma source code is available in a tar-ball and under CVS.

The current source code release is chroma-3.28.3.tar.gz.

Previous versions can be found in the release directory

Direct source code access instructions via CVS are here.

What? No RPMS?

As it turned out the packaging of RPMs is not really as straightforward to automate as we'd like. Also there are worries about availability of shared libraries on some systems. Therefore we have currently suspended the rolling of RPM distributions

Dependencies

In order to build Chroma you'll need to have installed

  • QDP++ and its dependencies. You may need the following tarballs:
    • QDP++ itself: The current recommended version is qdp++-1.25.1.tar.gz for non SSE and 64 bit SSE (x86_64) platforms. For 32 bit SSE platforms we recommend qdp++-1.24.6.tar.gz
    • Libxml2: If you don't have this, you can use this copy of the source. On a QCDOC a hacked version is needed, the source for which is here. On Linux and Cygwin Systems there is a package for libxml2. On RedHat systems it is called "libxml2-devel".
    • QMP Message Passing for parallel builds: The current version of the source for QMP is qmp-2.1.6.tar.gz.
    • if you want to work on the BlueGene or the QCDOC you may want some of the optimizations from bagel_qdp-1.1.7.tar.gz. For this you will also need the BAGEL assembler generator package from Peter Boyle and agree to all his requests on his web page.
  • For RHMC coefficients you may want The Gnu Multiple Precision Library GMP. On Linux systems you may have this pacakged as gmp-devel or gmp3-dev
  • For QCDOC or BlueGene you will need the bagel_wilson_dslash-1.4.6.tar.gz to provide a BAGEL generated Wilson Dslash. For this you will also need the BAGEL assembler generator package from Peter Boyle and agree to all his requests on his web page.

Relevant source code links:

  • QDP++ - SciDAC C++ data-parallel programming interface
  • QMP - SciDAC message passing programming interface
  • USQCD Software - home page for software distributions

User Information

Tutorials from 2005, 2006, 2007, and 2007 are available. There is also a collection of notes in the source distribution.

In order to give credit and recognition to those who have put humongous effort into writing software for you, we require that if you use Chroma results in your papers you MUST cite the following und er the appropriate circumstances:

Always:
R. G. Edwards (LHPC Collaboration), B. Joó (UKQCD Collaboration), "The Chroma Soft ware System for Lattice QCD", arXiv:hep-lat/0409003, Proceedings of the 22nd International Symposium for Lattice Field Theory (Lattice2004), Nucl. Phys B1 40 (Proc. Suppl) p832, 2005.
If using SSE Optimised Dslash code (Intel P4 and other SSE compliant hardware):
C. McClendon, "Optimized Lattice QCD Kernels for a Pentium 4 Cluster", Jlab preprint, JLAB-THY-01-29, http://www.jlab.org/ ~edwards/qcdapi/reports/dslash_p4.pdf
If using output from the BAGEL assembly generator (QCDOC, IBM Power, UltraSPARC and Alpha hardware):
P. A. Boyle. See references within the Bagel home page.

This list may change as new citations may appear or preprints work their way through the publication process. Please revisit this list to get the latest version for your paper before publishing.

Developer Information

Recent news about software releases are available. There is a text and an html version of the ChangeLog available. The results of the nightly builds are also available.

There is a software snapshot of the CVS head revision, available along with documentation produced by doxygen which can be found in the doc subdirectory. There is also CVS statistics.

webmaster@usqcd.org