Skip to content

input and output for basic hmc-nf211-tmclover CI job on 8^4 lattice - #701

Open
kostrzewa wants to merge 1 commit into
masterfrom
feature/nf211ci
Open

input and output for basic hmc-nf211-tmclover CI job on 8^4 lattice#701
kostrzewa wants to merge 1 commit into
masterfrom
feature/nf211ci

Conversation

@kostrzewa

Copy link
Copy Markdown
Member

steps towards extending github CI runs to nf=2+1+1 tmclover

basic (tmlqcd-native solvers)

  • add sample input and (unverified) output for basic nf=2+1+1 tmclover using tmlqcd-native rgmixedcg and cgmmsnd
  • add .github/workflows/nf211-basic-tmclover.yaml

ddalphaamg

  • add sample input and output for the same using DDalphaAMG in the light sector (and perhaps also in heavy sector)
  • add .github/workflows/nf211-ddalphaamg-tmclover.yaml

qphix

  • add sample input and output for the same using QPhiX in the light and heavy sectors
  • add .github/workflows/nf211-qphix-tmclover.yaml

after completion and testing

  • remove nf2 workflows

@kostrzewa kostrzewa added the WIP DO NOT MERGE Label for pull-requests which exist to track progress during development. label Aug 14, 2026
@kostrzewa

kostrzewa commented Aug 14, 2026

Copy link
Copy Markdown
Member Author

The columns in output.data to be excluded (-X) for the first numdiff command in the workflow are

18 and 5-16

@kostrzewa

kostrzewa commented Aug 14, 2026

Copy link
Copy Markdown
Member Author

So it will be something like:

numdiff -r 1e-4 -X 1:18 -X 1:5-16 -X 2:18 -X 2:5-16 output.data ${refpath}/output.data

e.g.:

                                                      X  X   X   X   X   X   X   X  X   X   X   X        X
00000018 0.376141674326 -0.084303039260 1.087959e+00 58 273 223 750 350 840 3215 0 338 481 403 556 1 2.472512e+01 1.305379e-01    

This is because the integer numbers in the middle are iteration counters (which can vary a bit from machine to machine especially with mixed-precision solvers and multigrid) and the second-to-last column is the trajectory time, which is bound to be very different on different machines.

@kostrzewa

Copy link
Copy Markdown
Member Author

To compile tmLQCD locally you need

c-lime: https://github.com/usqcd-software/c-lime which can be compiled as follows:

cmake \
  -DCMAKE_C_FLAGS='-mtune=native -march=native -O2' \
 -DCMAKE_INSTALL_PREFIX=$(pwd)/install_dir \
 -S ${PATH_TO_C_LIME_SOURCE_CODE}

make -j
make install

and (of course) tmLQCD, which can be compiled as follows with just the tmLQCD-native solvers:

cmake \    
  -DCMAKE_C_FLAGS='-mtune=native -march=native -O3 -fopenmp' \    
  -DCMAKE_CXX_FLAGS='-mtune=native -march=native -O3 -fopenmp' \    
  -DCMAKE_BUILD_TYPE=RELEASE \    
  -DCMAKE_INSTALL_PREFIX=$(pwd)/install_dir \    
  -DCMAKE_PREFIX_PATH=${PATH_TO_C_LIME_BUILD_DIR}/install_dir \    
  -DTM_USE_HALFSPINOR=ON \    
  -DTM_USE_GAUGE_COPY=ON \    
  -DTM_USE_MPI=ON \    
  -DTM_USE_OMP=ON \    
  -DTM_USE_LEMON=ON \    
  -S ${PATH_TO_TMLQCD_SOURCE_CODE}

make -j

where for the second step you don't really need to install. The binaries will be in src/bin in the build directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

WIP DO NOT MERGE Label for pull-requests which exist to track progress during development.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants