PGIトップ › PGI コンパイラの概要 › PGI Professional 製品概要

現在のPGI Professional製品の状況

旧PGIコンパイラ製品の販売は終了しております。新しくブランド名を変更し、無償の NVIDIA HPC SDKソフトウェアとなりましたので、これをご利用ください。

PGI Professional Edition

professional_edition mark

 PGI Professional は、PGI が提供する CPU ならびに GPU 用の全てのコンパイラ機能を含み、購入時点のリリースあるいは、それ以前のリリース・ソフトウェアを使用できる「永続ライセンス」が付いた有償「ライセンス製品」です。さらに「ライセンス製品」のオプションとして、最新の機能の追加や性能向上やバグフィックス等を適用した最新版へのバージョンアップサービスや技術サポートを受けることができる「サブスクリプション」を購入することができます。この PGI Professional エディションは、製品ソフトウェア開発のために最先端のコンパイラとサポートを必要とする HPC ユーザのためのものです。

  • Fortran, ANSI C11, C++17 の言語コンパイラ
  • 64-bit OpenPOWER、x86 マルチコア・プロセッサ用のコンパイラ
  • NVIDIA tesla GPUs アクセラレータ用コンパイル機能(OpenACC, CUDA Fortran)
  • 64ビット対応 Linux、Windows 製品ライセンス
  • ノードロック・ライセンス、ネットワーク・フローティング・ライセンス
コンパイラと付属ユーティリティ詳細

※Windows版には 現在、MS-MPIライブラリは付属していません。

コンパイラ言語が準拠している規約
  • Fortran ANSI x3.9 1978, ISO/IEC 1539 : 1980 (FORTRAN77)
  • ISO/IEC 1539-1 : 1991 (Fortran 90)
  • ISO/IEC 1539-1 : 1997 (Fortran 95) 対応JIS規格 JIS X 3001-1:1998
  • ISO/IEC 1539-1 : 2004 (Fortran 2003) 対応JIS規格 JIS X 3001-1:2009
  • ISO/IEC 1539-1 : 2010 (Fortran 2008) 一部取込
  • ANSI X3.159-1989 (ANSI C)
  • ISO/IEC 9899 : 1990
  • ISO/IEC 9899 : 1999 (C99)
  • ISO/IEC 9899 : 2011 (C11)
  • ISO/IEC 14882 : 2011 (ISO C++11)
  • ISO/IEC 14882 : 2014 (ISO C++14)
  • ISO/IEC 14882 : 2017 (ISO C++17)
  • OpenMP 4.5 (但し、GPU offload 機能を除く)
  • OpenACC 2.6 (2.0の一部、除外機能あり)
  • Windows版のC++コンパイラは提供していません

(廃止項目)
※2020年のリリースから PGDBGデバッガの提供を終了しました(開発終了)。

