性能問題チェックシート

1/4

ホーム
利用・利用・申請最終更新日：
最終更新日：2006/2006/10/10/02

マニュアル
手引き
手引き

プログラム
チューニング

性能問題チェックシート
性能問題チェックシート
ちゅー
ちゅーとろ

性能問題チェックシート
性能問題チェックシート

WANS

掲示板・掲示板・相談

研究開発

ＮＳシステムＮＳシステム利システム利
用成果報告

リンク
Englishキーワード検索：

SiteMAP検索

下記にアプリケーションの性能問題をチェックする項目を列挙します。 アプリケーションのプロファイラ情報を採取し、各項目をチェックすることで、 アプリケーションに性能改善の余地があるかどうかが分かります。
概要
なお、プロファイラの採取方法はこちらを参照してください。
ログイン
利用手引き
性能上の問題箇所が見つかれば、 CeNSSチューニングガイド を参照し、プログラムの改善を行ってください。
CeNSSチューニングガイド
チューニングガイド (1)Sampling Cost
CeNSS
チューニング実例
チューニング実例 【チェック内容】
サブルーチンのSampling Costが10%を越えている。
【説明】
基本的にチューニングは高コストルーチンから着手します。 高コストのルーチンほど、性能を改善することで得られる効果が大きいためです。
Sampling Costをチェックし、10%以上を占めているサブルーチンについてはチューニングを検討してください。
Sampling Cost--------------------------------------------------------Samples% RunBarrierStartEnd--------------------------------------------------------1.683700e+04
35.77 0.000000e+00
18
269 aaa_
6.117000e+03
12.99 0.000000e+00
80
238 bbb_
3.474000e+03
7.38 0.000000e+00
20
72 ccc_2.138000e+03
4.54 0.000000e+00
111
256 ddd_1.894000e+03
4.02 0.000000e+00
269342 eee_1.697000e+03
3.60 0.000000e+00
1878 fff_(2)L2-miss率
miss率【チェック内容】
L2-miss率が1%を越えている。
【説明】L2-miss率が1%を越えているサブルーチンは、キャッシュが効果的に利用されていない可能性があります。 キャッシュミスに着目してチューニング内容を検討します。
Statistics Performance
CPUCommitMIPSMFLOPS L2-miss mTLB-ir mTLB-or Cover------------------------------------------------------------------------------------------8.732334e+02 8.499728e+11 9.733626e+02 9.116430e+01
0.13020.00000.9809 51.8
3.739155e+02 2.808601e+11 7.511325e+02 2.142955e+02
0.67460.00000.8679 61.1
3.472051e+02 4.687254e+10 1.349996e+02 1.901587e+01
9.41030.00000.0009 98.5
2.127186e+02 1.889833e+11 8.884192e+02 2.751608e+02
0.35470.00000.0000 99.5
1.888756e+02 1.322634e+11 7.002672e+02 1.167205e+02
0.65110.00000.0000 99.5
1.692195e+02 2.704895e+10 1.598454e+02 2.587049e+01 12.0801
0.00000.0001 99.5

aaa_bbb_
ccc_
ddd_
eee_
fff_

Statistics Performance
CPUCommitMIPSMFLOPS L2-miss mTLB-ir mTLB-or Cover------------------------------------------------------------------------------------------8.732334e+02 8.499728e+11 9.733626e+02 9.116430e+01
0.13020.00000.9809 51.8
3.739155e+02 2.808601e+11 7.511325e+02 2.142955e+02
0.67460.00000.8679 61.1
3.472051e+02 4.687254e+10 1.349996e+02 1.901587e+01
9.41030.00000.0009 98.5
2.127186e+02 1.889833e+11 8.884192e+02 2.751608e+02
0.35470.00000.0000 99.5
1.888756e+02 1.322634e+11 7.002672e+02 1.167205e+02
0.65110.00000.0000 99.5
1.692195e+02 2.704895e+10 1.598454e+02 2.587049e+01 12.0801
0.00000.0001 99.5

