|
本帖最后由 Janus 于 2023-10-30 12:03 编辑
AMD的9654成为最近热议话题,随Zen4一同到来的还有AMD开发的aocc和aocl,以及vasp官方所提供的基于aocc和aocl编译的makefile.include模板。
我花费半个小时把AOCC 和AOCL编译的教程整理了哈,发出来,抛砖硬玉,希望牛人提出改进和调优的方法。
所需软件:
1. VASP 6.4.2 (没有最新代码的,可以考虑闲鱼、淘宝等手段淘一个源码,价格不会超过20);
2. AOCC AOCl 最好是最新版;
3. GLIBC 2.27及以上,这个好像有要求,我周末尝试了超算上编译,能能成功编译,但是运行各种bug;
4. 如果系统较新、或者有root权限,就没啥问题。超算上的系统实在太古老了,可以考虑singularity镜像。
安装过程(主要借鉴知乎上:“AMD全家桶(AOCC+AOCL)编译vasp.5.4.4”):
1. AOCC安装:解压AOCC,./install.sh安装,然后source setenv_AOCC.sh 配置环境。which clang 查看是否已经成功安装。
2. AOCL安装:解压AOCL,./install.sh -t /opt/xxx 安装到指定路径;进入到安装的路径,source amd-libs.cfg 配置AOCL的环境。
3. OpenMPI安装:解压安装文件,./configure CC=clang CXX=clang++ FC=flang --prefix=/xxxx;make && make install (注:知乎教程中CC=clang....写在前面,会导致安装opemmpi不会调用clang等);指定哈路径:MPI_HOME=/usr/local; export PATH=${MPI_HOME}/bin:$PATH; export LD_LIBRARY_PATH=${MPI_HOME}/lib:$LD_LIBRARY_PATH; export MANPATH=${MPI_HOME}/share/man:$MANPATH
4. 安装vasp:检查一下环境,which mpirun, which clang....
修改template file,arch中有makefile.include.aoccxxxx,进去把aocl的路径文件写进去就ok了。
VASP_TARGET_CPU ?= -march=znver4
BLAS, LAPACK, scalAPACK, FFTW的root file 的位置,都写成aocl的文件夹的绝对位置。
给个例子:AMDSCALAPACK_ROOT ?= /opt/amd/aocl.4.1.0/4.1.0/aocc
改完以后,make all 就能编译了。
注:
1. 上述教程并非原创,参考了知乎“AMD全家桶(AOCC+AOCL)编译vasp.5.4.4”的绝大部分内容,若有任何侵权,请联系我,我立刻做删除处理;
2. 写的比较简单,建议稍微有点安装基础的用户尝试;
3. 系统过于老旧,失败概率非常大,可以考虑singularity,具体方法同上,只是找一个有root权限的机器即可;
4. 安装vasp的时候,并行编译很可能会报错,例如使用 make -j20之类的。建议不要并行;
5. Openmpi编译有两种,可以设置MPI+OPENMP,整体过程同上,在arch用另外一个模板就行;
6. Intel下,mpirun -np xxx 基本上就能让运行速度大差不差的,但是amd下可能需要设置哈,具体设置方法可以参考“AMD EPYC 9754 & 9654基准测试:量子化学和第一性原理计算程序”;
7. keinsci中已经有几个安装教程,希望结合起来看看,安装没问题。
8. 整个过程耗时在1小时以内,Openmpi耗时会长一点,建议并行可大幅缩短时间,例如 make -j40;vasp这一步,可以先 make all -j4,报错后不make veryclean,直接 make all。这种方法对测试没问题,如果打算长时间用,还是就挂一个screen,让软件慢慢编译吧。
9. 编译的系统:我是租了个工作站,让安装的是ubuntu 22.04,有root权限,拿回来后update gfortran gcc等,update了必要的库。然后就开始安装了。碰到问题,就apt-get install 或者update一下,这些也没做记录,不记得了。
最后:希望这个帖子能把玉引出来;在AMD服务器下,软件的安装、调优方法以及各类tricks 较intel少很多,希望懂行的人能够分享一点经验,让服务器运行的更快、更稳、更简单。
|
评分 Rate
-
查看全部评分 View all ratings
|