6
デフォルトでOpenMP指令:OMP - プロセッサの数より多くのスレッド?
opm_get_num_threads
プロセッサ/コアに相当するスレッド数を示します。
私は8コアマシンを持っているので、私に8スレッドを与えます。それは最大ですか?私が意図的に8以上を指定すると、8より多くのスレッドを得ることができますか?
おかげ
デフォルトでOpenMP指令:OMP - プロセッサの数より多くのスレッド?
opm_get_num_threads
プロセッサ/コアに相当するスレッド数を示します。
私は8コアマシンを持っているので、私に8スレッドを与えます。それは最大ですか?私が意図的に8以上を指定すると、8より多くのスレッドを得ることができますか?
おかげ
あなたが望むようにできるだけ多くのスレッドを設定することができます。
int threads = 16;
omp_set_num_threads(threads);
http://msdn.microsoft.com/en-US/library/e16bady3%28v=vs.80%29
しかし、あなたは論理コアよりも多くのスレッドを使用しての欠点を認識していることを確認しシステム内で
欠点を実際にはっきりと述べるのではなく、実際にそれを共有するように気をつけますか? –
@LexiRスケジューリング、コンテキストスイッチ、キャッシュ競合など、スレッドを処理するときにオーバーヘッドが発生します...論理コアより多くのスレッドを使用することは決してよいとは言いません。しかし、それが悪用された場合に何が起こるかを知ることは有益です。 – Mysticial
コード内のスレッド数を修正するのはなぜですか?良い古い環境変数 'OMP_NUM_THREADS'はどうでしょうか? –