[パタヘネ:読書メモ]1章 コンピュータの抽象化とテクノロジ その2

今日で2日目。

1.8 誤信と落とし穴


パフォーマンスの改善について、よくある勘違いの例を説明している

その1: コンピュータのある点を改善しても、その改善度に応じて全体は改善しない。




Q:
100秒掛かるPGがありその80%が乗算だったとき、乗算処理を何パーセント高速化すると、性能は5倍になるか?
 
A:
どれだけ高速化しても、全体の性能を5倍にすることは出来ない。
本文中では数式を使って説明しているけど、乗算以外で20秒掛かっているのだから、計算するまでも無く明らか。


これをAmdahlの法則という。また、経済学でいう収穫逓減の法則。


その2: コンピュータの利用率(CPU負荷)が低ければ、消費電力は少ない


ベンチマークを取って実際に計測をしてみると、CPU負荷が10%程度でも消費電力はピーク時の60%までしか落ちないという結果だった。CPU負荷と消費電力は比例させるべきという考え方もある。(が実現されてないっぽい)

    ->アセンブラのnop命令は消費電力が低いイメージがあるけど、命令毎の消費電力は仕様として
       spec sheetに明記されているのだろうか...? 
 
       あと、"イメージがある"と書いておいてアレだけど、なぜ命令によって消費電力を変えら
       れるのか,実は分かってない。
       駆動させるトランジスタの数が少ないから?



とはいうものの、感覚的に本文に記載されているイメージを持っていたので問題なさそう。


その3: 性能の尺度に、性能方程式の一部を使用すること


これは前2つと違って、タイトルから意味が分かり辛い…

例として、MIPS値(時間当たりの実行命令数)が高いコンピュータが、実際のPGを動作する上で高性能とは限らないというのが挙げられている。理由は、1命令で実現可能な”機能”の水準がモノによって異なるから。

心理学でいうハロー効果みたいなもの(ちょっと違う?)
うまく説明し辛いけど、言わんとすることは良く分かるので良しとしておきます


1.9 おわりに


将来CPUの性能がどの程度向上するかの予想は困難。

APIを統一すれば、新世代のハードウェアを既存のソフトで動作させる事は容易だけど、新たなハードのアーキテクチャは発展しづらくなる。

    -> intelの386は仮想86モードを持っていたけど、今のcore iシリーズはどの程度まで
       下位互換があるのだろうか?



wikipediaによると、まだ互換性があるらしい!!

インテル自身は過去にIntel iAPX 432、Intel i860、IA-64といった革新的アーキテクチャを導入することにより、x86を置き換えようとしたが、ことごとく不成功に終わり、結果としてx86は後付けの拡張を続け今日までインテルの主力アーキテクチャとして延命している。
インテルは現在、2011年リリースのSandy Bridgeマイクロアーキテクチャから新たにAVX命令フォーマットを導入し、古いx86命令セットからの脱却を徐々に進め始めている。




性能の定量的な評価は難しいが、実行時間を指標値にするのは信頼できる値の1つ

実行時間 = 実行命令数 * 命令あたりのクロックサイクル数 * 動作周波数
         = 実行命令数 * クロックサイクル数 / 命令 * 秒数 / クロックサイクル



プログラム性能のキーになる要素

    コンパイラ
    シリコン
    アーキテクチャ(キャッシュ、並列化etc)




1.10 歴史展望と参考文献

CDを図書館で借りてこなかったので、後回し
(借りればよかった…)


1.11 演習問題

省略

4822284786
コンピュータの構成と設計(上)

関連記事

コメントを残す

メールアドレスが公開されることはありません。