ソフトウェア基礎技術研修

性能の役割
(教科書第2章)
「性能が優れている」とは?(1)
航空機の性能を比較してみよう!
航空機
搭乗人
員数
航続距離
(マイル)
巡航速度
(マイル/時)
輸送能力
(人・マイル/時)
ボーイング777
375
4,630
610
228,750
ボーイング747
470
4,150
610
286,700
BAC/Sud コンコルド
132
4,000
1,350
178,200
ダグラス DC-8-50
146
8,720
544
79,424
問題:性能が最も優れている航空機はどれでしょう?
性能=巡航速度の場合・・・・・コンコルド
性能=航続距離の場合・・・・・ダグラスDC-8-50
性能=搭乗人員数の場合・・・ボーイング747
「性能」の定義によってどの航空機が最も優れているかは異なる!
九州大学工学部電気情報工学科
「性能が優れている」とは?(2)
航空機の性能を比較してみよう!
航空機
搭乗人
員数
航続距離
(マイル)
巡航速度
(マイル/時)
輸送能力
(人・マイル/時)
ボーイング777
375
4,630
610
228,750
ボーイング747
470
4,150
610
286,700
BAC/Sud コンコルド
132
4,000
1,350
178,200
ダグラス DC-8-50
146
8,720
544
79,424
問題:「性能が高い=人を運ぶのに要する時間が短い」とする時,
最も性能が優れている航空機はどれでしょう?
1人の旅客を運ぶのに要する時間に着目した場合・・・・・コンコルド
450人の旅客を運ぶのに要する時間に着目した場合・・・ボーイング747
「性能が高いとは?」を定義する事が重要!
九州大学工学部電気情報工学科
コンピュータにおける性能の定義
性能は評価者の関心によって異なる尺度で評価される.
 応答時間(response time): 作業開始から作業終了までの時間.
(ユーザ向けの尺度)
 スループット(throughput): 一定時間内に終了した作業の総量.
(計算機管理者向けの尺度)
九州大学工学部電気情報工学科
スループットと応答時間(1)
問題:あるプログラムAを実行する.コンピュータに搭載されたプロセッサを2倍高
速なものに取り替えた場合,
A)スループットが増大する
B)応答時間が短くなる (応答時間での「作業開始/終了=プログラム実行開始/終了」と仮定)
C)スループットが増大し、応答時間も短くなる
の何れの効果を得ることができるか?ただし,プログラムAの実行以外の処理
は全て無視する.また,プロセッサは同時に高々1個のプログラムしか実行でき
ないと仮定する.
プログラムA
10秒で実行完了
スループットの増大
プログラムA
10秒で2回実行可能
2倍高速なプロセッサに変更
答え:C
応答時間の短縮
プログラムA
5秒で実行完了
九州大学工学部電気情報工学科
スループットと応答時間(2)
問題:ユーザAのプログラムと,ユーザBのプログラムを実行する.コンピュータの
数を1台から2台に増やした場合,
A)スループットが増大する (応答時間での「作業開始/終了=プログラム実行開始/終了」と仮定)
B)各ユーザに対する応答時間が短くなる
C)スループットが増大し、各ユーザに対する応答時間も短なる
の何れの効果を得ることができるか?ただし,これらプログラムの実行以外の処
理は全て無視する.また,各コンピュータそれぞれは同時に高々1個のプログラム
しか実行できず, 1つのプログラムを2台のコンピュータ上で分散処理することは
無いと仮定する.
答え:A
プログラムA
10秒で実行完了
プログラムA
10秒で実行完了
その後・・・
プログラムB
10秒で実行完了
合計で20秒
同時に・・・
プログラムB
10秒で実行完了
合計で10秒
九州大学工学部電気情報工学科
性能と実行時間
絶対性能: この授業では実行時間(つまり,応答時間)の最小化
に焦点をしぼる.
1
性能 
実行時間
以下の性質が成り立つ.(自明)
性能X  性能Y
 実行時間X  実行時間Y
相対性能: コンピュータ Y はコンピュータ X の何倍性能が高いか.
性能Y 実行時間X
n

性能X 実行時間Y
九州大学工学部電気情報工学科
「コンピュータAは1.5倍速い」とは?
問題:あるプログラムの実行に要する時間が,
•コンピュータAの場合では10秒
•コンピュータBの場合では15秒
とする.この時,コンピュータAはコンピュータBよりもどれだけ速いか?
性能Y 実行時間X
n

性能X 実行時間Y
YはXよりもn倍速い!
性能A 実行時間B 15

  1.5 よって,AはBより1.5倍速い
