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.
|