The QDP++ Framework for Lattice QCD
The QDP++ interface provides a data-parallel programming environment suitable for Lattice QCD where operations in operator/infix form can be applied on lattice wide objects. The interface provides a level of abstraction such that high-level user code written above the interface can be run unchanged on a single processor workstation or a collection of multiprocessor nodes with parallel communications. Architectural dependencies are hidden below the interface. A variety of types for the site elements are provided. To achieve good performance, overlapping communication and computation primitives are provided.
In order to build QDP++ you will need
Here is the current pdf version of the manual, and there is also an html version. There is documentation produced by doxygen. A user guide is also available.
The reference is R. G. Edwards, B. JoĆ³, "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. This paper describes QDP++ as well as the Chroma code that uses it. Please cite (at least) this paper in publications that use the code.
The motivation for this development comes from the U.S. Dept. of Energy SciDAC program. See the USQCD home pages for more details.