(補足)
Windows 版製品には、C++ 言語コンパイラは提供されません (終息)。
Windows版ライセンスにバンドルしていた Visual Studio 統合化可能な PGI Visual Fortran(PVF) ソフトウェアの提供は、2018年9月1日以降、行われません(新規販売による提供を終了し、PVFソフトウェアは終息しました)。
Windows 版製品(Windows版の詳細説明

PGI コンパイラ・ソフトウェアの概要

PGI Professional 製品

 PGI Professional Edition は、常にコンパイラ技術の先頭を歩んできた PGI の科学技術並びにエンジニアリング分野におけるフラグシップ・コンパイラを全て含んだ製品です。本製品には、MPI/OpenMP 対応の GUI ベースのシンボリック・デバッガ PGDBG 並びに OpenACC/OpenMP 対応の性能評価プロファイラ PGPROF の各ユーティリティが含まれます。コンパイラの最適化技術は、卓越したプログラム分析機能を提供、1 パスのプロシジャー間の最適化(IPA)、プロファイルに基づく最適化(PFI/PFO)、自動ベクトル化機能、データ・プリフェッチ機能、OpenMP 4.5 マルチコア対応自動並列化機能等のアプリケーションの高速化を支援する機能を有しております。なお、OpenMP 4.5の GPU offload 機能は提供しておりません。

OpenACC

 また、PGI コンパイラには、NVIDIA CUDA 対応 GPU を対象とした CUDA Fortran 拡張機能やアクセラレータ用の OpenACC 2.6 ディレクティブベースの並列プログラミングの実装が含まれています。

プログラム言語

 PGI Fortran は、PGI のネイティブな並列化機能と最新の最適化機能を具備した、F77、F2003準拠の各コンパイラを提供し、Linux、Windowsの各オペレーティング・システム上の 64ビットの x86 プロセッサならびに OpenPower プロセッサに最適化対応します。 なお、F2003 は、ISO 規格 Fortran 2003 に完全準拠しております。これらのコンパイラは、高度な科学技術のアプリケーションの開発とそのメンテナンスで要求される機能、品質、そして信頼性を提供します。

 PGI C/C++ は PGI のネイティブな並列化機能と最新の最適化機能を具備した、OpenMP / OpenACC 対応の GNU 互換 C++17 および ANSI C11 コンパイラを含んでいます。PGI C++ コンパイラ(Linux版)は、GNU GCC g++ 4.8 ~ 8.1 との ABI 互換性を有します。また、PGI C++ コンパイラは、現在でも提案されている ANSI 標準に追従し、C++14 仕様(pgc++ コマンド、Linux版)をサポートします。C++ 関数は、全ての PGI Fortran と PGI C の関数と互換性をもちます。PGI Fortran は、industry standard である ISO_C_BINDING をサポートするため、簡単に Fortran、C、C++ 言語間の引数の引き渡しや手続きの呼び出しが可能となります。

並列化機能

 これらのコンパイラでは、 コンパイラオプションの設定によりプログラムの自動並列化が可能となるだけではなく、 OpenMP4.5 の directive/pragma 行を明示的に指定することにより、threads コールなしに効果的な並列プログラミングが可能となります。なお、実行モジュールはランタイム使用料なしで、PGI コンパイラがインストールされていない任意の互換性をもつシステム上で実行することができます。また、MPI プログラムに対しては、Linux 版の場合には、MPI-3 規格に準拠した Open MPI 3.1.3 が付属しています。直ぐにマルチコア上で MPI プロセス実行が可能です。オプションの指定で直ぐにコンパイルできるようになっております。なお MPI 実行並列プロセス数には、ライセンスによる制限はありません。

Windows版について

 Windows 版の PGI コンパイラ製品は、「コマンドレベル」で使用するコンパイラです。これらは、Linux とほぼ同じ機能を提供します。Windows 版の場合は、マイクロソフト Visual Studio IDE 環境との統合はできませんのでご注意下さい。

Windows版の使用インタフェース

 Windows 版のコマンド・インタフェース環境は、Linux の Cygwin bash シェル環境を提供(同様に DOSプロンプト環境も提供)しています。これは、Linux の BASH シェル環境と同様なものであり、使い慣れた UNIX/Linuxコマンド(vi, cp, sed, awk, grep, make等)を使用して、プログラムの開発が可能です。従って、Linux 上での PGI コンパイラオプションと同じ形態でコンパイラを使用できます。本製品を利用するにあたって Microsoft Open Tools (Microsoft が提供するリンカー等のツール、ライブラリ、インクルードファイル等) を予め、別途インストールして頂く必要があります。これにより、Microsoft のネイティブな開発環境を利用しますので、Micorosoft Visual C プログラム と相互互換性を有します。

NVIDIA GPU用アクセラレータ機能

GPU/Accelerator 用のPGIアクセラレータコンパイル機能については、こちらをご覧下さい

動作環境・システム要件

mark対応プロセッサ

mark対応GPU(PGIアクセラレータコンパイラ対応)

mark 推奨オペレーティングシステム

mark メモリ容量

  • 512MB 以上

mark ハードディスク容量

  • 2GB以上 (インストール時には一時的に 2 GB以上の空き領域が必要になります)

mark 周辺機器、その他

  • GUIの使用時、マウスあるいは互換性をもつポインティング・デバイス。オンライン・ドキュメンテーションを閲覧するためのウェブ・ブラウザおよびAcrobat Reader。
PGIコンパイラ機能概要
言語コンパイラ
ツール
  • PGFORTRAN OpenMP/自動並列化/OpenACC対応 Fortran 77/90/95/2003 コンパイラ搭載
  • PGCC OpenMP/自動並列化/OpenACC対応 ANSI/K&R C11 コンパイラ搭載
  • PGC++ OpenMP/自動並列化/OpenACC対応 GNU 4.8~8.1 ABI互換 C++17 コンパイラ搭載(Linux)
  • OpenMPI 3.1.3 (Linux版)をバンドル搭載
  • PGPROF OpenACC/OpenMP 対応性能プロファイラ搭載
コード
最適化機能
  • 64bitマルチコア OpenPOWER プロセッサならびに x86 プロセッサをサポート
  • x86, OpenPOWER 上での 64bit フル・サポート -mcmodel=medium による 2GB 以上の単一データ・オブジェクトをサポート(Linux)
  • AMD64 並びに Intel64 の双方に最適化された単一の実行モジュール生成 (PGI Unified BinaryTM 機能)
  • AMD Opteron 並びに Intel64 向けの最適化(SSE/SSE2/SSE3/SSSE3, SSE4.2/AVX/AVX2、AVX512、SSE4a/ABM, prefetching, 拡張レジスタの使用、64bitアドレッシング)
  • NUMA アーキテクチャに対応するメモリ最適化
  • huge pageサポートを含むメモリ階層とメモリ割付の最適化
  • Customized OpenBLAS project sourceに基づいた BLAS/LAPACK ライブラリ
  • Intel Math Kernel Libraries (MKL) (MKL) 10.1以降のライブラリをリンク可能
  • 高度に最適化された数学内部組み込み関数
  • 高度に最適化されたIntel(R) MMX, SSE1/SSE2/SSE3 組込み関数ライブラリ(C/C++ only)
  • ワンパス IPA 最適化(内部手続き間最適化)(OpenPOWER版はまだ実装なし)
  • ライブラリも IPA 最適化可能
  • プロファイル・フィードバック最適化(PFO最適化)(OpenPOWER版はまだ実装なし)
  • gcc, gfortran, gdb との互換性あり(Linux 版)
その他の機能
  • ライブラリ関数を含むインライン化
  • ベクトル化、最適化のためのディレクティブ、プラグマの提供
  • 非常に高度な依存性解析とグローバル最適化機能
  • コンパイル時の最適化情報のリスティング機能 (-Minfo)
  • Common Compiler Feedback Format(CCFF)コンパイラ最適化情報表示
  • 共有ライブラリの作成機能 (Shared objects on Linux, DLLS on Windows)
  • Eclipse対応 C/C++プラグイン機能(Linux版)(OpenPOWER版はまだ提供なし)
  • cpp プリプロセッシング機能
  • C 、C++上での 拡張 asm サポート
  • Cray/IBM/DEC コンパイラ互換性 (Cray ポインタ、DEC STRUCTURE/UNION を含む)
  • TotalView* and Allinea DDT デバッガとの連携(OpenPOWER版はまだ提供なし)
  • 業界標準のライブラリ・アプリケーションの動作を PGI コンパイラで検証
各言語、機能
特徴
  • (Fortran)
    --r8/-i8 コンパイルフラグ、64ビット整数
    -Fortran95 拡張のフルサポート(PGFORTRAN)
    -Fortran 2003フルサポート(PGFORTRAN)
    RISC/UNIX とのバイト・スワップI/Oによる相互運用性
  • (C/C++)
    -ANSI C11 準拠
    -ANSI 並びに K&R C コンパイル・モードあり
    -GNU GCC g++ 4.8~8.1 との ABI 互換性
    -ANSI C++17準拠(Linux)

    -C++ クラス・メンバー・テンプレート
    -C++ 部分整列と部分特殊化機能
    -C++ 明示的なテンプレート修飾
    -GNU 形式のテンプレートのインスタント化
  • (並列機能)
    -スレッドベースの DO ループ自動並列化機能 (F2003)
    -スレッドベースの Forループ自動並列化機能 (C/C++)
    -フル・ネイティブな OpenMP 並列化指示行 (F2003)
    -フル・ネイティブな OpenMP 並列化pragma行 (C/C++)
    -OpenMP 4.5 のサポート(GPU offload機能除く)、256スレッドまで対応
    -マルチコア向けの自動並列化機能強化
    -SGI 互換 DOACROSS 指示行 (F77/F2003)
    -SMP/OpenMP アプリケーションに対する CPU-プロセスアフィニティ(結合)サポート
    -通信スケジュールの再利用化
    -コンカレント(同時)サブルーチン・コールサポート
Windows版
特記事項

PGIコンパイラ最適化機能

  • 非言語依存機能
    • オンライン/HTMLマニュアル
    • アセンブリ・コード・リスティング
    • IEEE内部表現形式、演算オプション
    • 複数言語間呼出し
    • cppプリプロセッサ
    • オプション指定での自動並列化
    • OpenMP指示行による並列化
    • 最適化指示行
    • コンパイル・オプション・リスティング
    • Cray/DEC/IBM構文互換
    • Cray POINTER 対応
    • 1パスの中間手続き解析機能(IPA)
    • shared Objectの生成可能
    • ファイルI/O bigエンディアンとlittleエンディアンの相互変換
    • プリフェッチ・ディレクティブ(FORTRAN, C)
  • 最適化・並列化機能
    • ピープホール最適化
    • 不要コードの削除
    • 共通部分式の削除
    • 呼出し/分岐の融合化
    • 不変式の移動
    • 大域定数の伝搬
    • 大域的データ依存解析
    • 大域的フロー解析
    • コピー伝搬
    • 帰納変数解析
    • ロード/ストア解析
    • 大域的レジスタ割当て
    • 命令スケジューリング
    • 関数のインライン化
    • ループのアンローリング
    • 不変条件式の除去
    • 高度な依存解析
    • 内側/外側ループの並列化
    • ループ交換
    • ループ分割
    • メモリ参照最適化
    • スカラ・プロモーション
    • 一時的ベクトルの生成
    • ストリップマイニング
    • 並列呼出しのサポート
    • 並列コード部のインライニング
    • メモリ階層最適化
    • キャッシュ・タイリング
    • SSE/AVX によるベクトル化
    • メモリ・プリフェッチ機能

※本ページに記載されている会社名、製品名は、各社の登録商標または商標です。