136
A. Tabuchi et al.
4 Performance of Lattice QCD Application
This section describes the evaluations of XACC performance and productivity for a
lattice quantum chromodynamics (Lattice QCD) application.
4.1 Overview of Lattice QCD
The Lattice QCD is a discrete formulation of QCD that describes the strong
interaction among “quarks” and “gluons.” While the quark is a species of elementary
particles, the gluon is a particle that mediates the strong interaction. The Lattice
QCD is formulated on a four-dimensional lattice (time: T and space:ZYX axes).
We impose a periodic boundary condition in all the directions. The quark degree
of freedom is represented as a field that has four components of “spin” and three
components of “color,” namely a complex vector of 12 × N site components, where
N site is the number of lattice sites. The gluon is defined as a 3 × 3 complex matrix
field on links (bonds between neighboring lattice sites). During a Lattice QCD
simulation, one needs to solve many times a linear equation for the matrix that
represents the interaction between the quark and gluon fields. This linear equation
is the target of present work. The matrix acts on the quark vector and has nonzero
components only for the neighboring sites, and thus sparse.
4.2 Implementation
We implemented a Lattice QCD code based on the existing Lattice QCD application
Bridge++[5]. Since our code was implemented by extracting the main kernel of the
Bridge++, it can be used as a mini-application to investigate its productivity and
performance more easily than use of the original Bridge++.
Figure 14 shows a pseudo code of the implementation, where the CG method is
used to solve quark propagators. In Fig. 14, WD() is the Wilson-Dirac operator[6],
U is a gluon, the other uppercase characters are quarks. The Wilson-Dirac operator
is a main kernel in the Lattice QCD, which calculates how the quarks interact with
each other under the influence of the gluon.
Figure 15 shows how to declare distributed arrays of the quark and gluon. In lines
1–8, the quark and gluon structure arrays are declared. The last dimension “[2]” of
both structures represents real and imaginary parts for a complex number. NT, NZ,
NY, and NX are the numbers of TZYX axis elements. In lines 10–18, distributed
arrays are declared where the macro constant values NODES_T and NODES_Z
indicate the number of nodes on the T and Z axes. Thus, the program is parallelized
on T and Z axes. Note that an “*” in the align directive means that the dimension is
not divided. In the shadow directive, halo regions are added to the arrays because
Précédent

- 143/265

Suivant