スゴ技

平成26年度 春 基本情報技術者試験 【問3】(その1)

Blog:IT・情報処理BLOG |

ブログの3男佐藤です。体調管理には気をつけましょう。

平成26年春基本情報過去問、午後の問3の解説です。今回は設問1の計算。過去問そのものはサイトから入手可能ですので、横に出しておきましょう。

設問1で問題になっているのは文中の式。単純に式としてみるとほんのり複雑そうに見えますが、値を入れてみるとおもしろいわけです。CPUが1個(すなわちnが1)の時を計算すれば、きれいにr同士が相殺してくれます。結果、rの値にかかわらず高速化率は基本ともいうべき1に収束しています。ほんのり美しい式ですね。

2014-05-18 05.58.01

この式、本来の処理時間割合を一度なくしてから、複数CPUによる分散処理で再計算した値で置換しているのです。もし処理の50%が分散可能であり、2つのCPUで動いているとしたら…

2014-05-18 05.58.13

と、4/3になります。大体1つのCPUの時よりは133%というところでしょうか。実際のプログラミングでは、分散処理できる部分は文中にあるように、プログラム中のある程度の量しかないのが現実です。100%分散可能というのはまず期待できません。さらに言えば、分散処理を行わせるためにはそれ相応のコストがあります、分散処理を制御するための処理も増えるし、記憶空間をその分多めに持たないといけない(場合もある)し、ものによっては排他制御(互いの分散処理がデータを壊し合うことにもなるので対応しないといけない)もあったりします。ということであくまで理論値です。リニア(CPU2つ積んだら性能2倍、3つなら3倍)に性能を上げるのはとても大変です。

さて問題、今回、n個のCPUで全体の90%が分散処理可能な演算部分とされてます。え?なぜって?

  • 図1によると「計算処理」部分が分散可能とされている
  • 問題文中の「データ作成:計算処理:出力処理」の比率が「7:90:3」とされている部分から、全体(総和で100)のうち90の部分が分散可能とされる計算処理にあたる、ということで90/100で90%

90%の部分はrの仕様にあわせて0.9に置き換えておいて、式を変形させていきましょうか。なお、問題文中の式の左辺と右辺はあらかじめ入れ替えています。不等号の向きを考慮しただけです。計算効率とかのツッコミはなしでお願いします。

2014-05-18 05.58.24

はい出ました。nは9以上となります。正解はオですね。高速化率5ということは、5倍にしたいということになるわけで、5倍のためにCPU9個というのもどうなのかということですが、実際のところ前述のオーバーヘッドを考慮すると、更にCPUが必要となります。参考として、CPU16まででどうなるかをざっくり表計算できるようにしてみました(Googleのスプレッドシート)。あたりまえですが、理論値あってもリニアにはなりません。

さて私としてはここからが本題。この問題では複数のCPUに処理を分散させるという今どきな話ですが、1つのCPUしか持てない状況だった昔のパソコンでの話です。当時、一般のパソコン向けCPU(ざっくり書けばIntel製CPUとその互換CPU)では、クロック数が正義という時代がありました(おおむねPentium4あたりまでとさせてもらいましょう)。基本の処理の効率化も重要でしたが、クロック数という力技による高速化が重要視されていたのです。しかしその代償は大きいものでした。

  • 消費電力の増加とそれに伴う発熱
  • 発熱に伴うCPU熱暴走
  • CPU熱暴走に対応するためのCPUファン(他本体内エアフロー制御)
  • CPUファンからでる高温による部屋のサウナ化
  • 結論:そんな部屋に住んでいる人間が危ない(健康面です念のため)

一時は液化窒素でCPUを冷却しながら過激にオーバークロック(本来の範囲を超えたクロック数を設定して走らせる技術)なんてものも紹介されていたぐらいです(今でもネタとしてされることがあります)し、より放熱効果のいい油漬けなんてものも紹介されていました。CPUファンによる騒音部分は静音指向ファンの開発や水冷といった技術(メインフレームなどでは使われていたりしますが)も採用されたりしています。

結局、クロック向上は、当時の技術範囲では頭打ちとなりました。頭打ちになるいくぶん前に、CPU利用率の向上策として、論理的に1つの物理CPUを2つのCPUに見せる技術(Hyper Threading)も出ましたが、一度(原点ともいうべき)処理そのものの効率化に焦点を合わせ直して再設計が行われ、同程度の処理が低クロックでもできるようになりました。そしてそのCPUを複数内蔵させるというマルチコア技術が採用され、可能ならHyper Threadingも組み込んで論理CPU倍増策も入って、再度クロックをじわじわと上げて現状に至ってます。結局4GHzあたりまで戻ってきています。たしかそろそろ5GHzとか出てくるような話が…

私的には自宅で走らせるCPUは消費電力と静音向けに配慮したものになってほしいものですけどね…それは趣味の問題なのでしょう。

そんなこんなでおまけが本編的なエントリでした。次回は設問2で攻めてみたいと思います。明日のお昼がたしか結果発表だったと思います。受験者は受験票を手元に用意し待機しておきましょう。

PS.私の昔住んでいた部屋では、熱&ファンの音対策として、朝7時にタイマーで電源が入り、23時に自動的に終了するシステムを組み、健全鯖と名づけていました(もちろんアンチテーゼ)。

2014年(平成26年度)春期の解説

Date:

神戸電子の
IT・情報処理学科
についてもっと知りたい!

Webアプリケーション等のシステム管理、設計、開発が行える総合的なITエンジニアを育成する学科です。

学科紹介を見る (神戸電子サイト)

学科紹介イメージ
Info神戸電子からのお知らせ

Tagタグ

Teamライターチーム紹介

神戸電子オフィシャルSNS

オープンキャンパスなどの
誰でも参加OKの楽しいイベント
やブログの最新記事などお届けします!

ページの上へ移動