2012-04-28 11 views
2

私は間違った答えを得た私のコ​​ンピューターアーキテクチャーコースの前回の試験に行きました。 私は、forumla(彼の問題はパートbである)が不確かなので、どれくらいのスピードでプログラムを実行できるかという限界を理解しています。どのような助けもupvotedされ、非常にありがとう感謝!最高のスピードアップを計算する

  1. (6点)以下の高速化が提案さを有する2つの拡張機能、アプリケーションを加速する:
    高速化 = 25
    高速化 = 15

    増強1れます命令の40%に使用可能であり、エンハンスメント2は命令の30%に使用可能である。 2つの拡張は重複しません。

    a)どちらのエンハンスメントを適用した場合のスピードアップとは?

    b)これらの2つの機能強化を継続しておけば、到達可能な最高のスピードアップは何ですか?

+0

スピードアップ25は何を意味しますか? –

+0

スコット、パート(b)はjfiskが助けを求めているものなので、問題はないと思う(私は25%ではなく25xだと思うが、それは不明であることに同意する)。 –

+0

私はそれが[Amdahlの法則](http://en.wikipedia.org/wiki/Amdahl%27s_law)によって計算できると思います。 –

答えて

0

よりもむしろ常識を使用して、数式を暗記しようとしています。スピードアップ可能なコードの両方の部分が無限ににスピードアップできると想像してください。つまり、まったく時間がかかりません。残るものは何ですか?どれくらい時間がかかりますか?

+0

いいえ、問題はあなたがこれらの改善を進め続けていると述べています。 [amdahlの法則](http://en.wikipedia.org/wiki/Amdahl%27s_law)では、スピードアップには限界があります。 – amit

+0

私は、彼自身のためにアムダールの法律を発見することに向けて、ジフィスを振り向かせることを望んでいました。どうしてあなたが「いいえ」と言っているのか分かりません。「コードの部分を無限にスピードアップすれば、何も残らないでしょう」と言っていたと思いますか?それは私の意図ではありませんでした。 –

+0

それから私はあなたを誤解して、コメントを元に戻しています。答えを編集してください。私も-1を取り除くことができます。 – amit

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)の問題は、これらのスピードアップを進めておく尋ね、あなたがプログラム全体を向上させることはできません。 amdahl's lawに従うと、あなたが得ることができる最高のスピードは、連続した改良されていない部分によって制限されています。 Amdahlの法則によると最大スピードアップは1/SEQUENTIAL_PARTとなります。理由を理解してください。

amdahlの法則は、改善された部分を無限のスピードアップにスピードアップできると仮定すると、全体のスピードアップは改善されていない部分に依然として制限されます。

+0

学生の宿題に完全な明示的な答えを与えるのは、通常、貧弱なスタイルとみなされます。彼ら自身の解決策を見つけるのに十分な援助を提供する方が良いです。 –

+0

@ GarethMcCaughan:私はコメントを受け入れて答えを編集しました。 – amit

+0

ええ、それは良いです。 –

関連する問題