The Chroma package supports data-parallel programming constructs for lattice field theory and in particular lattice QCD. Here is how I compile chroma on Tianhe II and Cori at NERSC.
### cd the source directory $ cd qmp && autoreconf ### for Tianhe II $ ./configure --prefix=$app_root --with-qmp-comms-type=MPI --with-qmp-comms-libs='-lmpi -lmpich -lmpichcxx' CFLAGS="-O2 -std=c11 -mavx -msse3" CC=$ccc CXX=$cpc FC=$fort ### for Cori $ ./configure --prefix=$app_root --with-qmp-comms-type=MPI --with-qmp-comms-libs='-lmpich -lmpichcxx' ### both $ make -j4 && make check && make install
安装 QDP/C
安装 QDP++
1 2 3 4 5 6 7 8
$ cd qdp && autoreconfig ### for Tianhe II $ ./configure --prefix=${app_root} --with-qmp=${app_root} --enable-parallel-arch=parscalar --with-hdf5=${hdf5_home} CFLAGS="-O2 -std=c11 -mavx -msse3 -fopenmp" CXXFLAGS="-O2 -std=c++11 -mavx -msse3 -fopenmp" --enable-sse3 CC=$ccc CXX=$cpc FC=$fort ### for Cori $ ./configure --prefix=${app_root} --with-qmp=${app_root} --enable-parallel-arch=parscalar --with-hdf5=${hdf5_home} CXXFLAGS="-O2 --std=c++11" LDFLAGS="-L/opt/cray/pe/mpt/7.6.0/gni/mpich-gnu/5.1/lib" CPPFLAGS="-I/opt/cray/pe/mpt/7.6.0/gni/mpich-gnu/5.1/include" ### both ### there are some errors when running "make check" $ make -j4 && make install