7.10 LQCD
7.10.1 Lattice QCD 简介
量子色动力学(QCD)是描述强相互作用及强子结构的基本理论。因为涉及强耦合,其严格求解是极具挑战性的理论难题。格点 QCD (Lattice QCD or LQCD) 是从 QCD 第一性原理出发研究夸克和胶子性质的数值规范场论方法。
7.10.2 LQCD 常用计算软件
目前高能所常用的 LQCD 软件有:
- Chroma: 是由 USQCD 格点组开源的一个格点计算软件包,可以用来产生格点组态,计算强子关联函数等等。
- QUDA:是由 NVIDIA 支持开发的使用 GPU 进行格点计算的开源软件库,可以比较方便地调用进行相关的格点计算,通常与 Chroma 结合使用。
- GWU-Code:是 χQCD 格点组开发的格点计算软件,目前暂未开源。
- xqcd.io : 由理论室宫明老师基于 Scheme 开发的 LQCD 计算软件.
7.10.3 LQCD 软件使用
7.10.3.1 软件版本与存储位置
编译好的 Chrom、QUDA 等目前放在 /cvmfs/lqcd.ihep.ac.cn/chroma/
目录下面,按照系统分为 sl6
和 sl7
版本,同时按照精度,又分为 double
和 single
版本。 编译好的 GWU-Code
则放在 /cvmfs/lqcd.ihep.ac.cn/gwuc-code
目录下面, 与 Chroma
类似。
首次使用之前,需要执行如下命令,之后提交任务时就不需要再执行:
echo "module use /hpcfs/lqcd/modulefiles" >> ~/.bashrc
source ~/.bashrc
查看软件版本可以通过如下命令:
$ module av
---------------------------------------------------------- /hpcfs/lqcd/qcd/modulefiles -----------------------------------------------------------
lqcd/base/sl7 lqcd/gcc/7.3.1 lqcd/python/3.8
lqcd/chroma/double/with-qdpjit-quda-mpi lqcd/gcc/9 lqcd/quda/1.1.0/cuda11.7-openmpi4.1.3
lqcd/cmake/3.24.2 lqcd/gcc/9.1.1 lqcd/ucx/1.12.1/cuda11.7-gcc11
lqcd/cuda/10.2 lqcd/gdrcopy/2.3/gcc10 lqcd/ucx/1.12.1/cuda11.7-gcc9
lqcd/cuda/11.7 lqcd/gwu-code/openmpi4.1.4-cuda11.7-gcc11 lqcd/ucx/1.13.1/cuda11.7-gcc11
lqcd/eigen/3.3.7 lqcd/gwu-code/openmpi4.1.4-cuda11.7-gcc11-old lqcd/xqcd.io/double/mvapich2
lqcd/gcc/10 lqcd/lapack/3.9.0/gcc7 lqcd/xqcd.io/double/openmpi
lqcd/gcc/10.2.1 lqcd/libxml2/2.6.24 lqcd/xqcd.io/single/mvapich2
lqcd/gcc/11 lqcd/llvm/13.0.0 lqcd/xqcd.io/single/openmpi
lqcd/gcc/11.2.1 lqcd/mpi/openmpi/4.1.3/cuda11.7-gcc11
lqcd/gcc/7 lqcd/mpi/openmpi/4.1.4/cuda11.7-gcc11
7.10.3.2 软件使用方法
Chroma
使用 single
或 double
版本的 Chroma, 要 load lqcd/chroma/double
。
作业使用 SLURM 进行提交。下面是一个简单的作业脚本:
#! /bin/bash
#### Job Queue
#SBATCH --partition=gpu
#### Group Name: lqcd
#SBATCH --account=lqcd
#### CPU Cores
#SBATCH --ntasks=8
#### Not necessary if logged in as afs account
#SBATCH --uid=<biyj
#### Output redirection
#SBATCH --output=<some_writable_directory>/job-%j.out
#SBATCH --job-name=gpu_test
##### Specify memory to use, or slurm will allocate all available memory
#SBATCH --mem-per-cpu=2048
##### Specify how many GPU cards to use, 8 in total per node.
#SBATCH --gres=gpu:v100:2
module load lqcd/chroma/double
srun -n 8 ${CHROMA_HOME}/bin/chroma -i sample.in.xml -o sample.out.xml > sample.out.log &
wait
GWU-Code
使用 GWU-Code,需要 load lqcd/gwucode/openmpi4.1.4-cuda11.7-gcc11
,作业使用 Slurm 进行提交。其中有一个环境变量 GWUHOME
指向 GWU-CODE 安装目录。