性能の役割 (教科書第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を基準に正規化 九州大学工学部電気情報工学科
© Copyright 2024 ExpyDoc