目次 (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.0module load MPI-openmpi-4.1.0+gnu-10.3.0 | module unload PrgEnv-gnu-10.3.0module 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 オプション指定と生成物を実行するシステムに注意してください。
