「サーバサイドでは順調だが~」とか言ってるように、デスクトップ用途の話なんですよねこれきっと。 と、なると、マルチコアが有用な利用法を考えて、かつユーザに受け入れられる必要があります。ただ、デスクトップ用途のほとんどは「人間とのインタラクション」だと考えると、人間のI/Oは並列化しづらい性質のものなので(少なくとも言語的思考の流れや注視点は2つ以上にすることは困難)、CPUにはI/Oに関係しない仕事をやらせるか、「壁紙を動画にする」などの無駄な仕事をやらせるかのどちらかになるのだと思います。 そもそも、今のPCに求められてる機能って
- In
ソフトウェアって一括りにするのは間違いで (スコア:2, 興味深い)
と、なると、マルチコアが有用な利用法を考えて、かつユーザに受け入れられる必要があります。ただ、デスクトップ用途のほとんどは「人間とのインタラクション」だと考えると、人間のI/Oは並列化しづらい性質のものなので(少なくとも言語的思考の流れや注視点は2つ以上にすることは困難)、CPUにはI/Oに関係しない仕事をやらせるか、「壁紙を動画にする」などの無駄な仕事をやらせるかのどちらかになるのだと思います。
そもそも、今のPCに求められてる機能って
- In
Re:ソフトウェアって一括りにするのは間違いで (スコア:2, 興味深い)
それこそが古く凝り固まった考え方なのではないか?と思うのです。
人間が同時に操作できない点に縛られて後ろ向きになったり、
別々の複数のソフトウェアやバックグラウンドのI/Oを走らせる用途しかアイデアがないとか、
そういう古典的な並列コアの使い方を何とかしろよと問われているのだと思うのですが。
ほとんど効果が見えないSIMD命令の類も同じ。本当に動画のエンコードぐらいしか活用方法がないの?
マルチメディア処理用命令と業界全体が思い込んでるだけじゃないの?
=-=-= The Inelegance(無粋な人) =-=-=
Re:ソフトウェアって一括りにするのは間違いで (スコア:5, 興味深い)
10人の妊婦が協力しても子供は1ヶ月で産まれてこない。
Brooksが「人月の神話」でソフトウェアの開発期間についてそんなことを書いていたと記憶しています。
本質的に並列化が向いている処理と向いていない処理がある、という点でソフトウェアの並列化にも同じ事が言えます。
並列化が向いている処理というのは「他の処理と独立して行える比較的時間のかかる処理」です。
「他の処理と独立して行えない処理」を並列化するなんてのは論理的に不可能だし、
「他の処理と独立して行えるが時間のかからない処理」は並列化しても同期処理に時間がかかって
作業効率はほとんど上がらない(場合によってはかえって遅くなる)、しかも並列化プログラムは
バグ取りに非常な困難が伴うので割に合わない、というのは並列プログラムを書いたことがある人に
とっては常識ですね。
で、「他の処理と独立して行える比較的時間のかかる処理」ってのはデスクトップ用途の場合だと既に挙がっているようなものしかないわけで。
Re:ソフトウェアって一括りにするのは間違いで (スコア:1)
CPUでは間に合わない処理ってのは大概並列化しやすい類のものですよね
(動画エンコードとかPCゲームとか)。
特にネットワークゲームとかだとゲーム本体だけでなくてチート防止用のソフトとかも
同時実行されるので、4コアか8コアくらいまでは現状のソフトでもマルチコア化の恩恵
に授かれるんじゃないかと思ってます。
あとは、マルチコアCPUが普及した後でそれを前提としたソフトウェアの革命が起きたら面白いですね
(個人的には個人に最適化したエージェントシステムとかが有望かなとか考えてます)。