GNUコンパイラ

バージョン モジュールファイル名 システムA システムB/C システムG クラウドシステム 備考
12.2.0 gcc/12.2.0 + + + + 2022年11月導入
8.5.0 - + + + + OS標準

+ : すべてのユーザが利用可能
- : 利用不可

システムにログインした時点では、IntelコンパイラもしくはNVIDIA HPC SDKコンパイラがデフォルトで利用できるようになっています。以下のようにmoduleコマンドを実行し、コンパイラを切り替えてください。

(システムA、B、C、クラウド)
$ module switch PrgEnvIntel PrgEnvGCC
(システムG)
$ module switch PrgEnvNvidia PrgEnvGCC

システムにログインした時点で、バージョン8.5.0が使えます。バージョン12.2.0を使いたい場合は、PrgEnvGCC がロードされている状態で、以下のようにmoduleコマンドを実行してください。

$ module load gcc/12.2.0

言語 コマンド 実行形式
Fortran gfortran gfortran オプション ファイル名
C gcc gcc オプション ファイル名
C++ g++ g++ オプション ファイル名

  • 主要オプション(並列化、最適化など)
オプション名 説明
-o FILENAME オブジェクトファイルの名前を指定します。
-mcmodel=medium 2Gbyteを超えるメモリをサポートします。
-fopenmp OpenMP指示子を有効にしてコンパイルします。
-O0/-O1/-O2/-O3 最適化のレベルを指定します(デフォルトは-O0)。
  • メッセージ出力とデバッグのオプション
オプション名 説明
-Wall すべての警告メッセージを表示します。
  • Fortran言語固有オプション
オプション名 説明
-ffixed-form プログラムが固定形式で記述されていることを指示します。
-ffree-form プログラムが自由形式で記述されていることを指示します。
-pedantic Fortran拡張の利用を警告します。
-fimplicit-none 暗黙の型宣言を警告します。

$ gfortran test.f90    # Fortranの例
$ gcc test.c           # C言語の例
$ g++ test.cpp         # C++の例
$ tssrun ./a.out       # 実行

OpenMPは、プログラムの並列化のためのオープン規格です。 ソースコードに#pragma ompで始まる指示を書き込み、所定のオプションをつけてコンパイルするだけで、コンパイラに自動で並列化を行わせることができます。

OpenMPへの指示を書き込んだソースコードをコンパイルするには、-fopenmpオプションをつけます。

$ gcc -fopenmp test.c

コンパイルしたプログラムを実行する時、-Aオプションでtとcに並列数を指定すると、その並列数でプログラムが実行されます。

$ tssrun --rsc p=1:t=8:c=8 ./a.out # 並列数8を指定して実行

IntelMPIライブラリ、OpenMPIライブラリが利用できます。MPIプログラムのコンパイル、リンク、実行方法については、IntelMPIライブラリOpenMPIライブラリ をご覧ください。