2012-05-07 15 views
0

私は科学的なコードを開発していますので、もちろん速度は本質です。今ではその移植性は本当に問題ではないので、プログラムをコンパイルするときにopenmpスレッドがいくつあるか知っています。この情報を使用して追加の最適化を実行することはできますか?はいの場合はどうすればよいですか?特定のスレッド数に対するOpenMPの最適化

この質問は非常に広いと指摘されて以来、私はそれを自動的にコンパイルの最適化に少し減らしたいと思います。コンパイラのフラグなどを設定します。さて

乾杯

-A

+0

これは非常に広い質問です。 – Anycorn

+0

さて、私はそれを少し減らしました。 – Azrael3000

+0

まだ広すぎます。今のところ最良の答えは:**コードに依存します**。 –

答えて

0

、それはN個の独立した領域(N = NO。のスレッド)に分割することができるようにコードを変更することができます。 Uはセクションの使用を好むべきです。これらは、プロセッサ間通信の減少により、並列forループと比較して優れたスピードアップを提供します。

+0

セクションは 'for schedule(静的)' work-share構造体より高速ではありません。 –

+0

さて、私は並列と奇数と偶数の両方のループを使用してコードを実装しましたが、セクションは少し速いようでした。かなり前のことでした。 – haxor

関連する問題