2

私は自分のコンピュータアーキテクチャコースの以前の試験で間違った答えを得ましたが、どうすれば最高のスピードアップを計算できますか?フォーラムラがわからない場合に、どれだけのプログラムを高速化できるかには限界があることを理解しています(彼の問題はパートbです)。どんな助けでも賛成され、感謝します!

  1. (6ポイント)アプリケーションを高速化するために、次のスピードアップによる2つの拡張機能が提案されています。
      スピードアップ1 =25
      スピードアップ2 =15

    拡張1は命令の40%に使用可能であり、拡張2は命令の30%に使用可能です。2つの拡張機能は重複していません。

    a)両方の拡張機能を適用した場合のスピードアップはどれくらいですか?

    b)これら2つの機能強化を改善し続ける場合、到達できる最高のスピードアップは何ですか?

4

2 に答える 2

0

公式を暗記しようとするのではなく、常識を働かせてください。高速化可能なコードの両方の部分を無限に高速化できると想像してみてください。つまり、まったく時間がかからないようにすることができます。何が残るでしょうか?どのくらいの時間がかかりますか?

于 2012-04-28T22:01:10.367 に答える
0

tを合計実行ライムとすると、次のようになります。

(a) あなたはこのセクションを求めていないので、将来の読者のために完全な解決策を提供します。
t' = modified run time = 0.4t / 25 + 0.3t / 15 + 0.3t = 0.336t
したがって、speedup = t/t' = t / 0.336t ~= 2.97

(b) 質問はこれらの高速化を進め続けるため、プログラム全体を改善することはできません。アムダールの法則によれば、得られる最高のスピードアップは、シーケンシャルで改善不可能な部分によって制限されます。アムダールの法則によると、最大速度アップは次1/SEQUENTIAL_PARTのようになります。その理由を理解していることを確認してください。

アムダールの法則の考え方は、改善された部分を無限にスピードアップできると仮定すると、全体のスピードアップは依然として改善されていない部分によって制限されるというものです。

于 2012-04-28T22:03:38.823 に答える