![]() ![]() ![]() ![]() エコプログラミングこの記事のURLhttp://japan.internet.com/webtech/20071220/6.html
著者:佐藤剛宣
国内internet.com発の記事
PC を買う時に、
「デュアルコア」という CPU を目にすることが一般的になってきましたが、
数年前から見られたパソコントレンドの変化が、
いよいよ主流になってきたようです。
単なる「スピード」から「エネルギー効率」へです。
ストレージにも変化が見られます。 ハードディスクからフラッシュメモリへです。 まだまだだと言われていますが、 先日東芝が 100GB 級のフラッシュメモリを開発する技術を発表したように、 日進月歩で進化しています。 フラッシュメモリはハードディスクの約20%程度しかパワーを消費しないので、 「エネルギー効率」というトレンドを牽引するでしょう。 ちなみに人間の脳と同じ処理を基盤で再現しようとすると、 発熱で一瞬にして融解してしまうと、 脳科学の研究をしている池谷氏は話しています。 なんと人間の脳が消費する電力は、 電球一個がぼーっとつくぐらいだというのだから、驚きです。 こうして考えても、「エネルギー効率」に大きな向上余地があることが分かります。 一方それらの上に乗るソフトウェアはどうでしょうか? オブジェクト指向からコンポーネント、フレームワーク、 または Java のようなミドルウェアといった抽象化によって、 生産性を向上しようというのが変わらないトレンドです。 抽象化は、依存性を排除して変更に強くし、 独立した部品ごとの改善をしやすくするので、 個々の最適化で全体の最適化を実現しようとするものです。 抽象化された向こう側のことは気にしなくていい、 それによって生産性は向上しますが、全体の最適化がされるかは疑問です。 むしろ自分勝手な部品が集まれば、 全体の性能は著しく劣化します。 この欠点はこれまで、 うまいこと CPU やメモリの性能向上でカバーされてきたので、 問題化しなかったと思います。 しかしこれからはエコな視点で、 「エネルギー効率」というものが重要視されてくるようになると、 全体最適が重要視されてくるでしょう。 例えば、 Linux のカーネルには、 ボトルネックになるハードディスクへの I/O 操作を最適化するために、 I/O スケジューラ、 通称エレベータという部品があります。 実際にエレベータで移動する時、 途中で止まる階が多いほど目的の階への到達時間に差が出ます。 ただもし、エレベータがボタンを押した順に移動してしまったらどうなるでしょうか?恐ろしい待ち時間が発生して、 誰もエレベータを使わないような事態になってしまいそうですが、 そうならないように、 エレベータのように効率よく動いているのが、I/O スケジューラーです。 組込み開発の現場にいる人は、 ハードウェアの性質や、各部品の性質をよく理解した上で、 全体最適化をすることに慣れています。 組込み機器は反応の最悪値という発想に加え、 通常バッテリや電力消費に敏感なため、当然だと言えます。 抽象化や標準化というこれまでの欧米の発想から、 全体最適によるエネルギー効率の向上が求められる時、 組込み開発の現場のノウハウ、 エコプログラミングが必要とされるのではないでしょうか。 そう考えると、 近い将来 PC にとって変わって様々なデバイスが主役になる時代、 日本やドイツなど製造業に強い国の大きな飛躍があるのでは、 と期待しています。
記事提供:db4objects
|