RE:137

时间是唯一致死的毒药。

LQCD 代码笔记其一:安装 Bridge++

艰难的第一步:Bridge++ 的安装。

发布于 » 更新于
作者是 季尼柯夫 · 收录在 格点规范 · 这里是

最近对只能对着教授没有注释的代码边猜边改的状态越来越厌烦,于是我终于下定决心去学一学 Bridge++ 库的用法,甚至还想复刻教授那个没有注释的库。鉴于物理学家们写的代码实在是让人头大,所以我准备把折腾过程中遇到的问题、学到的小技巧等等都记录下来,以供未来的自己做参考。

文中的安装流程是以 Bridge++ 目前的最新版本 2.0.2 作为例子来完成的,但仅就安装来说这个版本和之前的并没有太大的不同,小改动有

  1. makeconfig.sh 中多了几个选项
  2. 所有额外库的 tarball 文件都已经在 bridge-2.0.2/extra 内提供

我的 bridge++ 库的路径~/lqcd/bridge-2.0.2,之后也将以这个路径来举例。


安装 prerequisites#

Lattice QCD 的计算离不开 MPI,这部分就来搭建一下 MPI 环境。选择 MPICH 大概是因为教授的偏好。

我的服务器预装的操作系统为 Debian GNU/Linux 11 (bullseye),而我的办公电脑则是 MacBook Air,故以下说明将以它们为例。最后的目的是 确保存在可以运行的 mpicc 文件Bridge++ 在编译时可以找到 MPI 库

在 Linux 上#

2024/03/13 Update
关于这部分的安装,Debian 12 上没有这么繁琐,似乎是取消了 Recommended packages 并且直接帮用户安装了这些包。所以在 Debian 12 上的话直接运行 sudo apt install mpich 一键安装即可。

运行 sudo apt install gcc mpich 后,可以看到跳出来了一些 Suggested packages,如果需要里面的文档包的话可以安装一部分。而 Recommended packages 的部分一定要装,特别是 libc-devlibmpich-dev这种的,不装的话后续编译都会提醒找不到库(血与泪的教训)。最终需要安装的包有这些:

sudo apt install gcc make libc-dev mpich libhwloc-plugins libmpich-dev

在 MacOS 上#

brew install mpich

一键安装!

安装外部库#

前面提到了,额外库的 tarball 文件都已经在 ~/lqcd/bridge-2.0.2/extra 内提供。为了不产生冲突,我们先把它们复制到其他目录下解压。安装时主要有三步,./configure -> make -> make install,我们需要在 configure 的时候配置好安装目的地:--prefix=path_to_bridge/extra/lib_name

比如对我来说,就要进行如下配置:

./configure --prefix=$HOME/lqcd/bridge-2.0.2/extra/lib_name

这里的 lib_name 也不能乱写,因为在 Bridge++ 中已经规定好了相应的路径。

C-LIME#

安装包可以在 C-LIME 官网找到。

lime-1.3.2 文件夹内执行:

mkdir -p ~/lqcd/bridge-2.0.2/extra/lime-1.3.2
./configure --prefix=$HOME/lqcd/bridge-2.0.2/extra/lime-1.3.2
make -j4 # -j 后面的数字指用几个线程编译(多线程可以让 make 更快)
make install

FFTW3#

安装包可以在 FFTW3 官网找到。

fftw-3.3.10 文件夹内执行:

mkdir -p ~/lqcd/bridge-2.0.2/extra/fftw
./configure --enable-mpi --prefix=$HOME/lqcd/bridge-2.0.2/extra/fftw
make -j4 # -j 后面的数字指用几个线程编译(多线程可以让 make 更快)
make install

安装 Bridge++#

进入 ~/lqcd/bridge-2.0.2 后,首先运行 ./makeconfig.sh。里面大多数的选项设为默认即可,下面记录一些需要手动调整的项目:

### Select Platform ###    这个根据自己的情况来选
1 [PC WorkStation with GNU C++] (default)
2 [PC WorkStation with Clang C++]
3 [PC WorkStation with Intel C++]

### Select Communicator Type ###
2 [MPI]

### Select Compiler Optimization Level ###
3 [High]

### Use LIME library Option ###
1 [Yes]

### Use FFTW library Option ###
## set [No] on FX1000
1 [Yes]

然后执行

make all -j4

至此,安装过程就全部结束了!编译好的库放在了 ~/lqcd/bridge-2.0.2/build 路径下,在 ~/lqcd/bridge-2.0.2/tests 以及 ~/lqcd/bridge-2.0.2/sample_spectrum 中可以找到一些代码示例。


上一篇:
下一篇: