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つ以上使ったから)とかにもなりえます.