3.2.GNUコンパイラ

目次 (3.2. GNUコンパイラ)

▲このページの先頭へ

3.2. GNUコンパイラ

コンパイル環境としてOS標準のGNUコンパイラの他、GNUコンパイラ 10.3.0 / 12.2.0 等を利用する事ができます。
標準でGNUコンパイラ 8.5.0 が利用できますが、他のバージョンのGNUコンパイラを利用するときは以下の3.2.1. コンパイラ環境変数の設定(GNU コンパイラ) の手順を実施して、環境を設定します。

▲このページの先頭へ

3.2.1. コンパイラ環境変数の設定(GNU コンパイラ)

以下はGNUコンパイラ 10.3.0の例です。

  1. 環境の設定

    $ module load PrgEnv-gnu-10.3.0
  2. 設定環境の確認

    $ module list
    Currently Loaded Modulefiles:
    1) PrgEnv-gnu-10.3.0
  3. 環境の設定解除

    $ module unload PrgEnv-gnu-10.3.0

▲このページの先頭へ

3.2.2. コンパイルコマンド(GNU コンパイラ)

各言語のコンパイルコマンドは以下の通りです。

使用言語 コマンド コマンド形式
Fortran gfortran gfortran [オプション] ファイル…
C 言語 gcc gcc [オプション] ファイル…
C++ g++ g++ [オプション] ファイル…

▲このページの先頭へ

3.2.3. MPI 環境変数の設定(GNU コンパイラ)

3.2.3.1. Open MPI
  1. 環境の設定

    $ module load MPI-openmpi-4.1.0+gnu-10.3.0
  2. 設定環境の確認

    $ module list
    Currently Loaded Modulefiles:
    1) MPI-openmpi-4.1.0+gnu-10.3.0
  3. 環境の設定解除

    $ module unload MPI-openmpi-4.1.0+gnu-10.3.0
  4. コンパイルコマンド

    各言語のコンパイルコマンドは以下の通りです。

使用言語 コマンド コマンド形式
MPI(Fortran) mpif90 mpif90 [オプション] ファイル…
MPI(C 言語) mpicc mpicc [オプション] ファイル…
MPI(C++) mpicxx mpicxx [オプション] ファイル…

▲このページの先頭へ

3.2.3.2. MPICH2

現在MPICH2環境のmoduleは提供していません。

▲このページの先頭へ

3.2.4. コンパイラ、MPI 環境の切替え

コンパイラ、MPI 環境を切り替えるコマンドは以下の通りです。

コンパイラ MPI 環境設定コマンド 設定解除コマンド
GNU 10.3.0 Open MPI module load PrgEnv-gnu-10.3.0
module load MPI-openmpi-4.1.0+gnu-10.3.0
module unload PrgEnv-gnu-10.3.0
module unload MPI-openmpi-4.1.0+gnu-10.3.0

▲このページの先頭へ

3.2.5. コンパイル・オプション(GNU コンパイラ)

GNU コンパイラのコンパイル・オプションは以下のドキュメントをご参照ください。

▲このページの先頭へ

3.2.6. コンパイル方法(GNU コンパイラ)

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

▲このページの先頭へ

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

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

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

    $ icpc test.cpp

▲このページの先頭へ

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

    $ gfortran –fopenmp test.f90
  2. C 言語の例

    $ gcc -fopenmp test.c
  3. C++の例

    $ g++ -fopenmp test.cpp

▲このページの先頭へ

3.2.6.3. MPI プログラム(OpenMPI)
  1. Fortran の例

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

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

    $ mpicxx test.cpp

▲このページの先頭へ

3.2.7. コンパイル時の注意点 (GNU コンパイラ)

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

▲このページの先頭へ