安装OneAPI-2023.2.0的一点记录

摘要

本来以为安装Intel OneAPI全家桶应该挺容易的,以前也一直是直接加载全家桶。这次想分模块管理已安装的东西,就遇到了一些抽象的东西,在这里记录一下,不知道是不是我搞错了什么,感到了一丝迷惑。

Task

安装l_BaseKit_p_2023.2.0.49397_offline.shl_HPCKit_p_2023.2.0.49440_offline.sh

创建modulefiles

./modulefiles-setup.sh --output-dir=./modulefiles --ignore-latest

但是这样得到的modulefiles有些问题

  1. 没有编译器相关的modulefile,需要自己用env2compiler/2023.2.0/env/vars.sh转成一个modulefile

    ./env2 -from bash -to modulecmd -o "./compiler/2023.2.0/env/vars.sh"
  2. mkl/2023.2.0modulefile里需要将

    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 }
  3. mpi/2021.10.0modulefile里需要将所有的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.
  • icxicx is Intel nextgen compiler based on Clang /LLVM technology plus Intel proprietary optimizations and code generation.