aaa_
bbb_
ccc_
ddd_
eee_
fff_

【改善方法】
具体的な改善方法については、 CeNSSチューニングガイド のp.22「6.1.1.２次キャッシュミスの削減」を参照してください。
(3)TLBTLB-miss率
miss率【チェック内容】
TLB-miss率が0.02%を越えている。
【説明】
TLB-miss率が0.02%を越えているサブルーチンは、チューニングの余地があると思われます。 アドレス空間へのアクセスに着目してチューニング内容を検討します。

【改善方法】
具体的な改善方法については、 CeNSSチューニングガイド のp.27「6.1.2.TLBミスの削減」を参照してください。
(4)MFLOPS値
MFLOPS値【チェック内容】
MFLOPS値が400以下である。
【説明】
MFLOPS値が400を下回っているサブルーチンは、改善の余地があると思われます。
Statistics Performance
CPUCommitMIPS
MFLOPS L2-miss mTLB-ir mTLB-or Cover-------------------------------------------------------------------------------------------

https://censs.chofu.jaxa.jp/jpn/tuning/check/checksheet.html

2006/10/05 20:47

性能問題チェックシート

2/4
8.732334e+02
3.739155e+02
3.472051e+02
2.127186e+02
1.888756e+02
1.692195e+02

8.499728e+112.808601e+114.687254e+10
1.889833e+111.322634e+112.704895e+109.733626e+02
7.511325e+02
1.349996e+02
8.884192e+02
7.002672e+02
1.598454e+02

9.116430e+01 0.1302
2.142955e+02 0.6746
1.901587e+01 9.4103
2.751608e+02 0.3547
1.167205e+02 0.6511
2.587049e+01 12.0801

0.00000.00000.00000.00000.00000.00000.98090.86790.00090.00000.00000.0001

51.8
61.1
98.5
99.5
99.5
99.5

aaa_bbb_ccc_
ddd_eee_fff_【改善方法】
具体的な改善方法については、 CeNSSチューニングガイド のp.30「6.1.3.その他のスカラーチューニング」を参照してください。
(5)MIPS値
MIPS値【チェック内容】
MIPS値が1000以下である。
【説明】
MIPS値が1000を下回っているサブルーチンは、改善の余地があると思われます。
Statistics Performance
CPUCommitMIPS
MFLOPS L2-miss mTLB-ir mTLB-or Cover------------------------------------------------------------------------------------------8.732334e+02 8.499728e+11 9.733626e+02 9.116430e+01 0.1302
0.00000.9809 51.8
3.739155e+02 2.808601e+11 7.511325e+02 2.142955e+02 0.6746
0.00000.8679 61.1
3.472051e+02 4.687254e+10 1.349996e+02 1.901587e+01 9.4103
0.00000.0009 98.5
2.127186e+02 1.889833e+11 8.884192e+02 2.751608e+02 0.35470.0000
0.0000 99.5
1.888756e+02 1.322634e+11 7.002672e+02 1.167205e+02 0.6511
0.00000.0000 99.5
1.692195e+02 2.704895e+10 1.598454e+02 2.587049e+01 12.0801
0.00000.0001 99.5

aaa_
bbb_
ccc_
ddd_
eee_
fff_

【改善方法】
具体的な改善方法については、 CeNSSチューニングガイド のp.30「6.1.3.その他のスカラーチューニング」を参照してください。
(6)網羅率(網羅率(Cover)
Cover)【チェック内容】
網羅率が95%以下である。
【説明】
網羅率が95%を下回っているサブルーチンは改善の余地があると思われます。
Statistics Performance
CPUCommitMIPSMFLOPS L2-miss mTLB-ir mTLB-or Cover------------------------------------------------------------------------------------------8.732334e+02 8.499728e+11 9.733626e+02 9.116430e+01
0.13020.00000.9809 51.8
3.739155e+02 2.808601e+11 7.511325e+02 2.142955e+02
0.67460.00000.8679 61.1
3.472051e+02 4.687254e+10 1.349996e+02 1.901587e+01
9.41030.00000.0009 98.5
2.127186e+02 1.889833e+11 8.884192e+02 2.751608e+02
0.35470.0000
0.0000 99.5
1.888756e+02 1.322634e+11 7.002672e+02 1.167205e+02
0.65110.00000.0000 99.5
1.692195e+02 2.704895e+10 1.598454e+02 2.587049e+01 12.0801
0.00000.0001 99.5

