目次 (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の例です。
-
環境の設定
$ module load PrgEnv-gnu-10.3.0
-
設定環境の確認
$ module list Currently Loaded Modulefiles: 1) PrgEnv-gnu-10.3.0
-
環境の設定解除
$ 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
-
環境の設定
$ module load MPI-openmpi-4.1.0+gnu-10.3.0
-
設定環境の確認
$ module list Currently Loaded Modulefiles: 1) MPI-openmpi-4.1.0+gnu-10.3.0
-
環境の設定解除
$ module unload MPI-openmpi-4.1.0+gnu-10.3.0
-
コンパイルコマンド
各言語のコンパイルコマンドは以下の通りです。
使用言語 | コマンド | コマンド形式 |
---|---|---|
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. 逐次プログラム
-
Fortran の例
$ gfortran test.f90
-
C 言語の例
$ gcc test.c
-
C++の例
$ icpc test.cpp
3.2.6.2. OpenMP プログラム
-
Fortran の例
$ gfortran –fopenmp test.f90
-
C 言語の例
$ gcc -fopenmp test.c
-
C++の例
$ g++ -fopenmp test.cpp
3.2.6.3. MPI プログラム(OpenMPI)
-
Fortran の例
$ mpif90 test.f90
-
C 言語の例
$ mpicc test.c
-
C++の例
$ mpicxx test.cpp
3.2.7. コンパイル時の注意点 (GNU コンパイラ)
各システムでプロセッサーのアーキテクチャが異なり、それぞれサポートするSIMD命令セット拡張の範囲が異なります。SIMD命令セット拡張を使用する場合は、コンパイル時の -m
や -march
オプション指定と生成物を実行するシステムに注意してください。