テテのつぶやき
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年7月
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 31

最近のコメント

  1. Firefox 3.5 Beta 99をビルド
    • テテ [2009-06-16]
    • hATrayflood [2009-06-16]
    • テテ [2009-06-12]
    • ふぁんた [2009-06-12]
  2. lifehacker.comからのアクセス
    • テテ [2009-06-08]
    • アイヴァーン [2009-06-08]
  3. 最近のFirefox 3.5preでplaces.sqliteの形式が変化
    • テテ [2009-06-02]
    • やすっち。 [2009-06-02]
  4. Firefox 3.1 Beta 3を-arch:SSE2でビルド
    • テテ [2009-04-11]
    • アイヴァーン [2009-04-11]
    • テテ [2009-04-08]
    • shige [2009-04-08]
    • shige [2009-04-08]
    • テテ [2009-04-08]
    • アイヴァーン [2009-04-07]
    • penguin [2009-04-07]
  5. Firefox 3.0.8 私的ビルドを更新
    • テテ [2009-04-05]
    • アイヴァーン [2009-04-04]

過去ログ