« 明日のためのその1 | トップページ | そして私は失われた方法を使い、この場所に辿りついた »

2008年2月 7日 (木)並列化

おはようございます。本日の当番、プログラマーの大川です。

さて、最近のパソコンでは、マルチプロセッサー搭載機が当たり前になっています。
ひとつのCPUでは処理を賄い切れないから、それならCPUを複数積んで
複数の処理を一気をやってしまおう!という発想です。

それはパソコンに留まらず、最近のゲーム機(いわゆる次世代機)でもトレンドと
なっています。処理速度においては、20年前のそれとは雲泥の差です。

そんな沢山のCPUがあるんだから、今後のゲームはもっと凄くなるのでは!と
思うでしょうが、実際はそんな単純な話ではないのです。

複数の処理を同時に行えるのが、マルチプロセッサーの強みなのですが、
逆に複数の処理を「効率良く」出来なければならない、という弱みもあります。
この「効率良く」というのが、各CPUを制御する「プログラム」に懸かっています。

例えば、、、

「御飯を食べながら、新聞を見て、なおかつテレビの情報を集める」

などという行動(処理)を人間(制御プログラム)が行うとします。
要領の良い人間であれば、そそくさと済ませられるのでしょうが、これが
不器用な人間だと、パニックに陥ってしまい、結果としては、逆に時間だけを
浪費する結果となります。

それなら、要領の良いプログラムを作ればいいやん!と思うでしょうが、
そうもいきません。並列処理のもうひとつのワナ、「依存関係」です。

依存関係というのは、Aが無いとBが出来ない、などといった関係で、
これが沢山あればあるほど、本来のマルチプロセッサーの強みである
同時処理は難しくなります。

先程の要領の良い人間(制御プログラム)が、車でドライブをするとしましょう。

助手席の人と会話をしながら、運転をする事は問題無く出来るでしょうが、
地図を開いて目的地を凝視することは出来ません。そんな事をすれば
間違いなく事故(バグ)になるからです。
いくら要領の良い人間でも、これは無理ですね。
一旦、車を停める(処理を止める)ことになります。

こういった依存関係は、ゲームプログラムにおいても例外ではなく、これを
<効率良く処理するのは、なかなかの至難の業です。次世代機における
ゲームプログラマーの腕の見せ所ですね。

「処理速度が速ければ、面白いゲームになる!」という訳ではありませんが、
速いに越したことはありません。
私も決して要領の良い人間ではありませんが、
本業だけは出来るだけ「効率良く」仕事をしたいもんです。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2008/02/post_34e7_1.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« 明日のためのその1 | トップページ | そして私は失われた方法を使い、この場所に辿りついた »

プログラマー」カテゴリの記事

コメント

コメントを書く



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


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 並列化:

« 明日のためのその1 | トップページ | そして私は失われた方法を使い、この場所に辿りついた »