aaa_
bbb_
ccc_
ddd_
eee_
fff_

【補足】
網羅率 = CPU時間/経過時間*100【改善方法】
網羅率が低下する原因には、次の項目が考えられます。
・データTLBミス率が高い。
・プログラムの実行時に入出力処理が多い。
・プログラムの実行時に領域の確保、解放処理が多い。
・スレッド並列プログラムの場合、並列化される範囲が少ない。または、スレッド間の同期待ち時間が長い。
これらを改善改善することで網羅率が改善する可能性があります。
(7)(プロセス)(プロセス／プロセス／スレッド)
スレッド)バランス【チェック内容】
プロセス（もしくはスレッド)並列バランスが悪い。
【説明】
プロセス（もしくはスレッド)並列バランスが悪いサブルーチンは改善の余地があると思われます。
- 0 ++-------------------------+-------------------------+||*************************|| **********************|||*********************|||*****************|||********************|||************|||*********************|||*****|||********************|
|
|
|**|
|
********************||||*********|+-------------------------+-------------------------+
Balance against average time per Process

+583%
- 88%
- 84%
- 67%
- 79%
- 47%
- 82%
- 20%
- 80%
+ 7%
- 78%
+ 36%

3.394000e+03
6.000000e+01
8.100000e+01
1.620000e+02
1.050000e+02
2.640000e+02
8.800000e+01
3.990000e+02
9.700000e+01
5.290000e+02
1.070000e+02
6.740000e+02

Process 0
Process 1
Process 2
Process 3
Process 4
Process 5
Process 6
Process 7
Process 8Process 9
Process 10
Process 11【改善方法】
具体的な改善方法については、 CeNSSチューニングガイド の p.37「6.2.4.ロードバランスの改善」もしくは p.39「6.3.2.ロードバランスの改善」 を参照してく
ださい。
(8)Invarid値
Invarid値【チェック内容】
Invarid値が高い。

https://censs.chofu.jaxa.jp/jpn/tuning/check/checksheet.html

2006/10/05 20:47

性能問題チェックシート

3/4

【説明】
Invarid値が高い場合、FALSE SHARINGが発生している可能性があります。
Cache Overlap
CPUCommit Invalid WriteBack Cover----------------------------------------------------1.609896e+02 1.127468e+111.40740.1196 98.3
1.562683e+02 1.448637e+110.0000
0.2737 98.0
1.106383e+02 1.070335e+110.0000
0.1814 98.3
1.048984e+02 8.034469e+100.0000
0.4074 97.9
9.838431e+01 1.591080e+100.0001
3.5347 98.0

aaa_bbb_
ccc_
ddd_
eee_

【改善方法】
具体的な改善方法については、 CeNSSチューニングガイド のp.18「5.3.並列性能の分析手法」を参照してください。
(9)WriteBack値
WriteBack値【チェック内容】
WriteBack値が高い。
【説明】
この値が高い場合、キャッシュメモリーの使用が偏っている可能性があります。
Cache Overlap
CPUCommit Invalid WriteBack Cover----------------------------------------------------1.609896e+02 1.127468e+111.40740.1196 98.3
1.562683e+02 1.448637e+110.0000
0.2737 98.0
1.106383e+02 1.070335e+110.00000.1814 98.3
1.048984e+02 8.034469e+100.00000.4074 97.9
9.838431e+01 1.591080e+10
0.00013.5347 98.0

aaa_
bbb_
ccc_
ddd_
eee_