性能B 実行時間A 10
• 同じ仕事をこなす場合,実行時間の短いコンピュータの方が
高速である(性能が高い)
• 性能を向上するためには,実行時間を短縮する必要がある
九州大学工学部電気情報工学科
性能の測定(1)
マルチプログラム環境
Webブラウザ
(アプリケーション)
MP3プレーヤ
(アプリケーション)
オペレーティング
システム
九州大学工学部電気情報工学科
性能の測定(2)
マルチプログラミング環境: 複数のアプリケーションを時分割で
実行することで,見かけ上,同時実行している.
Webブラウザ MP3プレーヤ Webブラウザ MP3プレーヤ Webブラウザ
CPU時間,CPU実行時間
O
S
O
S
O
S
ユーザCPU時間
OS
システムCPU時間
応答時間,経過時間
九州大学工学部電気情報工学科
性能の測定(3)
time コマンドによる CPU 時間の測定(UNIX): 実経過時間,ユー
ザCPU時間,システムCPU時間を報告.
time コマンドライン
九州大学工学部電気情報工学科
測定基準どうしの関係(1)
コンピュータのハードウェアはクロックに同期して動く.
クロック周波数(単位時間あたりのクロックサイクル数)
クロックサイクル
時間
プログラムの実行開始か
ら終了までに何クロック・
サイクル要したか?
プログラムの実行時間  クロックサイクル数

1クロック・サイクル
は何秒か?
クロックサイクル時間
クロックサイクル数
クロック周波数
*)クロック周波数=クロックサイクル時間の逆数
九州大学工学部電気情報工学科
測定基準どうしの関係(2)
プログラム実行に要した
CPI (Clock cycle Per Instruction)
クロックサイクル数
→1命令実行あたりの平均クロックサイクル数=
実行命令数
プログラムの実行開始か
ら終了までに何クロック・
サイクル要したか?
プログラムの実行時間  クロックサイクル数
1クロック・サイクル
は何秒か?
クロックサイクル時間
実行命令数 CPI
何個の命令が
実行されたか?
命令1個の実行に平均で
何クロックサイクル必要か?
九州大学工学部電気情報工学科
測定基準どうしの関係(3)
各測定基準の計測:




実行時間は実測すればよい.
クロックサイクル時間はマシンの性能諸元を参照すればよい.
実行命令数は各種ツール,シミュレータ,専用カウンタにより得られる.
CPIは厄介.
 プロセッサやメモリシステムの構造に依存.
 アプリケーションに依存.
 アプリケーション中で実行されるクラス別の命令の出現頻度に依存.
 同じ命令セットアーキテクチャでも実装が異なれば変わる.
 CPIは詳細なシミュレーション,またはハードウェアカウンタとシミュレーショ
ンの併用で得る.
九州大学工学部電気情報工学科
例:2つのコンピュータの性能比較
(同一命令セット,同一プログラムの実行を仮定)
どちらのコンピュータが,どのくらい速いか?
• クロックサイクル時間=1ns
• CPI=2.0
コンピュータA
• クロックサイクル時間=2ns
• CPI=1.2
コンピュータB
• 実行命令数をIとする(命令セットは同じなのでAとBでは実行命令数が同じ)
• コンピュータAに関して
☆クロックサイクル数=実行命令数×CPI=I×2.0
☆実行時間=クロックサイクル数×クロックサイクル時間=I×2.0×1ns=I×2ns
• コンピュータBに関して
☆クロックサイクル数=実行命令数×CPI=I×1.2
☆実行時間=クロックサイクル数×クロックサイクル時間=I×1.2×2ns=I×2.4ns
• 性能の差
☆速さの違い=性能B/性能A=実行時間A/実行時間B=2.4/2.0=1.2
☆よって,コンピュータAの方がBよりも1.2倍速い!
九州大学工学部電気情報工学科
性能を向上するには?
プログラムの実行時間  クロックサイクル数
クロックサイクル時間
実行命令数 CPI
 実行命令数,CPI,クロックサイクル時間を小さくすれば良い!
 これらの間にはトレードオフ関係がある!
 実行命令数の削減( ↘ )・・・CPIが大きくなる( ↗ )
 CPIの削減( ↘ )・・・実行命令数が増える( ↗ )
 実行命令数とCPIの削減( ↘ )・・・クロックサイクル時間が大きくなる( ↗ )
 実行時間を決定するこれら3つの要因を全て考慮にいれて性能を
