安装OneAPI-2023.2.0的一点记录
摘要
本来以为安装Intel OneAPI全家桶应该挺容易的,以前也一直是直接加载全家桶。这次想分模块管理已安装的东西,就遇到了一些抽象的东西,在这里记录一下,不知道是不是我搞错了什么,感到了一丝迷惑。
Task
安装l_BaseKit_p_2023.2.0.49397_offline.sh
和 l_HPCKit_p_2023.2.0.49440_offline.sh
创建modulefiles
./modulefiles-setup.sh --output-dir=./modulefiles --ignore-latest
但是这样得到的modulefiles
有些问题
没有编译器相关的
modulefile
,需要自己用env2
把compiler/2023.2.0/env/vars.sh
转成一个modulefile
./env2 -from bash -to modulecmd -o "./compiler/2023.2.0/env/vars.sh"
mkl/2023.2.0
的modulefile
里需要将if { ![ is-loaded tbb ] } { module load tbb } if { ![ is-loaded compiler-rt ] } { module load compiler-rt }
改为
if { ![ is-loaded tbb/2021.10.0 ] } { module load tbb/2021.10.0 } #if { ![ is-loaded compiler-rt ] } { module load compiler-rt }
mpi/2021.10.0
的modulefile
里需要将所有的intel64
改成2021.10.0
我一共暂时就只想用其中三个,但是每个都出问题了,还是直接加载大礼包算了
继续创建modulefiles
./env2 -from bash -to modulecmd -o "./software/oneapi/2023.2.0/setvars.sh"
但是使用modules管理环境还有一个问题,(应该是由于环境变量的管理)会产生一些以_modshare
的环境变量,可能会引起一些报错,但大多应该只是warning
各种新的编译器
icc
: You may use ICC for performance on CPU targets.icx
:icx
is Intel nextgen compiler based on Clang /LLVM technology plus Intel proprietary optimizations and code generation.