0 前言
本文旨在 Ubuntu20.04 上安装最新的 Intel oneAPI 编译器,和 gcc5.4.0 版本的编译器(编译安装),并使用module 工具对编译器版本进行管理和切换
1 安装 Intel 编译器
Intel oneAPI编译器下载:
Intel oneAPI Base Toolkit:https://registrationcenter-download.intel.com/akdlm/irc_nas/18970/l_BaseKit_p_2022.3.1.17310_offline.sh
Intel oneAPI HPC Toolkit: https://registrationcenter-download.intel.com/akdlm/irc_nas/18975/l_HPCKit_p_2022.3.1.16997_offline.sh
将这两个安装包下载好然后放到机器上任意目录
先安装Base Toolkit,再安装 HPC Toolkit
建议全程使用使用命令行安装,可以提高一点安装速度(终端执行 init 3 关闭图形化界面)
1.1 安装 Base Toolkit
执行 sh l_BaseKit_p_2022.3.1.17310_offline.sh
开始安装Base Toolkit
进入安装页面后,通过上下键选择 Accept & customer
( 接受并自定义安装)
然后进入以下页面,选择Next
然后就进入到选择安装目录的页面,按住Ctrl键再按退格才可以删除,默认是 /opt/intel/oneapi目录,但如果后面会装多个Intel编译器的话,还是应该规范一下安装路径。
注意:安装路径在指定时,最后一级目录必须是oneapi,不能修改,否则后面在使用时可能会报错
指定完路径后选中Next
然后进入以下页面:
点击Install
选择 skip,然后选中 Next
这里是用户体验计划,选择是否参加,我一般选择不参加,然后选中Begin Installation开始安装
这个安装过程大概要十来分钟,根据硬件性能的不同安装速度也会有些许不同
安装完毕:
点击close关闭页面,Base Toolkit 安装完毕
1.2 安装 HPC ToolKit
然后执行 sh l_HPCKit_p_2022.3.1.16997_offline.sh 安装 HPC ToolKit,大致过程与 Base toolkit相同,
相比于Base Toolkit,HPC Toolkit的安装要快很多
安装完毕后,使用 source /public/compiler/intel/2022u2/oneapi/setvars.sh intel64 命令来启用 intel编译器
2 安装gcc5.4编译器
方法一:参考:https://www.jianshu.com/p/e823f89787d6
方法二:
下载gcc5.4的安装脚本:wget https://mirrors.qiql.net/script/install_gcc5.4.0.sh
然后执行 sh install_gcc5.4.0.sh
执行该脚本即可自动开始编译安装,默认安装位置在 /public/compiler/gcc/5.4.0
注意:编译安装对CPU和内存消耗较大,且编译安装时间较长,需耐心等待,但比直接yum下载的性能会更好
如果报错:g++: fatal error: Killed signal terminated program cc1plus ,说明内存不够,无法编译
3 安装module
module是一个用来管理环境变量的工具,通过编写modulefile,可以轻松的对不同软件或者同一个软件的不同版本进行切换。
下载module的安装脚本:
wget https://mirrors.qiql.net/script/install_module5.0.1.sh
使用sh执行该脚本即可,默认安装位置为/public/tool/module/5.4.0
然后新建一个modulefiles目录专门用来访modulefile文件,可以将该目录新建到 /public/modulefiles 目录下:
mkdir -p /public/modulefiles
安装完毕后,将
source /public/tool/module/5.4.0/init/profile.sh
export MODULEPATH=/public/modulefiles
写入到 ~/.bashrc
文件中去
然后执行 source ~/.bashrc
以使配置文件生效
然后输入 which module
,如果输出了路径,说明没啥问题了
4 编写 modulefile
4.1 Intel oneAPI
先编写 Intel oneAPI 的 modulefile
新开一个会话,然后新建一个文本文件,比如source_intel2022u2.of,里面输入以下内容:
source /public/compiler/intel/2022u2/oneapi/setvars.sh intel64
下载env2工具,该工具可以自动编写复杂环境的modulefile
wget https://mirrors.qiql.net/pkgs/env2
下载好后,为其赋予可执行权限: chmod +x env2
然后执行:./env2 -from bash -to modulecmd source_intel2022u2.of
此时终端会输出一段内容,将其复制下来
进入到modulefiles的目录:cd /public/modulefiles
新建一个Intel目录并进入: mkdir -p intel && cd intel
新建一个文本,文件名为2022u2,第一行写:#%Module
然后敲回车到第二行,将刚才复制的内容粘贴进去
然后保存退出即可
此时,在终端中执行 module load Intel/20022u2 就可以直接加载Intel编译器了,如果想卸载这个编译器,执行:module unload intel/2022u2
4.2 gcc 5.4.0
现在开始编写gcc5.4.0的modulefile
进入到modulefiles目录:cd /public/modulefiles
新建一个gcc目录并进入: mkdir -p gcc && cd gcc
新建一个文本,文件名为5.4.0,第一行写:#%Module
然后敲回车到第二行,将以下内容粘贴进去:
#%Module
#
## gcc11.2.0
#
proc ModulesHelp { } {
puts stderr "\tThis module adds gcc 5.4.0 compiler to the user environment"
}
set gccbasedir /public/compiler/gcc/5.4.0
set basedir /public/library/gcc/5.4.0
prepend-path PATH ${gccbasedir}/bin
prepend-path PATH ${basedir}/m4/1.4.19/bin
prepend-path LD_LIBRARY_PATH ${gccbasedir}/lib
prepend-path LD_LIBRARY_PATH ${gccbasedir}/lib64
prepend-path LD_LIBRARY_PATH ${basedir}/mpc/1.2.1/lib
prepend-path LD_LIBRARY_PATH ${basedir}/m4/1.4.19/lib
prepend-path LD_LIBRARY_PATH ${basedir}/mpfr/4.1.0/lib
prepend-path LD_LIBRARY_PATH ${basedir}/gmp/6.2.1/lib
prepend-path LD_LIBRARY_PATH ${basedir}/isl/0.24/lib
unset basedir
然后保存退出即可
此时,在终端中执行 module load gcc/5.4.0 就可以直接加载gcc5.4.0编译器了,如果想卸载这个编译器,执行:module unload gcc/5.4.0 即可
评论区