公众号的安装教程里常说的“Intel全家桶”指的是Intel Parallel Studio XE,里面集成了C/C++/Fortran语言的编译器(分别是icc、icpc、ifort)、MKL数学库及各种高效调试工具,甚至还有Intel MPI,可以说是编译量化软件最常用的一套“装备”。然而从2021年开始Intel不再提供旧版Parallel Studio XE下载页面,而是改成了(或称升级成了)oneAPI,又可具体细分为oneAPI Base Toolkit和oneAPI HPC Toolkit等等。
但Base Toolkit包里含icc、icpc编译器和MKL库,却不含ifort。而HPC Toolkit包里含icc、icpc、ifort,却不含MKL库。显然下载任一个包都无法完全替代以前的“全家桶”。本文就介绍一下安装HPC Toolkit + MKL库的步骤,来替换以前的Parallel Studio XE。本文主要面向未安装Intel全家桶、但又想安装的读者。如果读者机子上装过较新的Parallel Studio XE,笔者不推荐非要换成oneAPI,旧版用得也很好。若有的读者不需要ifort编译器,可以直接安装Base Toolkit,本文介绍的步骤也就用不上了。
若读者想卸载机子上的Parallel Studio XE,请勿直接rm -rf。需到/opt/intel/parallel_studio_xe_2019.5.075/目录下找到uninstall.sh或uninstall_GUI.sh脚本,运行任一脚本进行卸载,前一个脚本是命令行式的,后一个带图形界面。该目录仅为示例,读者需根据自己机子实际情况寻找相应目录。
1. 下载HPC Toolkit和MKL
到以下网址下载HPC Toolkit安装包。若日后该网址失效或变更,请自行用google或bing搜索引擎再搜索。
https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit/download.html
依次选择操作系统、分发和安装类型(在线下载或离线安装):
笔者偏好离线安装,所以最后选的是Local。如果读者的机子能联网,网络还不错,可以选择Online。然后点击右侧的Download按钮下载,笔者下载的安装包名为l_HPCKit_p_2021.2.0.2997_offline.sh,大小约1.4 GB。
到以下网址下载MKL安装包
https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html#onemkl
笔者下载的安装包名为l_onemkl_p_2021.2.0.296_offline.sh,大小约896 MB。
2. 安装HPC Toolkit
将安装包传到服务器上,切换到root身份,运行
chmod +x l_HPCKit_p_2021.2.0.2997_offline.sh
./l_HPCKit_p_2021.2.0.2997_offline.sh
然后跟着屏幕提示走即可。安装包会自动检测当前环境是否支持打开图形界面,若有图形界面则点鼠标即可完成安装;若无,则自动切换至文字选项界面,按键盘上的←↑↓→键进行选择,也算方便。安装到最后出现Get Started Guide和Modify的时候,就可以点击右上角的叉,退出安装了。
笔者希望装在系统目录或公共目录下,安装好后所有用户都能使用,所以用了root身份安装。读者也可以安装在个人目录下,仅供自己使用。安装完后,个人用户需在~/.bashrc文件里写环境变量,而root用户可以在/etc/profile.d/目录下新建一个文件,例如intel_compiler.sh,在里面写环境变量:
. /opt/intel/oneapi/setvars.sh
注意行首有个点号,点号与路径之间有个空格。intel编译器默认安装路径一般是/opt/intel/。上述目录/etc/profile.d/是以笔者机子上的CentOS系统为例的,其他类型linux系统请自行写到合适的位置。写完后退出重登即可。重新登录时会显示:: initializing oneAPI environment ... 此时无报错即可。分别运行
icc --version
icpc --version
ifort --version
mpirun --version
可以查看相应编译器版本。
3. 安装MKL库
仍以root身份运行
chmod +x l_onemkl_p_2021.2.0.296_offline.sh
./l_onemkl_p_2021.2.0.296_offline.sh
同样地,安装包会自动检测当前环境是否支持打开图形界面。此时仍会自动安装至/opt/intel/oneapi/目录下。安装完成后退出重登,会发现屏幕上的初始化信息多出了mkl
执行
echo $MKLROOT
可查看MKL路径。
4. 简单测试
作为测试,我们这里用最新版Intel编译器编译一下量化软件GAMESS。编译和安装教程请阅读《GAMESS编译教程》。笔者实际测试时用的是2020-Sep-30(R2)版本的GAMESS。在执行config过程中屏幕会询问Intel编译器版本,填数字21. 在询问数学库时填mkl,而询问MKL路径时填/opt/intel/oneapi/mkl/latest。中间询问的一些是否尝试新功能,笔者都用不到,填了no。总的来讲安装步骤没有什么变化。
安装完后,在gamess/目录下打开runall文件,将第一处si.msg.chem.iastate.edu改为本机名(若不知道本机名,在命令行执行hostname可显示)。接着执行
./runall 00
按回车,则测试开始,时间需要3-5 min。完成后测试结果正确性,即依次运行
mv exam*.log tests/standard/
cd tests/standard/
./checktst
笔者的机子上显示All 48 test results are correct!
结束。
5. 可能碰到的问题
一般来说运行安装脚本几十秒后即可启动安装界面。若有读者运行安装脚本超过3 min仍无反应,屏幕上只有Extract xxxxxxxx completed!字样,而未切换至安装界面,那么可以按键盘组合键Ctrl+C中断安装。然后改用完全静默安装模式
./l_HPCKit_p_2021.2.0.2997_offline.sh -s -a --silent --eula accept
在安装MKL库时若有同样问题,可同样执行
./l_onemkl_p_2021.2.0.296_offline.sh -s -a --silent --eula accept
这样也是默认安装进/opt/intel/。