すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

Core i7 の全てのコアを有効に使う方法として、OpenMPによるプログラミング、マルチスレッドによるプログラミングがあると思うのですが、2点わからない点があります。
1.C#( .NET)はOpenMPをサポートしているのか?
2.C#のマルチスレッドプログラミングで処理時間は短縮されるのか?
以上どちらか一方でも分かる方はご回答お願い致します。

  • 質問者:ss
  • 質問日時:2009-04-17 11:27:09
  • 0

並び替え:

1.の方はやった事が無いので、判りません。
C#からCのライブラリの呼び出しは出来るのですが、
CLRの構造からして、動かないか動いても
オーバーヘッドが大きいものと思われます。

2.のC#のマルチスレッドですが、効果はあります。
手元にはPentium4までしか無いのですが、
タスクマネージャで、両方のCPU負荷が
上がっているのが確認できますし、
処理時間も少しですが短縮しました。

Core2やCorei7であれば、
ネイティブコアなので、私の所よりも、
もっと大きな効果が期待できると思います。

  • 回答者:Maku (質問から35分後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。
お礼コメント

ありがとうございます。Pen4はハイパースレッディングでOSから2つCPUがあるように見せているだけかと思っていましたが、早くなるんですね。
ちなみに、シングルスレッドをCore 2 Duo などで実行しても、タスクマネージャで両方のCPU負荷が上がっているように見えますが、これは、ミリ秒単位で高速に処理するCPUが切り替えられているだけで、実際に同時に動いているわけではないそうです。(表示は何秒間かの平均値だそうです)

関連する質問・相談

Sooda!からのお知らせ

一覧を見る