目次 (3.1. Intel コンパイラ)
- 3.1. Intel コンパイラ
3.1. Intel コンパイラ
コンパイル環境として「Intel® oneAPI Base Toolkit & HPC Toolkit」を利用する事ができます。
利用の際には次のように setvars.sh
スクリプトを実行して環境設定を行います。
3.1.1. コンパイラ環境の設定(Intel コンパイラ)
-
oneAPI 2021
$ source /home1/share/x86_64/archive/opt/intel-2021.3.0/setvars.sh
-
oneAPI 2022
$ source /home1/share/x86_64/archive/opt/intel-2022.3.0/setvars.sh
-
oneAPI 2023 (※)
$ source /home1/share/x86_64/archive/opt/intel-2023.0.0/setvars.sh
-
oneAPI 2024 (※)
$ source /home1/share/x86_64/el8/intel/oneapi-2024.1.0/setvars.sh
異なるバージョンを同時に設定することはできません。
Intel® MPI環境やMKL(Math Kernel Library)のリンク環境も同時に設定されます。
※ CentOS 7環境で使用する場合、 source
コマンドの前に module load PrgEnv-gnu-10.3.0
を実行してください。
3.1.2. コンパイルコマンド(Intel コンパイラ)
各言語のコンパイルコマンドは以下の通りです。
使用言語 | コマンド | コマンド形式 |
---|---|---|
Fortran | ifx |
ifx [オプション] ファイル… |
C 言語 | icx |
icx [オプション] ファイル… |
C++ | icpx |
icpx [オプション] ファイル… |
3.1.3. MPI 環境の設定(Intel コンパイラ)
3.1.3.1. Open MPI
現在Intel® コンパイラでコンパイルしたOpen MPI環境のmoduleは提供していません。
Intel® コンパイラ環境と同時に設定されるIntel® MPI環境をご利用ください。
3.1.3.2. MPICH2
現在MPICH2環境のmoduleは提供していません。
3.1.3.3. Intel MPI
『 3.1.1. コンパイラ環境の設定(Intelコンパイラ) 』で、Intel® MPI環境も同時に設定されます。
各言語のコンパイルコマンドは以下の通りです。
使用言語 | コマンド | コマンド形式 |
---|---|---|
MPI(Fortran) | mpiifx |
mpiifx [オプション] ファイル… |
MPI(C 言語) | mpiicx |
mpiicx [オプション] ファイル… |
MPI(C++) | mpiicpx |
mpiicpx [オプション] ファイル… |
3.1.4. コンパイラ、MPI 環境の切替え
Intel® コンパイラ環境では、コンパイラの切り替え、MPI環境の切り替え方法は提供していません。
一度ログアウトし、再度ログインしなおしてください。
3.1.5. コンパイル・オプション(Intel コンパイラ)
Intel® コンパイラのコンパイル・オプションは以下のドキュメントをご参照ください。
- Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference
- Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference
3.1.6. コンパイル方法(Intel コンパイラ)
主なコンパイル方法を以下に示します。
3.1.6.1. 逐次プログラム
-
Fortran の例
$ ifx test.f90
-
C 言語の例
$ icx test.c
-
C++の例
$ icpx test.cpp
3.1.6.2. 自動並列プログラム
Intel® oneAPI 2024 の ifx/icx/icpx
コマンドには自動並列化オプションはありません。
3.1.6.3. OpenMP プログラム
-
Fortran の例
$ ifx -qopenmp test.f90
-
C 言語の例
$ icx -qopenmp test.c
-
C++の例
$ icpx -qopenmp test.cpp
3.1.6.4. MPI プログラム(IntelMPI)
-
Fortran の例
$ mpiifx test.f90
-
C 言語の例
$ mpiicx test.c
-
C++の例
$ mpiicpx test.cpp
3.1.6.5. MPI プログラム(OpenMPI)
現在Intel® コンパイラ向けのOpen MPI環境のmoduleは提供していません。
Intel® コンパイラ環境と同時に設定されるIntel® MPI環境をご利用ください。
3.1.6.6. MKL(Math Kernel Library)
MKL ライブラリは、工学、科学、金融系ソフトウェアの開発者向けに 線形代数ルーチン、高速フーリエ変換、ベクトル・マス・ライブラリ関数、乱数生成関数を利用することができます。
前述の手順『 3.1.1. コンパイラ環境の設定(Intelコンパイラ) 』で、MKL のリンク環境も同時に設定されます。
以下にC 言語のコンパイルの例を示します。Fortran( ifx
、 mpiifx
)のみを記述していますが、C 言語( icx
、 mpicx
)、C++( icpx
、 mpiicpx
)はコマンドを読み替えてください。
-
並列/動的ライブラリ
$ ifx test.f90 -qmkl
または
$ ifx test.f90 -qmkl=parallel
-
並列/静的ライブラリ
$ ifx test.f90 -qmkl -static-intel
または
$ ifx test.f90 -qmkl=parallel -static-intel
-
シーケンシャル/動的ライブラリ
$ ifx test.f90 -qmkl=sequential
-
シーケンシャル/静的ライブラリ
$ ifx test.f90 -qmkl=sequential -static-intel
-
MPI/動的ライブラリ
$ mpiifx mpisample.f90 -qmkl=cluster
-
MPI/静的ライブラリ
$ mpiifx mpisample.f90 -qmkl=cluster -static-intel
3.1.7.コンパイル時の注意点 (Intel コンパイラ)
各システムでプロセッサーのアーキテクチャが異なり、それぞれサポートするSIMD命令セット拡張の範囲が異なります。SIMD命令セット拡張を使用する場合はコンパイル時のオプション指定と生成物を実行するシステムに注意してください。