※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

マルチプロセッサ対応のプログラムを作るための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つ以上使ったから)とかにもなりえます.