openmp 並列構造を使用する C++ アプリケーションがあります。
for ループ内のメソッドは大量のメモリを使用します。開始時にメモリを割り当て、最後に解放します。
システムに十分なメモリがある場合は正常に動作しますが、十分なメモリがない場合、操作は失敗します。
ターゲット システムに十分なメモリがあるため、2 つのスレッドしか並列に実行できないか、3 つのスレッドを並列に実行できます。
使用可能なメモリに基づいて使用する必要があるスレッドの数がわかるように、openmp を構成する方法はありますか?
OpenMP でこれができない場合、自分でできる方法はありますか?