誰でも考えてください。 OpenMPは、ダンベルを処理するためにCPUの筋肉を調整する機能を備えています。私のopenmpの研究では、強力な筋肉でブロックコードを実行するスレッドの優先順位を設定することはできません。優先順位が最も高いスレッドを作成するには、一方向(_beginthreadexまたは5のパラメータを持つCreateThread関数)のみを使用します。OpenMPの機能がありません:スレッドの優先度
ここでは、この問題のいくつかのコード:
これは手動設定です。ここで
int numberOfCore = (execute __cpuid to obtain number of cores on your cpu).
HANDLES* hThreads = new HANDLES[ numberOfCore ];
hThreads[0] = _beginthreadex(NULL, 0, someThreadFunc, NULL, 0, NULL);
SetThreadPriority(hThreads[0], HIGH_PRIORITY_CLASS);
WaitForMultipleObjects(...);
は、私はこの部分を見たいです。
#pragma omp parallel
{
#pragma omp for (threadpriority:HIGH_PRIORITY_CLASS)
for(;;) { ... }
}
それとも
#pragma omp parallel
{
// Generally this function greatly appreciativable.
_omp_set_priority(HIGH_PRIORITY_CLASS);
#pragma omp for
for(;;) { ... }
}
私は、OpenMPとセットアップの優先順位への道があったかどうかを知るplsは私達に知らせるいけません。
スタックオーバーフローは、新規ユーザーにとって不愉快です。誰かを投票させるときは、なぜそれをしたのかを説明するコメントと、それを改善するために何をすべきかについてのヒントを残してください。 –