|
PGPROF は、グラフィカルな操作が可能な MPI プロセス並列 並びに OpenMP スレッド並列対応の性能解析ユーティリティです。 これは、32ビットあるいは64ビットのプロセッサを搭載するシステム上で動作し、OpenMP のスレッドプログラムプロファイリング機能を提供します。プロファイリング機能は、関数・サブルーチンレベルだけではなく、ソースコードレベルにおいても提供します。このユーティリティは、PGI
Workstation 製品並びに PGI Server/PGI CDK 製品に MPIプロセス並列とOpenMP スレッド対応のプロファイラがバンドルされます。
PGI Workstation 並びに PGI Server クラスの製品には、 PGI 7.1 以降、ローカルなシステム上で 8 MPI プロセスまでの MPI プロファイリング機能をバンドルします。Windows 版では、Microsoft(R) MSMPI 並列プログラムのプロファイリング機能を提供します。
PGI CDK 製品には、リモート並びにローカルプロセスのどちらの MPI プロセスにも対応するプロファイリング機能を提供します。また、PGPROF ユーティリティとともに、OpenMPスレッド/MPIプロセス対応のデバッガ PGDBG も高速なアプリケーションの作成を支援します。
簡単なプロファイリング機能の提供
PGPROF を使用して、どの関数がどの位の頻度でどの位の CPU 時間を費やしたかを即座に確かめることが可能となります。PGPROF は関数レベルだけでなく、ソースラインレベルのプロファイリングをサポートします。また、PGI
のユニークな方法を使って、最適化コードをブロックレベルで効果的にプロファイルすることができます。また、コンパイラのプロファイリング制御オプションには、一般的な
gprof 互換の gmon.out を生成できるモードがあり、この gmon.out ファイルも PGPROF にて分析できる機能を有します。

フルサイズ・イメージ(複数プロセスpghpfのプロファイル)
強力な GUI 機能
スレッドプログラムによる並列プログラムのプロファイリングは、従来、極めて難しい作業でした。この困難なタスクを支援するために、PGPROF は自由度の高い
GUI による操作機能を提供します。PGPROF を使用することにより、実行時間がどこで、どの位の頻度でどの関数で(どのソースラインで)消費されているかを直視的に見ることができます。PGPROF
の GUI は、棒グラフ、パーセンテージ表示、カウント表示、時間表示等の直感的で分かりやすいフォーマットで表示することができます。OpenMP
のスレッドプログラムの 並列リージョンの中でどこが時間を消費しているか等も簡単に理解できます。

スレッド単位のプロファイリング(ソースレベル・プロファイル)

MPI プロセス単位のプロファイリング(関数レベル・プロファイル)
PGPROF の一般的な使用法
PGPROF を使用してアプリケーションの中核部分あるいはホット・スポットを見つけるための一般的な方法は以下のとおりです。
- 関数レベルのプロファイリングを行い、 Time あるいは Cost で Sort を行います。
- そのクリティカルな関数をより詳細に分析するために、ソースコードレベルのプロファイリング機能を利用して、その部分を特定します。
- ソースコードレベルのプロファイリングを行い、 Time あるいは Cost で Sort を行います。
- そのホット・スポットを分析します。
PGI Workstation ライセンス
スレッドレベルの OpenMP プロファイリング機能
ローカルなシステム上で 8 MPI プロセスまでのMPI プロファイリング機能
PGI Server ライセンス
スレッドレベルの OpenMP プロファイリング機能
ローカルなシステム上で 8 MPI プロセスまでのMPI プロファイリング機能
PGI CDK ライセンス
スレッドレベルの OpenMP プロファイリング機能
CPU数のライセンスに応じた Local/Remote MPI プロセスプロファイリング機能対応
|