update of prototypes #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: qphix-build | |
on: [push] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# handling of environment variable: https://stackoverflow.com/a/57969570 | |
- name: lscpu | |
run: | | |
lscpu; \ | |
echo "nb_cores=$(lscpu | grep \^CPU\(s\)\: | awk '{print $2}')" >> $GITHUB_ENV | |
- name: gcc_version | |
run: gcc --version | |
- name: echo_nb_cores | |
run: echo "Number of cores ${nb_cores}" | |
- name: get_packages | |
run: sudo apt update && sudo apt install openmpi-bin openmpi-common numdiff | |
- name: get_lime | |
uses: actions/checkout@v2 | |
with: | |
repository: usqcd-software/c-lime | |
path: lime | |
- name: autogen_lime | |
working-directory: ${{github.workspace}}/lime | |
run: ./autogen.sh && mkdir build | |
- name: build_lime | |
working-directory: ${{github.workspace}}/lime/build | |
run: | | |
CC=gcc \ | |
CFLAGS="-march=haswell -mtune=haswell -O2" \ | |
../configure --prefix=$(pwd)/install_dir | |
make -j | |
make install | |
- name: get_lemon | |
uses: actions/checkout@v2 | |
with: | |
repository: etmc/lemon | |
path: lemon | |
- name: autogen_lemon | |
working-directory: ${{github.workspace}}/lemon | |
run: | | |
autoreconf -i -f | |
mkdir build | |
- name: build_lemon | |
working-directory: ${{github.workspace}}/lemon/build | |
run: | | |
CC=mpicc \ | |
CFLAGS="-march=haswell -mtune=haswell -O2" \ | |
../configure \ | |
--prefix=$(pwd)/install_dir | |
make -j | |
make install | |
- name: get_qmp | |
uses: actions/checkout@v2 | |
with: | |
repository: usqcd-software/qmp | |
path: qmp | |
- name: autogen_qmp | |
working-directory: ${{github.workspace}}/qmp | |
run: | | |
autoreconf -i -f | |
mkdir build | |
- name: build_qmp | |
working-directory: ${{github.workspace}}/qmp/build | |
run: | | |
CC=mpicc \ | |
CFLAGS="-std=c99 -O2 -mtune=haswell -march=haswell" \ | |
../configure \ | |
--prefix=$(pwd)/install_dir \ | |
--with-qmp-comms-type=MPI | |
make -j | |
make install | |
- name: get_qphix | |
uses: actions/checkout@v2 | |
with: | |
repository: JeffersonLab/qphix | |
ref: fix_tmlqcd | |
path: qphix | |
- name: create_qphix_builddir | |
working-directory: ${{github.workspace}}/qphix | |
run: mkdir build | |
- name: cache_qphix | |
id: cache-qphix | |
uses: actions/cache@v2 | |
with: | |
path: qphix/build | |
key: ${{ runner.os }}-haswell-qphix | |
- name: build_qphix | |
working-directory: ${{github.workspace}}/qphix/build | |
if: steps.cache-qphix.outputs.cache-hit != 'true' | |
run: | | |
cmake \ | |
-DQMP_DIR=${{github.workspace}}/qmp/build/install_dir \ | |
-Disa=avx2 \ | |
-Dparallel_arch=parscalar \ | |
-Dhost_cxx=g++ \ | |
-Dtm_clover=ON \ | |
-Dtwisted_mass=ON \ | |
-Dtesting=OFF \ | |
-DCMAKE_CXX_COMPILER=mpicxx \ | |
-DCMAKE_CXX_FLAGS="-std=c++11 -O2 -mavx2 -mfma -mtune=haswell -march=haswell -fopenmp" \ | |
-DCMAKE_C_COMPILER=mpicc \ | |
-DCMAKE_C_FLAGS="-std=c99 -O2 -mavx2 -mfma -mtune=haswell -march=haswell -fopenmp" \ | |
-DCMAKE_INSTALL_PREFIX=$(pwd)/install_dir \ | |
.. | |
VERBOSE=1 make -j $(( ${nb_cores} + 3 )) | |
make install | |
- name: get_tmlqcd | |
uses: actions/checkout@v2 | |
with: | |
path: main | |
- name: create_builddir | |
shell: bash | |
run: mkdir ${{github.workspace}}/main/build | |
- name: autogen_tmlqcd | |
working-directory: ${{github.workspace}}/main | |
run: autoconf | |
- name: configure_and_build | |
shell: bash | |
working-directory: ${{github.workspace}}/main/build | |
run: | | |
CC=mpicc CXX=mpicxx \ | |
LDFLAGS="-fopenmp" \ | |
CFLAGS="-O2 -mtune=haswell -march=haswell -mavx2 -mfma -DOMPI_SKIP_MPICXX -fopenmp" \ | |
CXXFLAGS="-O2 -mtune=haswell -march=haswell -mavx2 -mfma -DOMPI_SKIP_MPICXX -fopenmp" \ | |
../configure \ | |
--enable-mpi \ | |
--with-mpidimension=4 \ | |
--enable-omp \ | |
--disable-sse2 \ | |
--disable-sse3 \ | |
--with-limedir=${{github.workspace}}/lime/build/install_dir \ | |
--with-lemondir=${{github.workspace}}/lemon/build/install_dir \ | |
--with-lapack="-lblas -llapack" \ | |
--with-qmpdir=${{github.workspace}}/qmp/build/install_dir \ | |
--with-qphixdir=${{github.workspace}}/qphix/build/install_dir \ | |
--enable-qphix-soalen=4 || cat config.log | |
make -j | |
- name: nf2_qphix_hmc_tmcloverdetratio | |
working-directory: ${{github.workspace}}/main/build | |
run: | | |
mpirun -np 2 ./hmc_tm \ | |
-f ../sample-input/sample-hmc-qphix-tmcloverdetratio.input | |
- name: compare_nf2_qphix_hmc_tmcloverdetratio | |
working-directory: ${{github.workspace}}/main/build | |
run: | | |
refpath=${{github.workspace}}/main/sample-output/hmc-qphix-tmcloverdetratio | |
numdiff -r 1e-4 -X 1:10 -X 1:5-8 -X 2:10 -X 2:5-8 output.data ${refpath}/output.data | |
for i in $(seq 0 2 18); do \ | |
f=onlinemeas.$(printf %06d $i); \ | |
numdiff -r 1e-4 ${f} ${refpath}/${f}; \ | |
done | |