情報コラム 2008年12月30日 マルチコアとマルチスレッド


  最近のPCはマルチコアCPUを搭載しているものが多い。 CPUに複数のコア:演算集積回路があるということは 複数のプログラムを同時に走らせることができたり、1つアプリケーションを並列処理して速度を劇的に 向上することが可能である。 

  1つのアプリケーションを並列処理させるには、アプリケーション内に走るスレッドと呼ばれる 一連のプログラムを複数作らないといけない。 これはプログラム段階で処理をいくつかに分割して 並列処理させるという工夫が必要になってくる。 

  具体例でいくと、ある画像があったとしてこれにフィルタをかけようとすると、通常は画面左隅から 右隅にかけて1ピクセルずつ処理していくのだが、デュアルスレッドにするということは、画面を左右2つに わけ、1つのスレッドが左領域を処理、もう1つのスレッドが右領域を処理するようプログラムする。  そうするとデュアルコア以上のCPUを搭載したPCであれば従来のシングル処理よりも半分の時間で 処理が完了する。

  1つのCPUの処理速度に限界が来ている今、CPUのコア数は倍倍で増えていき並列処理があたりまえの 時代になりつつある。 64ビットマシンも普及しつつあることから、コンピュータを使った分野は 飛躍的に進歩を遂げると思われる。

  下記をクリックするとマルチスレッドを体験できるプログラムがダウンロードできる。 M45の画像を ぼかすだけの単純処理ではあるが、シングル、デュアル、クワドロと表記されたボタンをクリックすると それぞれ画面を1、2、4分割して処理が行われる。 コア数が多ければ多いほどスレッド数を同時に 走らせることができるので時間が短縮され、Core2Quadがもっともその効果を実感できる。 Pentium4のような シングルコアではほとんどその効果はない。

ダウンロード : http://www5f.biglobe.ne.jp/~kztanaka/download/MultiThread.zip

TOP
mail