マルチプロセッサ対応のプログラムを作るためのC言語のディレクティブと関数のセット。gcc 4.2以降でサポート
リンク時にも -fopenmp を付けなきゃダメなんだな.でも速度は変わらなくて,OpenMPの効果無かった.うそ,倍くらい速くなった.指定の仕方が悪かったんだね.
#pragma
omp for schedule(static)
じゃなくて,
#pragma
omp parallel for schedule(static)
じゃなきゃいけないか.parallel 指定文でのみスレッドが生成されるんだ.だから,parallelを指定しないと意味が無い.
これは簡単に速くなっていいぞ!このプラグマ文と omp.h を読み込みさえすればいいんだから.
ちなみに,並列計算中のプロセスのCPU使用率はは top コマンドで見ると100%を超えます.デュアルコア・ハイパースレッディングのマシンなら,300%を超えます(必ずしも3倍の速さではない).timeコマンドでは,実時間が10秒で,ユーザ時間が20秒(スレッドを2つ以上使ったから)とかにもなりえます.
最終更新:2007年12月28日 22:16