« エログリッド | トップページ | Windows 7 »

ソフトウェアにもプロセス世代を!

CMOSに代表されるLSIは、新しいプロセスルールが開発されると、それと同時に性能もアップする(※)。
ここでいう性能は、速度だけではなくて、電力消費が含まれる。

だから、IA-32などに代表されるPC/PCサーバー用CPUは、プロセス世代の交代を意欲的に進めている。
もちろん、と同時にマイクロアーキテクチャの改良も行って、トータルでは毎年倍々の性能アップ・・・ここ最近は消費電力も向上させているわけだ。

※厳密に言えば「性能アップのマージンができる」ということだろう。

さて、ソフトウェアの方はというと、時代の要請するパラダイムに引きずられて必要な技術がコロコロ変わる。
当然といえば当然なのだが、特にここしばらくはマルチコア技術が広がっていくと考えられるから、要求される技術や知識もかなり難しく、ソフトウェア開発者の負担はますます増えるばかりだ。

ソフトウェアはC言語などで共通化されてはいるものの、これらの言語は動作モデルを含まない。
当然スレッドやMVCなどいろいろなフレームワークがあったりはするのだが、Javaであれ、VBであれ、ライブラリとして提供するのが普通である。

この方式は汎用である一方、時代に合わせてソフトウェアを毎回書きなおす必要があることを意味している。
しかし既存のソフトウェア資産を考えると書きなおしは量的にほとんど不可能になっている!

だから、ソフトウェアを書きなおすことなく、その下のレイヤーで「プロセス世代交代」を行える方法が求められるべきではないかと思うのだ。
ひとつのプログラムを「完結した形で」書いておけば、新しいパラダイム上でもその恩恵を受けつつ動作できる、という仕組みが、である。

これにはやはりVM的な動作でサポートすることが想像しやすい。
たとえば、盛り上がりつつある仮想化技術は一つの決定打になるかもしれない。
JavaもVMだけれど、そういう思想にはなっていないようだから難しそうだ。

最近、Cell/B.E.とか、TBBとかでプログラムを書いてみるのだけれど、すぐに変わるであろうスケーラビリティや帯域を気にしてキリキリやるのはどうにも不毛な気がして、そういう大きな仕組みにメスを入れられないかと考えてみる今日この頃なのである。

|

« エログリッド | トップページ | Windows 7 »

テクノロジー」カテゴリの記事

「パソコン・インターネット」カテゴリの記事

「プログラミング」カテゴリの記事

マルチコア」カテゴリの記事

「日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/63247/40702083

この記事へのトラックバック一覧です: ソフトウェアにもプロセス世代を!:

« エログリッド | トップページ | Windows 7 »