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

タグ:

C言語
+ タグ編集
  • タグ:
  • C言語

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2007年12月28日 22:16