The goal of our research is to obtain a quantitative understanding of the physical phenomena encompassed by quantum chromodynamics (QCD), the fundamental theory governing the strong interactions of quarks and gluons. Achievement of this goal requires terascale numerical simulations. Such simulations are necessary to solve the fundamental problems in high energy and nuclear physics that are at the heart of the Department of Energy's large experimental efforts in these fields. The SciDAC Program "National Computational Infrastructure for Lattice Gauge Theory" is enabling U.S. theoretical physicists to develop the software and prototype the hardware they need to carry out terascale simulations of QCD.
Under this program our collaboration has developed efficient, core software for carrying out terascale simulations and is using this software in large scale production on US Department of Energy computational resources, including the special-purpose Brookhaven National Laboratory QCDOC and the Fermilab and Jefferson Lab cluster computing facilities.
Further development of the software and high level algorithms have brought dramatic improvements in the productivity of our terascale resources. This presentation provides details of progress in the past year.
The core software is a multi-module three-level API tuned to the needs of lattice QCD. These modules compartmentalize message passing, single-processor linear algebra, data parallel I/O and data parallel linear algebra. They are the general-purpose building blocks for physics application code. The code is immediately portable to any MPP architecture with MPI. We have also written optimized versions of key components for specific MPP architectures. The top-level API is available in a standard C version and in a powerful C++ version.
In addition to further optimization for the QCDOC and commodity clusters, our current priority is optimizing the code suite for new leadership class architectures, such as the IBM BG/L and Cray XT-3 and in optimizing low-level linear algebra modules for multicore processors.