OCTOPUSでは、下記のデバッガ・プロファイラ・ツールをご利用いただけます。
- GNU Debugger(GDB)
- gprof
- Intel Parallel Studio XE ツール群
- NVIDIA profiler
デバッガとは、プログラム上のバグ(不具合)を検出する作業を支援するソフトウェアです。
プログラムの実行を中断する「ブレークポイント」機能、一段階ずつ実行する「ステップ実行」機能、実行中のメモリやレジスタ、変数などの状態を見る「トレース」機能などが搭載されています。
プロファイラとは、プログラムの性能解析を行うツールです。サブルーチンの実行時間や呼び出し回数を計測し、プログラム上の無駄な処理の検出をするために使用します。
GNU Debugger(GDB)
利用方法
起動コマンド
起動コマンド例
% gdb-ia
gprof
プロファイラ「gprof」を使用することで、サブルーチン毎の実行時間や呼び出し回数を計測することが可能です。
利用方法
1.コンパイル時のオプション指定
コンパイル時に-pgオプションを指定し、デバッグ情報を生成してください。
% ifort -pg test.f90
% icc -pg test.c
2.プログラムの実行
通常の方法でプログラムを実行してください。
生成された実行ファイルを実行すると、「gmon.out」が生成されます。
3.プロファイラの起動コマンド
プロファイラを下記のコマンドで起動します。
※ここで指定する実行ファイルは「gmon.out」ではなく、手順1でコンパイルして生成した実行ファイルです。特に指定しなければ「a.out」という名前で生成されます。
% gprof (実行ファイル名)
実行したサブルーチンの一覧と関数の呼び出し回数が表示されます。
下記は表示例です。
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
91.26 0.94 0.94 4 235.00 235.00 AAA_
8.74 1.03 0.09 BBB_
0.00 1.03 0.00 1 0.00 940.01 CCC_
表示されている項目は下記の通りです。
% time | 実行時間(全実行時間に対する関数当たりのパーセンテージ) |
cumulative seconds | その関数より上位に示されている関数との累積実行時間(秒) |
self seconds | 関数あたりの総実行時間(秒) |
calls | 関数の実行された回数 |
self ms/call | 1回の関数実行にかかる時間(ミリ秒) |
total ms/call | 1回の関数実行にかかる時間の合計(ミリ秒) |
name | 関数名 |
Intel Parallel Studio XE ツール
-
OCTOPUSでは、Intel Parallel Studio XE 2013, 2015, 2017, 2018 update2, 2018 update3 が利用可能です。
以下のツールを提供しております。
・Intel VTune Amplifier
・Intel Advisor
・Intel Inspector
・Intel Trace Analyzer & Collector
Intel Parallel Studioについては下記の公式ページをご覧くださいませ。
Intel Parallel Studio XE (エクセルソフトHP)
Intel VTune Amplifier
-
プログラムの初歩的なチューニングから高度な最適化までサポートするパフォーマンス・プロファイラーです。
具体的な利用方法は下記ページをご覧ください。
Intel®VTune Amplifier の利用方法(OCTOPUS)
また、VTune AmplifierはApplication Performance Snapshotという機能を持っています。プログラムを簡易的に解析し、今後のチューニングの方針、目標を提示する機能です。プログラムチューニングの第1歩として利用することをオススメします。
具体的な利用方法は下記ページをご覧ください。
Application Performance Snapshotの利用方法(OCTOPUS)
Intel Advisor
-
ベクトル化、スレッド化などのフォーマンス向上を支援する、高性能ベクトル化/スレッド化プロトタイプ生成・チューニング支援ツールです。
具体的な利用方法は下記ページをご覧ください。
Intel®Advisorの利用方法(OCTOPUS)
Intel Inspector
-
プログラム開発者向けのメモリー/スレッド化エラー検出ツールです。
具体的な利用方法は下記ページをご覧ください。
Intel®Inspectorの利用方法(OCTOPUS)
Intel Trace Analyzer & Collector
-
MPIアプリケーション向けパフォーマンス分析、チューニング・ツールです。
具体的な利用方法は下記ページをご覧ください。
Intel®Trace Analyzer & Collectorの利用方法(OCTOPUS)
NVIDIA profiler
-
NVIDIAが提供しているプロファイラです。GPUに関する解析に特化しています。
利用方法は下記のページをご覧ください。
NVIDIA profiler の利用方法(OCTOPUS)