バージョン | モジュールファイル名 | システム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 | すべての警告メッセージを表示します。 |
オプション名 | 説明 |
---|---|
-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ライブラリ をご覧ください。