Intel® OneAPIをローカル環境に導入する

目次

Intel® OneAPIの登場によって,気楽にifortなどが使えるようになった. Ubuntuだとaptで簡単に導入できるが,非sudo環境でのセットアップということで, 以下自分向けの備忘録.

環境

  • Ubuntu 22.04 (WSL)

Toolkits

インストールできるToolkit のうち,今回は

をインストールする.なお,HPC Toolkit は Intel® Fortran Compiler や MPI Library を含む.

手順

以下,Base Toolkitのインストールを代表して記載する. 今回は,インストールをコマンドラインで行う.

  1. インストーラ(スクリプト)のダウンロード
    Base Toolkit から “Linux”/“Online Installer”/“最新版” を選び, シェルスクリプト(l_BaseKit_[version].sh)をダウンロードする.
  2. シェルスクリプト(ここではl_BaseKit_p_20231.0.46401.sh)を実行する.
    $ cd /path/to/script
    $ chmod 744 l_BaseKit_p_20231.0.46401.sh
    ここでsudoを付けないことが大事.
    $ sh ./l_BaseKit_p_20231.0.46401.sh -a --cli
    あとはターミナルの指示に従う.完了すると,
    ~/intel/oneapi/にインストールされているはず.ちなみにsudoだと,/opt/intel/oneapi/になる
  3. 環境変数設定ファイルの読み込み
    インストールが完了しても,環境変数設定ファイル(setvars.sh)を読み込まないと有効化されない.
    $ ifort
    Command 'ifort' not found, did you mean:
        command 'isort' from deb isort (5.6.4-1)
        command 'fort' from deb fort-validator (1.5.3-1build1)
    Try: sudo apt install <deb name>
    ~/intel/oneapi/setvars.shを読み込んでおくと
    $ source ~/intel/oneapi/setvars.sh
    ...
    $ ifort
    ifort: command line error: no files specified; for help type "ifort -help"
    実行可能な状況になっている!
  4. HPC Toolkit も同様にインストール

その他

読み込むモジュールを指定できる

デフォルトではインストールした全てのモジュールを読み込む設定になっている. 特定のモジュールのみを読み込むには,config.txtファイルを作成して,スクリプトの引数に渡せば良いらしい.

例えば,compiler, mpi, mklのみを読み込む場合,config.txt

default=exclude
compiler=latest
mpi=latest
mkl=latest

と記載し,

$ source ~/intel/oneapi/setvars.sh --config=/path/to/config.txt

と実行する.

.bashrcの記載に注意

実は最初にsource ~/intel/oneapi/setvars.shを試したときは,次のようなエラーが出た

:: ERROR: No env scripts found: No "env/vars.sh" scripts to process.
   This can be caused by a bad or incomplete "--config" file.
   Can also be caused by an incomplete or missing oneAPI installation.

困っていたが, Stack Overflowのこの記事 に助けられた.

どうも.bashrc

.bashrc
cdls(){
    \cd "$@" && ls
}
alias cd="cdls"

と記載していたのがマズかったらしい.lsの標準出力か何かに問題あるのかもしれない.

いずれにせよ,このaliasをコメントアウトすれば,問題なくsetvars.shを読み込める.

.bashrcに加えておこう

自分の場合は常にOneAPIを使いたいので,上記のcdls()の直前に,

.bashrc
source ~/intel/oneapi/setvars.sh --config=/path/to/config.txt

と記載しておいた.これでいつでも使える状態になる.

参考