侧边栏壁纸
博主头像
qiql博主等级

水能载舟,亦可赛艇

  • 累计撰写 33 篇文章
  • 累计创建 28 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Ubuntu20.04 安装 INTEL 编译器和 Gcc 编译器

qiql
2022-11-19 / 1 评论 / 6 点赞 / 5,457 阅读 / 1,436 字

0 前言

本文旨在 Ubuntu20.04 上安装最新的 Intel oneAPI 编译器,和 gcc5.4.0 版本的编译器(编译安装),并使用module 工具对编译器版本进行管理和切换

1 安装 Intel 编译器

Intel oneAPI编译器下载:

Intel oneAPI Base Toolkithttps://registrationcenter-download.intel.com/akdlm/irc_nas/18970/l_BaseKit_p_2022.3.1.17310_offline.sh

Intel oneAPI HPC Toolkithttps://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( 接受并自定义安装)

image-1668869148547

然后进入以下页面,选择Next

image-1668869157982

然后就进入到选择安装目录的页面,按住Ctrl键再按退格才可以删除,默认是 /opt/intel/oneapi目录,但如果后面会装多个Intel编译器的话,还是应该规范一下安装路径。

注意:安装路径在指定时,最后一级目录必须是oneapi,不能修改,否则后面在使用时可能会报错

指定完路径后选中Next

image-1668869174110

然后进入以下页面:
image-1668869183147

点击Install

image-1668869190584

选择 skip,然后选中 Next
image-1668869198884

这里是用户体验计划,选择是否参加,我一般选择不参加,然后选中Begin Installation开始安装

image-1668869206042

这个安装过程大概要十来分钟,根据硬件性能的不同安装速度也会有些许不同

安装完毕:

image-1668869215835

image-1668869222846

点击close关闭页面,Base Toolkit 安装完毕

1.2 安装 HPC ToolKit

然后执行 sh l_HPCKit_p_2022.3.1.16997_offline.sh 安装 HPC ToolKit,大致过程与 Base toolkit相同,

image-1668869233129

image-1668869240933

image-1668869255130

image-1668869313660

image-1668869485190

image-1668869419678

相比于Base Toolkit,HPC Toolkit的安装要快很多

image-1668869554646

image-1668869560895

安装完毕后,使用 source /public/compiler/intel/2022u2/oneapi/setvars.sh intel64 命令来启用 intel编译器

image-1668869570948

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 即可

6

评论区