輝々凛々

ガンバるってことは、素晴らしい事だ。

平成20年度秋期:システムに必要なMIPS

あるオンラインシステムでは、1時間当たり360,000件のトランザクションを処理することが求められている。このシステムでは、トランザクションの20%が200万ステップ、80%が50万ステップの命令を実行する。CPU使用率が80%のときに、必要となるCPUの処理能力は最低何MIPSか。

ア 80

イ 100

ウ 400

エ 500

この問題、よろしくない。「トランザクションの20%」って何よ?「CPU使用率が80%のときに、必要となるCPUの処理能力は最低何MIPSか」って何よ。変じゃん。

1時間当たりのトランザクションの20%である

「トランザクションの20%」は、まず、この360,000トランザクションの20%が200万ステップ、80%が50万ステップということらしい。決して、1トランザクションを処理するのに5段階あって、1段階目、すなわち20%が、200万ステップかかって、残りは50万ステップかかるってことではない。

そんなわけで、1時間360,000トランザクションのステップ数[steps/hour]は、下記のようになる。

360,000 * 0.2 * 2,000,000 + 360,000 * 0.8 * 500,000 [steps/hour]

CPU使用率を80%にするために必要な処理能力MIPSを求める。

さて、次「CPU使用率が80%のときに、必要となるCPUの処理能力は最低何MIPSか」は、時制が変だ。すでに稼働しているシステムのCPU使用率をみて80%になっていることを確認した上で、「こんなシステムを作るには、何MIPS必要?」って何聞いてるのよ。もう、そこにあるじゃん。ま、そんなこたぁ、もういい。

先ほどの数式を計算すれば、1時間当たりのステップ数を求められる。

MIPSは、Mega-Instruction Per Second、つまり1秒当たりに命令(ステップ)を何百万命令処理できるかを表す性能指標値である。

つまり、「1時間当たりのステップ数」を「1秒当たりのステップ数」に変換する必要がある。

これは、つまり単に3600で割ればいい(1時間=60分=3600秒なので)。

結果、下記のようになる。

360,000 * 0.2 * 2,000,000 + 360,000 * 0.8 * 500,000 [steps/hour]
=(360,000 * 0.2 * 2,000,000 + 360,000 * 0.8 * 500,000) / 3,600 [steps/second]
=100 * 0.2 * 2,000,000 + 100 * 0.8 * 500,000 [steps/second]
=20 * 2,000,000 + 80 * 500,000 [steps/second]
=40,000,000 + 40,000,000 [steps/second]
=80,000,000 [steps/second]

さて、ここで、CPUの使用率が100%というのは、どういう状態だろうか。

CPUを人間に置き換えてもいいが、100%というのは能力の限界で処理している状態を指す。50%であれば能力半分。0%であれば、仕事がないか、仕事を放棄している状態だ。

つまり、80%の使用率というのは、自分の能力の80%で処理できる程度の仕事量を処理しているということになる。

今回の問題では、80%で処理できるような、CPUの処理能力を求めることになっている。

人間でいえば、100kgの重りを80%の力で持ち上げれるようになるには、筋肉をどれだけ鍛えればいいでしょう? みたいな問題になっている。

今回の仕事量は、先ほど求めた秒間ステップ数(下記)で決まっている。

80,000,000 [steps/second]

これを、80%で処理できる能力を X [MIPS] とすると、次式が成り立つ。

0.8X = 80,000,000 [MIPS]

つまり、求めるべき CPU性能 MIPS は、両辺を0.8で割ることで下記のように求まる。

X = 100,000,000 [MIPS]

さて、お気づきだろう。単位が間違っていたことを。

ここで、求めた X は、MIPSではなく、IPSになっている。

つまり、回答としては、さらに百万で割って、100としなければならない。

ただ、こういった間違いは普通に起こりえるもので、ただ気づけばいいのだ。

最後に「1億MIPSって変だぞ。速すぎるぞ」って気づければいいのだ。

人間は、コンピュータと違って、間違えていても気づける。間違えてもやり直せる。

ちなみに、1億MIPSというと、100TIPS(100Tera-Instraction Per Second) だけど、これはスパコンレベル。地球シミュレータ(第二世代)クラス。現在は、理化学研究所の「京」が世界一位で、8162TFLOPSをマークしている。

関連記事

ツッコミの投稿


(ツッコミ非公開の場合はチェック)