【改善方法】
具体的な改善方法については、 CeNSSチューニングガイド のp.16「5.2.スカラー性能の分析手法」を参照してください。
(10)10)スレッド非並列化部分
スレッド非並列化部分【チェック内容】
非並列処理部分がある。
【説明】
スレッド並列プログラムにおいて、スレッド並列実行されていない場合、並列実行の阻害要因を 取り除くことで性能向上する可能性があります。
Sampling Cost--------------------------------------------------------Samples% Run
BarrierStartEnd--------------------------------------------------------7.784000e+03
6.51 7.000000e+00
468
639 aaa_
5.960000e+03
4.99 0.000000e+00
2
247 MAIN__
5.869000e+03
4.91 1.100000e+01
4466 bbb_
5.689000e+03
4.76 1.000000e+00
2
169 ccc_5.069000e+03
4.24 3.000000e+00
341
653 ddd_
3.816000e+03
3.19 0.000000e+00
722
764 eee._PRL_2_
3.720000e+03
3.11 1.700000e+01
488
796 fff_
3.663000e+03
3.07 0.000000e+00
230274 ggg._PRL_10_
3.482000e+03
2.91 0.000000e+00
418
462 hhh._PRL_2_【補足】._PRL_X__がついていないサブルーチンは逐次実行を表します。
【改善方法】
コンパイルオプションに -Qp を指定してコンパイルします。すると、コンパイル時にプログラムリスト(.lst)が出力されるようになります。 プログラムリストには、最適化情報が出力されており、並列化が阻害されている要因がわかります。 他にもインライン展開の状況や、アンローリングの展開数がわかります。
プロファイラ情報
プロファイラ情報の情報の採取手順①翻訳
コンパイル時に、-Ktl_trtのオプションを追加します。

f90ns -Umpi -Ktl_trt sample.f90 -o sample.exe②実行
以下の環境変数を設定してジョブを実行します。
TRT_ENV="PMP=on"
PROF_STATS=7
PROF_PA="sta,cov"
PROF_USERFUNC=1; export TRT_ENV; export PROF_STATS; export PROF_PA; export PROF_USERFUNC③解析①②の手順でジョブを実行すると、カレントディレクトリに以下の名前のファイルが作成されます。
プロセス並列数=nnnのジョブを実行した場合
GProf_XXXXX.prof.pri
DProf_
DProf_XXXXX.
XXXXX.000.
000.prof.
prof.pri～pri～DProf_
DProf_XXXXX.
XXXXX.nnn.
nnn.prof.
prof.pri(各プロセスごとのプロファイラ情報)
これらのファイルを、mpprofコマンドにより解析します。
以下にmpprofコマンドの実行例を示します。
mpprof GProf_12345.prof.pri > GProf_12345.txt※注意プロファイラ情報を取得するためにジョブを実行する場合、通常よりも実効時間が増大します。
④スレッド並列ジョブに関してqsub時に、以下の点に注意する必要があります。
■スレッド並列数指定の環境変数を設定する。

https://censs.chofu.jaxa.jp/jpn/tuning/check/checksheet.html

2006/10/05 20:47

性能問題チェックシート

・自動並列：PARALLEL環境変数
・OpenMP ：PARALLELおよび、OMP_NUM_THREADS環境変数■qsubオプションlpには演算スレッド並列数＋１を指定する。
・プロファイラ採取のために、CPUを１つ使用する。
例１：自動並列の場合#@\$-q QJOB#@\$-r Sample00.01-01#@\$-lP 4#@\$-lp 3 ←☆PARALLEL環境変数＋１を指定#@\$：
PARALLEL=2; export PARALLEL：
mpiexec -n 4 Sample.out
例２：OpenMPの場合#@\$-q QJOB#@\$-r Sample00.01-01#@\$-lP 4#@\$-lp 3 ←☆PARALLEL環境変数＋１を指定#@\$：
PARALLEL=2; export PARALLELOMP_NUM_THREADS=2; export OMP_NUM_THREADS：
mpiexec -n 4 Sample.out

お問い合わせhttps://censs.chofu.jaxa.jp/jpn/tuning/check/checksheet.html

4/4

Copyright©2004 JAXA

2006/10/05 20:47