比較する必要がある!
九州大学工学部電気情報工学科
例:クロックサイクル時間を1/2にする
クロック周波数を2倍(クロックサイクル時間を1/2)にしても,
実行時間が必ずしも半分になる訳では無い!
クロック周波数=400MHz
プログラムXの実行時間=10秒
クロック周波数=800MHz
プログラムXの実行時間=?秒
クロック周波数を2倍に改善!
ただし・・・
コンピュータA クロック周波数向上技術の適用により コンピュータB
クロックサイクル数が1.2倍になったとする
Aでのクロックサイクル数=10秒×400×106=4×109
Bでのクロックサイクル数=1.2×4×109=4.8×109
Bでの実行時間=(4.8×109サイクル)/(800×106)=0.6×10=6秒
*)実行時間=クロックサイクル数/クロック周波数
九州大学工学部電気情報工学科
例:実行命令数を削減する
必ずしも,「実行命令数が少ない方が実行時間が短い」
わけでは無い!
命令
各命令のCPI
プログラムX
プログラムY
A
1クロックサイクル
B
2クロックサイクル
C
3クロックサイクル
Aを2回実行
Bを1回実行
Cを2回実行
Aを4回実行
Bを1回実行
Cを1回実行
プログラムXの実行に関して
クロックサイクル時間=1nsと仮定
• 実行命令数=5命令
• クロックサイクル数=(1×2)+(2×1)+(3×2)=10
• 実行時間=10クロックサイクル×1ns=10ns
プログラムYの実行に関して
• 実行命令数=6命令
• クロックサイクル数=(1×4)+(2×1)×(3×1)=9
九州大学工学部電気情報工学科
• 実行時間=9クロックサイクル×1ns=9ns
Amdahl の法則(1)
(絶対)性能: この授業では実行時間の最小化に焦点をしぼる.
改善後実行時間
改善部分実行時間
 非改善部分実行時間
改善度
改善度 n:
非改善部分
改善部分
×1/n
九州大学工学部電気情報工学科
Amdahl の法則(2)
スピードアップ率
改善部分=50%
改善部分=25%
改善部分=10%
改善度
九州大学工学部電気情報工学科
性能の比較とまとめ方(1)
コンピュータAでの
実行時間(秒)
コンピュータBでの
実行時間(秒)
プログラム1
1
10
プログラム2
1,000
100
 プログラム1に関しては、AはBよりも10倍速い。
 プログラム2に関しては、BはAよりも10倍速い。
どちらのコンピュータの方が性能が良い?
九州大学工学部電気情報工学科
性能の比較とまとめ方(2)
 性能評価を目的としたプログラムをベンチマークと呼ぶ
 通常,複数個のベンチマークを用いて性能を評価する
 得られた結果から総合性能を求める必要あり
総合性能
総合性能
ベンチマーク
ベンチマーク
ベンチマーク
ベンチマーク
ベンチマーク
ベンチマーク
ベンチマーク
ベンチマーク
結果
結果
結果
結果
結果
結果
結果
結果
九州大学工学部電気情報工学科
総合性能値の求め方
 合計実行時間:各プログラムの実行時間の合計
 平均実行時間:プログラムあたりの平均実行時間
 算術平均
 加重算術平均
 正規化実行時間:基準コンピュータに対する実行時間の比
 基準となるコンピュータでの実行時間を1.0とみなす
 正規化した結果の平均をとる際は幾何平均を使用
九州大学工学部電気情報工学科
合計実行時間と平均実行時間
コンピュータAで コンピュータBで
の実行時間(秒) の実行時間(秒)
プログラム1
1
10
プログラム2
500
100
合計実行時間
501
110
平均実行時間
算術平均
250.5
加重算術平均
55
5.99
10.9
加重算術平均では,プログラム1と2の実行が,それぞれ,全負荷の99%と1%を占めると仮定
算術平均 =
1
n
時間 i

n
i 1
n
加重算術平均 =  重みi ×時間i
全プログラムの重みを1/nに固定
i 1
•nはプログラム数
•時間iはプログラムiの実行時間
•重みiはプログラムiの実行頻度
九州大学工学部電気情報工学科
実行時間の正規化
均
幾
何
平
均
平
算
10
9
8
7
6
5
4
3
2
1
0
均
幾
何
平
ム
ラ
グ
ロ
プ
ロ
グ
ラ
ム
2
コンピュータA
コンピュータB
1
正規化実行時間
Bを基準に正規化
プ
正規化した実行時間の算術平均をとった場
合,基準の選び方によって優劣が変わる!
→幾何平均を用いる!
ム
グ
ロ
プ
i 1
•n:プログラム数
• 実行時間比i:基準に対して正規
化したプログラムiの実行時間
ラ
ム
グ
ロ
プ
幾何平均= n  実行時間比i
ラ
n
均
100
術
1,000
平
プログラム2
術
10
2
1
1
プログラム1
コンピュータA
コンピュータB
10
9
8
7
6
5
4
3
2
1
0
算
コンピュータAで コンピュータBで
の実行時間(秒) の実行時間(秒)
正規化実行時間
Aを基準に正規化
九州大学工学部電気情報工学科