PGIコミュニティ版は誰でも無料で使えます。URLはpgi.comでもpgigroup.comでもないので注意。Fortranが含まれていて,OpenACCやCUDA Fortran(macOSはGPUサポートなし)が使えます。MPIは16プロセスまで。詳しくは 機能の比較 参照。
インストール
Mac版のインストールは,インストーラーを使って簡単にできます。
Linux版はシェルスクリプトの質問に答えていく形式。
~~Windows版はVisual Studio 2015が必要です。~~Microsoftアカウントを作って,このあたりからダウンロードします。Visual Studio 2015からだと最新版の2017に誘導されます。
[追記] 18.10からVisual Studio 2017に対応
MSYS2が使いたいので,Cygwinは断りました。それでも環境変数を設定済のコマンドプロンプトPGI Cmdから使えます。
数値計算をするならIntelのMKLが無料で使えるので入れておきましょう。オプションでPGIコンパイラのサポートにチェックを入れてください。
MSYS2から使う
MSYS2から使うにはPATH
の設定が必要です。PGIコンパイラは無料ですがコンパイル時にはライセンスをチェックしていますので,ライセンスファイルを環境変数LM_LICENSE_FILE
に指定しておく必要があります。MKLPATH
にIntel Math Kernel Libraryのライブラリのパスを指定します。ここではMKLで導入したものを指定しています。
PGI="/c/Program Files/PGI"
PGIVERSION=18.10
PATH="/c/Program Files/Java/jdk1.8.0_144/bin:/c/Program Files/PGI/flexlm:${PGICE}/win64/2018/cuda/9.1/bin:${PGI}/win64/2018/cuda/9.2/bin:${PGI}/win64/2018/cuda/10.0/bin:/c/Program Files (x86)/Windows Kits/10/bin/x64:/c/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64:${PGI}/win64/${PGIVERSION}/bin:${PATH}"
MANPATH="${PGICE}/win64/${PGIVERSION}/man:${MANPATH}"
LM_LICENSE_FILE="${PGI}/license.dat"
MKLPATH="/c/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win"
export PATH MANPATH LM_LICENSE_FILE MKLPATH
[追記] 18.10に更新しました。バッチファイルC:\Program Files\PGI\win64\18.10\pgi_dos.bat
を参考にPATH等環境変数の設定を改めました。
動作確認
PGIコンパイラによるインテル MKL ライブラリのリンク方法の行列積のプログラムのコンパイルやリンクを試してみましょう。MKLPATH
は設定済ですし,WindowsのPathの設定などは必要ありません。
$ pgfortran -Minfo -fast -L"$MKPATH" mkl_intel_lp64.lib mkl_pgi_thread.lib mkl_core.lib -mp mutmul.f -o mutmul
[追記]
-
MKLPATH
は引用符で囲む。 - ライブラリを
-l
で参照すると当然先頭にlib
がついてlibmkl_core
のようになるので,ファイル名をそのまま書く。