====== 概要 ======
* Intel Parallel Studio XE は2020年に Intel oneAPI に生まれ変わりました。
* C++を使うだけであれば Base Toolkit で十分ですが、MPIによる並列計算をしたい場合やFortranを使いたい場合は HPC Toolkit もインストールします(このページではその方法について紹介します)。
* Ubuntu 18.04/20.04 を使用しました
* 無料で使えます。
* (追記:2023/04/11)UbuntuならAPTで入れるほうが楽ですね。この場合も/opt/intel/oneapi/にインストールされます。
* [[https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html|ダウンロードページ]]の"Select options below to download"で Linux -> APT Package Manager を選ぶと詳しい方法が出てきます
* そのままコピペすると次のとおりです
$ wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
$echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
$ sudo apt update
$ sudo apt install intel-basekit
$ sudo apt install intel-hpckit
====== 手順 ======
===== oneAPIのインストール =====
事前に以下のサイトで、Base ToolkitとHPC Toolkitをダウンロードしてください。
* https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html
次のパッケージをインストールしてください
$ sudo apt update
$ sudo apt upgrade
$ sudo apt -y install cmake pkg-config build-essential
* cmakeはサンプルを動かす際に使われているので必須ではないです。
==== Base Toolkit ====
$ sudo bash ./l_BaseKit_p_2021.1.0.2659_offline.sh
しばらくするとGUIが立ち上がるので(X Windowが使えない場合はCUIのまま)、指示に従ってインストールします
* IntelのCPUの内蔵GPUに対応したOpenCLのランタイムが入っていなければ [Warnings Intel Graphic Compute Runtime for OpenCL not found]と出てきます
* 内蔵GPU上でOpenCLを使ったプログラムを実行する予定がなければ無視してください
* もしこの警告が気になる場合は https://github.com/intel/compute-runtime にアクセスし、そこに書かれている手順に従ってインストールします。
* Core iシリーズの末尾FのものやXeonなどそもそも内蔵GPUのないものは、入れても何も起こりません(Warningsは消えます)
* 途中でEclipseを勧められますが、これも無視して構いません
==== HPC Toolkit ====
$ sudo bash ./l_HPCKit_p_2021.1.0.2684_offline.sh
GUIが立ち上がるので、指示に従ってインストールします
===== パスの設定 =====
インストールしたコンパイラを使えるようにします。
* ホーム・ディレクトリにある .bashrc という名前のファイルを開き(Nautilusから開く場合は隠しファイルはCtrl+hで表示できます)、ファイルの最後に次の文を付け加えます。
$ vi ~/.bashrc
source /opt/intel/oneapi/setvars.sh
* これをすると、毎回ターミナルを開くたびにOneAPIの読み込み画面が表示されます。これを表示させないようにするには、次のようにします
source /opt/intel/oneapi/setvars.sh > /dev/null
* 以下のようにコマンドを入力して .bashrc を読み込みます。
$ source ~/.bashrc
* ちゃんとインストールがされたか、次のように入力します。
$ icc -v
* バージョンが表示されればインストールに成功しています。
====== Intel MPIについて ======
OpenMPIとIntel MPIのコンパイラ名の対応関係は次のようになっています
^言語^Intel MPI^OpenMPI^
|C/C++|mpiicc|mpicc|
|C++|mpiicpc|mpicxx|
|Fortran|mpiifort|mpif90|
コンパイルと実行方法は以下のとおりです。
オプション-nは並列数を指定します。
$ mpiicc program.cc -o program
$ mpirun -n 12 program
* mpirunの代わりにmpiexecとしても同じです
* 歴史的にはもともとMPICHという実装でプログラムの実行にmpirunというスクリプトが使われていましたが、他のMPI実装でも使えるようにmpiexecという統一規格が定められたそうです
* mpirunは、mpiexecに各実装の追加機能を盛り込んだものと思って差し支えありません
====== Get Started ======
* https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-base-linux/top/before-you-begin.html