OpenMP
d:id:kamekamekame877:20070724 の続き.
リンク時にも -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つ以上使ったから)とかにもなりえます.