[解決済み] 実行時間(高速化)の計算方法
2022-02-01 07:56:54
質問事項
高速化の計算で行き詰まりました。そこで出された問題が
質問1
あるプログラムの50%が2倍、残りの50%が4倍に強化された場合、強化による全体の速度向上はどの程度か?ヒント 強化前(強化なし)のマシンにおけるプログラムの実行時間をTとする。そして、強化後の総実行時間T'を求めよ。高速化はT/T'である。
スピードアップ=強化前の実行時間/強化後の実行時間ということだけはわかった。ということで、答えは想定してよいでしょうか。
スピードアップ = T/((50/100x1/2) + (50/100x1/4))
強化後の総実行時間=T+スピードアップ
(50/100x1/2) なぜなら、50%は2倍、4倍も同じように強化されたからです。
質問2
あるプロセッサの設計を何らかの方法で改良・強化することにより、プログラムの(2/3)rdの実行を無限に高速化できると仮定してみよう。すると、改良されたプロセッサは、改良されていない(元の)マシンと比べて何倍速く走るだろうか?
100/(2/3)=150 なので、150倍速いと考えてよいでしょうか。
何かアイデアはありますか?よろしくお願いします。
解決方法は?
まず、質問1から。
合計時間は、2つのハーフの時間の合計である。
T = T1 + T2
次に
T1
が2倍に増強されます。
T2
は4倍に改善されます。
T' = T1' + T2'
= T1 / 2 + T2 / 4
の両方が存在することが分かっています。
T1
と
T2
は50%です。
T
. だから
T' = 0.5 * T / 2 + 0.5 * T / 4
= 1/4 * T + 1/8 * T
= 3/8 * T
高速化は
T / T' = T / (3/8 T) = 8/3
質問2も同様に解くことができます。
T' = T1' + T2'
T1'
が0になる。
T2
は、残りの1/3が
T
.
T' = 1/3 T
高速化は
T / T' = 3
したがって、プログラムは以前の3倍(または2倍)速くなったことになります。
関連
-
[解決済み] 実行時間(高速化)の計算方法
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み] ビッグ・オー、どうやって計算・概算するんだ?
-
[解決済み] 8192個の要素にループをかけると、プログラムが遅くなるのはなぜですか?
-
[解決済み] πの値を最も早く求める方法は何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】HTTPとHTTPSのパフォーマンス比較
-
[解決済み】GHCコアの読み込み
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜベクトル化、ループよりも一般的に速いのですか?
-
[解決済み] LOWER LIKE vs iLIKE
-
[解決済み] nの漸近成長でfloor(n/2)を選択する。
-
[解決済み] 最後の手段としてのパフォーマンス最適化戦略【終了しました
-
[解決済み] πの値を最も早く求める方法は何ですか?
-
[解決済み】再帰はループより速いことがあるのか?
-
[解決済み】JSFがゲッターを複数回呼び出す理由
-
[解決済み】再帰と反復のどちらを選ぶ?
-
[解決済み] x86アセンブリでレジスタをゼロに設定するには、xor、mov、andのどれが一番良い方法ですか?
-
[解決済み] TeamViewerはどうしてこんなに速いのですか?