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® コンパイラのコンパイル・オプションは以下のドキュメントをご参照ください。

▲このページの先頭へ

3.1.6. コンパイル方法(Intel コンパイラ)

主なコンパイル方法を以下に示します。

3.1.6.1. 逐次プログラム
  1. Fortran の例

    $ ifx test.f90
  2. C 言語の例

    $ icx test.c
  3. C++の例

    $ icpx test.cpp

▲このページの先頭へ

3.1.6.2. 自動並列プログラム

Intel® oneAPI 2024 の ifx/icx/icpx コマンドには自動並列化オプションはありません。

▲このページの先頭へ

3.1.6.3. OpenMP プログラム
  1. Fortran の例

    $ ifx -qopenmp test.f90
  2. C 言語の例

    $ icx -qopenmp test.c
  3. C++の例

    $ icpx -qopenmp test.cpp

▲このページの先頭へ

3.1.6.4. MPI プログラム(IntelMPI)
  1. Fortran の例

    $ mpiifx test.f90
  2. C 言語の例

    $ mpiicx test.c
  3. 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( ifxmpiifx )のみを記述していますが、C 言語( icxmpicx )、C++( icpxmpiicpx )はコマンドを読み替えてください。

  1. 並列/動的ライブラリ

    $ ifx test.f90 -qmkl

    または

    $ ifx test.f90 -qmkl=parallel
  2. 並列/静的ライブラリ

    $ ifx test.f90 -qmkl -static-intel

    または

    $ ifx test.f90 -qmkl=parallel -static-intel
  3. シーケンシャル/動的ライブラリ

    $ ifx test.f90 -qmkl=sequential
  4. シーケンシャル/静的ライブラリ

    $ ifx test.f90 -qmkl=sequential -static-intel
  5. MPI/動的ライブラリ

    $ mpiifx mpisample.f90 -qmkl=cluster
  6. MPI/静的ライブラリ

    $ mpiifx mpisample.f90 -qmkl=cluster -static-intel

▲このページの先頭へ

3.1.7.コンパイル時の注意点 (Intel コンパイラ)

各システムでプロセッサーのアーキテクチャが異なり、それぞれサポートするSIMD命令セット拡張の範囲が異なります。SIMD命令セット拡張を使用する場合はコンパイル時のオプション指定と生成物を実行するシステムに注意してください。

▲このページの先頭へ