OPENMP と C++ – 手間をかけずにマルチスレッドの恩恵を受ける
最近興味があって、並列性に関することを調べたり書いたりしているが、C/C++で容易にマルチスレッドプログラミングを実現するためのライブラリとしては、OpenMPがつとに有名で、上のリンクはそれをあつかったmsdnマガジンの記事の翻訳である。
OpenMPは基本的にコードブロックに対して、#progma句でその動作を指定することで、そのコードブロックを別スレッドでどうさせる事が出来る仕組みを提供するもので、WindowsのAPIやPOSIXのスレッドライブラリを直接使う場合に比べ容易にマルチスレッドのプログラムが出来るとされている。ようはプラットフォームが提供するスレッドの機構をラップして、プラットフォームに非依存なスレッド環境を提供するものだ。
ただし、ソフトウェア設計における並列性のややこしさや難しさから解放してくれるわけではないので、あくまでも実装を助けてくれるだけであることはよーく覚えておこう。実装の容易さにだまされてはいけないんである。
追記: (2006.02.11 12:03)
まぁはまったのさっ。(ノヘ;)シクシク..
コメント