8 int main(
int argc,
char **argv)
17 multi1d<int> nrow(
Nd);
18 read(xml_in,
"/param/nrow", nrow);
23 Layout::setLattSize(nrow);
28 push(xml,
"t_lwldslash_pab");
31 write(xml,
"latt_size",nrow);
32 write(xml,
"logical_size",Layout::logicalSize());
33 write(xml,
"subgrid_size",Layout::subgridLattSize());
37 multi1d<LatticeColorMatrix>
u(
Nd);
38 for(
int m=0;
m <
u.size(); ++
m)
43 LatticeFermion
psi,
chi, chi2;
48 QDPIO::cout <<
"Constructing naive QDPWilsonDslash" << std::endl;
51 multi1d<LatticeColorMatrix>,
53 multi1d<LatticeColorMatrix>,
54 multi1d<LatticeColorMatrix> >(
u));
59 QDPIO::cout <<
"Done" << std::endl;
67 for(
cb = 0;
cb < 2; ++
cb) {
73 for(iter=1; ; iter <<= 1)
75 QDPIO::cout <<
"Applying D " << iter <<
" times" << std::endl;
78 for(
int i=iter;
i-- > 0; ) {
83 mydt=swatch.getTimeInSeconds();
84 QDPInternal::globalSum(mydt);
85 mydt /= Layout::numNodes();
94 QDPIO::cout <<
"Applying D for timings" << std::endl;
98 for(
int i=iter;
i-- > 0; ) {
103 mydt=swatch.getTimeInSeconds();
104 QDPInternal::globalSum(mydt);
105 mydt /= Layout::numNodes();
107 mydt=1.0e6*mydt/double(iter*(Layout::sitesOnNode()/2));
109 QDPIO::cout <<
"cb = " <<
cb <<
" isign = " <<
isign << std::endl;
110 QDPIO::cout <<
"The time per lattice point is "<< mydt
111 <<
" micro sec (" << double(1320.0f/mydt) <<
") Mflops " << std::endl;
116 QDPIO::cout <<
"Constructing (possibly optimized) WilsonDslash" << std::endl;
120 QDPIO::cout <<
"Done" << std::endl;
125 for(
cb = 0;
cb < 2; ++
cb) {
131 for(iter=1; ; iter <<= 1)
133 QDPIO::cout <<
"Applying D " << iter <<
" times" << std::endl;
136 for(
int i=iter;
i-- > 0; ) {
141 mydt=swatch.getTimeInSeconds();
142 QDPInternal::globalSum(mydt);
143 mydt /= Layout::numNodes();
152 QDPIO::cout <<
"Applying D for timings" << std::endl;
156 for(
int i=iter;
i-- > 0; ) {
161 mydt=swatch.getTimeInSeconds();
162 QDPInternal::globalSum(mydt);
163 mydt /= Layout::numNodes();
164 mydt=1.0e6*mydt/double(iter*(Layout::sitesOnNode()/2));
166 QDPIO::cout <<
"cb = " <<
cb <<
" isign = " <<
isign << std::endl;
167 QDPIO::cout <<
"After " << iter <<
" calls, the time per lattice point is "<< mydt
168 <<
" micro sec (" << double(1320.0f/mydt) <<
") Mflops " << std::endl;
178 for(
cb = 0;
cb < 2;
cb++) {
190 QDPIO::cout <<
"Paranoia test: || D(psi, "
191 << (
isign > 0 ?
"+, " :
"-, ") <<
cb
193 << (
isign > 0 ?
"+, " :
"-, ") <<
cb <<
" ) || = " << n2
200 for(
cb = 0;
cb < 2;
cb++) {
212 QDPIO::cout <<
"OPT test: || D(psi, "
213 << (
isign > 0 ?
"+, " :
"-, ") <<
cb
215 << (
isign > 0 ?
"+, " :
"-, ") <<
cb <<
" ) || = " << n2
218 QDPIO::cout << std::flush;
219 QDPIO::cout << std::endl << std::flush;
221 push(xml,
"OPT test");
224 write(xml,
"norm2_diff",n2);
Primary include file for CHROMA in application codes.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Periodic version of FermState.
General Wilson-Dirac dslash.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void apply(T &chi, const T &psi, enum PlusMinus isign, int cb) const
General Wilson-Dirac dslash.
Asqtad Staggered-Dirac operator.
std::string getXMLOutputFileName()
Get output file name.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
void initialize(int *argc, char ***argv)
Chroma initialisation routine.
void finalize(void)
Chroma finalization routine.
multi1d< LatticeFermion > chi(Ncb)
std::string getXMLInputFileName()
Get input file name.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
FloatingPoint< double > Double
int main(int argc, char **argv)