PGIコンパイラ

バージョン システムA システムB システムC 備考
20.1.0 + + + 2020年3月導入
19.10.0 +(default) +(default) +(default) 2020年3月導入
19.9.0 + + + 2019年10月導入
19.1.0 + + + 2019年3月導入
18.10.0 + + + 2019年3月導入
18.7.0 + + 2018年10月導入
18.3.0 + + + 2018年3月導入
17.10.0 + + + 2018年3月導入
17.9.0 + + + 2017年10月導入
17.3.0 + + + 2017年3月導入
16.10.0 + + + 2016年12月導入
16.7.0 + 2016年10月導入

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

バージョン moduleファイル名
20.1.0 pgi/20.1.0
19.10.0 pgi/19.10.0
19.9.0 pgi/19.9.0
19.1.0 pgi/19.1.0
18.10.0 pgi/18.10.0
18.7.0 pgi/18.7.0
18.3.0 pgi/18.3.0
17.10.0 pgi/17.10.0
17.9.0 pgi/17.9.0
17.3.0 pgi/17.3.0
16.10.0 pgi/16.10.0
16.7.0 pgi/16.7.0

システムにログインした時点では,システムAではCrayコンパイラが,システムB,CではIntelコンパイラがデフォルトで利用できるようになっています.以下のようにmoduleコマンドを実行し,コンパイラを切り替えてください.コンパイラのバージョンは,上表に記載のデフォルトのバージョンが設定されます.

(システムA)
$ module switch PrgEnv-cray PrgEnv-pgi

(システムB,C)
$ module switch PrgEnv-intel PrgEnv-pgi

PGIコンパイラのバージョンを切り替えたい場合は,PrgEnv-pgi がロードされている状態で,以下のようにmoduleコマンドを実行してください.

$ module switch pgi/12.8 pgi/12.3

ログイン時に自動で環境設定を行いたい場合は,ログインシェルの起動ファイルに必要なmoduleコマンドを記述してください.詳細は 環境設定 をご覧ください. moduleコマンドの詳細は Modules をご覧ください.

  • システムA

    言語 コマンド 実行形式
    Fortran ftn ftn [オプションの並び] ファイル名の並び
    C cc cc [オプションの並び] ファイル名の並び
    C++ CC CC [オプションの並び] ファイル名の並び
  • システムB,C

    言語 コマンド 実行形式
    Fortran pgf95 pgf95 [オプションの並び] ファイル名の並び
    C pgcc pgcc [オプションの並び] ファイル名の並び
    C++ pgCC pgCC [オプションの並び] ファイル名の並び

  • 主要オプション(並列化,最適化など)
オプション名 説明
-o FILENAME オブジェクトファイルの名前を指定します.
-mcmodel=medium -dynamic システムAで2Gbyteを超えるメモリをサポートします.
-mcmodel=medium システムB,Cで2Gbyteを超えるメモリをサポートします.
-mp OpenMP指示子を有効にしてコンパイルします.
-Mconcur -dynamic 自動並列化を行います.
-O0/-O1/-O2/-O3/-O4 最適化のレベルを指定します(デフォルトは2).
-fast 一般的な最適化機能を有効にします.
-Mipa=fast 手続き間の処理を最適化します.
  • メッセージ出力とデバッグのオプション
オプション名 説明
-Mlist コンパイル時レポートを作成します.
-Minform,inform すべての警告メッセージを表示します.
-Minfo 実施した最適化についての情報を表示します.
-Mneginfo 実施しなかった最適化についての情報を表示します.
  • Fortran言語固有オプション
オプション名 説明
-Mfixed プログラムが固定形式で記述されていることを指示します.
-Mfree プログラムが自由形式で記述されていることを指示します.
-Mstandard Fortran標準外機能の利用を警告します.
-Mdclchk 暗黙の型宣言を警告します.
-Mbyteswapio ビッグエンディアン形式のファイルをサポートします.
-C 配列の領域外参照を実行時に検出します.

$ ftn test.f90    # Fortranの例
$ cc test.c       # C言語の例
$ CC test.cpp     # C++の例
$ tssrun ./a.out    # 実行

$ pgf95 test.f90    # Fortranの例
$ pgcc test.c       # C言語の例
$ pgCC test.cpp     # C++の例
$ tssrun ./a.out    # 実行

$ pgf95 -Mconcur test.f90
$ tssrun -A p=1:t=4:c=4 ./a.out # 並列数4を指定して実行

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

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

pgcc -mp test.c

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

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

システム ライブラリ
A Cray MPIライブラリ
B,C Openmpiライブラリ
  • システムAではCray MPIライブラリが利用できます.MPIプログラムのコンパイル,リンク,実行方法については, Cray MPIライブラリ をご覧ください.
  • システムB,CではOpenMPIライブラリが利用できます.MPIプログラムのコンパイル,リンク,実行方法については, OpenMPIライブラリ をご覧ください.


Copyright © Academic Center for Computing and Media Studies, Kyoto University, All Rights Reserved.