====== 概要 ======
Intel Parallel Studio XE のUbuntu 18.04へのインストール方法について紹介します。
* 無償で使えるのは「学生」「学校の先生(授業で使用する場合のみ)」「オープンソース・ソフトウェア開発者」のみです
* これ以外の場合は有償版を購入する必要があります。
* OpenMPIやMPICHなど別の並列化ライブラリを入れている場合は、競合して動かなくなってしまいます。入っている場合は事前に必ず削除しましょう。
====== 手順 ======
===== 事前準備 =====
* 必要なソフトを事前にインストールします。
$ sudo apt install g++ gcc-multilib make
===== ファイルのダウンロード =====
* インテルのHP [[https://software.intel.com/en-us/parallel-studio-xe]] を開き、[Choose & Download]->[Student]->[Linux]とクリックしていきます。
* [Register]をクリックして、ユーザー登録を行います。
* ユーザー登録時のメールアドレスは、大学のメールアドレスのみ有効です。
* パスワードは英数字と記号を組み合わせないといけません。
* シリアル番号が表示されるので、どこかに記録しておきます。
* 特に理由がない限り、最新版のコンパイラをダウンロードします。
===== コンパイラのインストール =====
* ダウンロードしたファイルをホームディレクトリにおきます。
* ターミナルを開き、ファイルを展開してその中に入ります。以下はその例ですが、バージョンによってファイル名が変化します。
$ tar -xzvf parallel_studio_xe_2017_update3.tgz
$ cd parallel_studio_xe_2017_update3/
* 次のようにコマンドを入力してインストーラーを起動します。$ sudo ./install.sh
* 画面の指示にしたがってインストールします。
* インストールが終了すれば、これらのファイルはもう不要ですので削除して構いません
$ cd ..
$ rm -rf parallel_studio_xe_2017_update3/
$ rm -f parallel_studio_xe_2017_update3.tgz
===== パスの設定 =====
インストールしたコンパイラを使えるようにします。
* ホーム・ディレクトリにある .bashrc という名前のファイルを開き(Nautilusから開く場合は隠しファイルはCtrl+hで表示できます)、ファイルの最後に次の文を付け加えます。
$ vi ~/.bashrc
source /opt/intel/compilers_and_libraries/linux/bin/compilervars.sh intel64
source /opt/intel/intelpython3/bin/activate root
* 1行目:C/C++/Fortranのコンパイラ、Intel MPI、各種ライブラリ(MKLを含む)
* 2行目:Intel Distribution for Python(必要な場合のみ)
* Anacondaと組み合わせて使う場合はこちらも参照してください
* https://software.intel.com/content/www/us/en/develop/articles/using-intel-distribution-for-python-with-anaconda.html
* 以下のようにコマンドを入力して .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に各実装の追加機能を盛り込んだものと思って差し支えありません