テテのつぶやき
OpenMPとマルチコアCPU等について

RSS 1.0

テテの不定期日記です。



OpenMPとマルチコアCPU等について

日時: 2008年7月7日 18時53分
カテゴリ: 日記

OpenMPとマルチコアCPU等について、ネットで調べました (Windows)。論理CPUと同数のスレッドを生成し、それらを個々別々の論理CPUで実行させるのが良さそうだということが分かりました。

インテルの「マルチコアのパフォーマンス」の例。SetThreadAffinityMaskを使って、各スレッドが個々別々の論理CPUだけで実行されるようにしています。

Wikipediaの「Affinity mask」にも同じ例が載ってました。

Wikipediaの「OpenMP - Thread affinity」によれば、上記のようにすると以下の理由で性能が向上するとのこと。

  • コア間のスレッドの移動とコンテキストスイッチのコストが最小になる。
  • データの局所性が改善される。
  • コア・プロセッサのキャッシュコヒーレンシのトラフィックが減少する。

ただし、SetThreadAffinityMaskで各スレッドを個々の論理CPUに束縛すると、ある論理CPUに多くの負荷がかかった場合などに他のスレッドが待たされて、性能が落ちるかも…。なので、SetThreadAffinityMaskの代わりに、しばりのゆるいSetThreadIdealProcessorを使ってみることにしました。

コメントを書く

認証コード画像 画像内の文字を半角で入力してください。

動作:

トラックバック

この記事へのトラックバックURL:

  • http://blog.seesaa.jp/tb/102372240

他の記事

記事検索フォーム

Google

カレンダー

前月へ | 2009年11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

最近のコメント

  1. Windows 7 Professionalを購入
    • テテ [2009-11-06]
    • テテ [2009-11-06]
    • アイヴァーン [2009-11-06]
  2. 実験: MIDIファイルからFlashを生成
    • テテ [2009-10-28]
    • Logue [2009-10-27]
  3. 梅ジャム作り
    • テテ [2009-08-15]
    • メロンアイス [2009-08-15]
  4. Firefox 3.5でのOgg動画再生
    • テテ [2009-07-24]
    • ma [2009-07-24]
    • テテ [2009-07-20]
    • ma [2009-07-20]
  5. SVGで作ったタイトル画像
    • テテ [2009-07-22]
    • メロンアイス [2009-07-22]

過去ログ