私は自分のコンピュータで並列計算を実行しています。私はプログラムがすべてのコアを使用しないようにしたいが、システムのために1つを自由に残す。 プログラムのスレッド数をプロセッサ上のスレッド数よりも少なく設定するにはどうすればよいですか?Openmpマシン上で利用可能なスレッド数を調べる
、OMP_set_num_threads
私はこの問題を解決できません。プログラムをオクターブ関数(oct-file)にコンパイルし、オクターブインタプリタで呼び出しました。 OMP_get_max_threads()
は、環境変数などを取得します。したがって、この変数は呼び出しの間に保持され、その後の計算ルーチンへの呼び出しによって値がさらに減少します。最初のコールは3つのコアを使用し、2番目のコールは2番目のコールを使用します。
したがって、ハードウェアの利用可能なスレッド数はどのように決定されますか?
まあ、それはオクターブインタプリタ内部のプログラムの開発を使用して、私によって引き起こされました。 'OMP_GET_NUM_PROCS()'を使って解決しました。 – Dimitry