借助spack包管理软件使用AOCC.3.2.0编译器安装VASP.6.2.0 您所在的位置:网站首页 vasp超算安装 借助spack包管理软件使用AOCC.3.2.0编译器安装VASP.6.2.0

借助spack包管理软件使用AOCC.3.2.0编译器安装VASP.6.2.0

#借助spack包管理软件使用AOCC.3.2.0编译器安装VASP.6.2.0| 来源: 网络整理| 查看: 265

1. 背景介绍

英特尔处理器在超算领域一家独大的时代已经过去,各大高校和超算中心有不少新购的计算工作站都是采用AMD的CPU来搭建的。VASP是最流行的密度泛函理论(DFT)计算软件之一,在凝聚态物理和计算化学领域应用广泛。然而,VASP在开发阶段就主要考虑英特尔平台,官网的安装教程也重点聚焦英特尔处理器,针对AMD处理器的教程尚未更新。

此前,AMD的CPU上很难编译出可以正常运行的VASP(https://zhuanlan.zhihu.com/p/293300472),更别说效率问题了。网上少有在AMD的CPU上使用AMD自家的编译器而非英特尔oneAPI编译器安装VASP的教程。如今,AMD的CPU上编译VASP不仅要考虑可行性,还要考虑效率,复杂程度等。

本文将尽量简化编译复杂度,争取花最少的时间编译出在运行Ubuntu20.04的AMD的CPU上高效的VASP程序,其他linux操作系统以及其他AMD的CPU请类推。

如果您有兴趣,请花几分钟时间细读。

本文主要参考AMD开发者页面VASP安装教程(https://developer.amd.com/spack/vasp/),spack常用命令简述(https://developer.amd.com/spack/spack-getting-started/)和spack文档(https://spack.readthedocs.io/en/latest/getting_started.html)

开始之前,要特别感谢AMD技术团队的指导以及对编译脚本的自动化,才让我们可以这么方便地完成安装。

ヨルちゃん最高~2. 准备工作

在计算工作站上安装时,建议使用root用户,运行时则切换回普通用户。

2.1. 安装spack包管理软件

spack 类似 Environment Modules,是环境管理软件,是软件安装和管理的神器,我们要借助它完成快速安装。

先将它安装到某个路径,比如/opt/spack:

2.2. 安装AOCC编译器套装

AOCC(https://developer.amd.com/amd-aocc/) 是 AMD 针对自家 CPU 着力优化的编译器,对标 GCC 和英特尔的 oneAPI中的compiler。

将弹出协议文档,用 ZZ 命令关闭即可。

把 [email protected] 添加到编译器列表中:

3. 安装 VASP.6.2.0

注意VASP是受版权保护的,把vasp.6.2.0.tgz安装包放到~路径下,安装程序后续将尝试寻找并读取。

请勿做任何修改,否则后续检查文件完整性将失败导致安装受阻。

先加载 [email protected],确保后续编译均基于此编译器,而不是系统默认的其他编译器。

大概率还没安装过AOCL(ttps://developer.amd.com/amd-aocl/)数学库,因此本次安装会自动安装[email protected][email protected][email protected] 和 amdscalapack,总计将耗时一个小时左右,请耐心等待。

如果出现如下错误,不能正常安装:

解决方案如下:

将 spack 升级到最新版 0.18.0.dev

打开 ~/.spack/packages.yaml 文件以编辑

删除 Python 包的信息,vi 命令行模式用上下箭头移动光标到特定行,dd 删除即可,最后 :wq 保存

重新安装,这次应该没有什么问题了

最后,应当可以看到安装成功的提示:

vasp: Successfully installed vasp-6.2.0-***

4. 测试

4.1. 环境设置

加载 vasp.6.2.0 和 aocc.3.2.0 并检查链接的动态库

输出大致如下,检查每一项都有被正常连接到

很好!先别急着退出root,普通用户在spack加载时会出现找不到编译器的问题,需要手动设置一下。

4.2. 标准算例测试

退出 root 用户,使用普通用户进行算例测试。

在进行VASP6内置的算例测试时,先把刚编译好的vasp执行程序链接到特定路径下:

4.3. 小型算例

随便挑了个最近在做的项目中的一个小算例,磁性镍的基态能量计算,结果显示小体系的 4.564 vs 6.062,速度提升25%。 中等体系为Ni-H固溶体的基态计算,111.702 vs 141.386,速度提升20%。

算例文件见附件 Ni.tar.xz 和 NiH.tar.xz

5. 不足

测试结果显示 SiC8_GW0R step GW算例出错1Error in SOLVE_NONLS, weight is negative: 13 NaN NaN,处理相应的GW计算时或许得采用其他的vasp程序。

暂时无法安装VTST(https://theory.cm.utexas.edu/vtsttools/installation.html)和VASPsol(https://github.com/henniggroup/VASPsol)等程序

6. 总结

本文用户快速方便构建可以在AMD的CPU上高效运行的VASP传统程序,对于绝大多数算例适用。

用户不必去理会编译时极其繁杂恼人的参数设置,尤其是 MPI 与 fortran 的绑定以及 VASP 安装时 makefile.include 参数的仔细校对,可以节省大量时间。

安装的VASP与使用英特尔 oneAPI 套餐编译出来的VASP相比,一些简单算例的速度提升显著!

不同算例内部对函数的调用情况不同,采用不同编译器运行将体现不同效率。 实测有的算例使用英特尔的 oneAPI 运行效率更高,即使是在AMD的CPU上!

对于大型计算,有必要做小型测试,先跑几个电子步然后杀掉进程,对比不同编译器运行的速度。

优雅~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有