任何人都可以考虑一下。OpenMP 功能可调整 cpu 肌肉以处理哑铃。在我对 openmp 的研究中,我们无法设置线程优先级来执行具有强大肌肉的块代码。只有一种方法(_beginthreadex 或带有 5 个参数的 CreateThread 函数)来创建具有最高优先级的线程。
这里有一些关于这个问题的代码:
这是手动设置。
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 设置优先级,请告知我们。