Установить открытые темы MP для использования 80% CPU - PullRequest
0 голосов
/ 06 апреля 2020

Я работаю на C ++ l oop и хотел бы установить потоки для него использовать 80 ~ 85% процессорного времени. Пример l oop:

#pragma omp parallel
    {
#pragma omp  for schedule (dynamic) 
        for (int i = 0; i < 1000000000; i++) {
            for (int j = 0; j < 10000000000; j++) {
                int toto = i + j;
            }
        }
    }
}

Я хочу, чтобы это работало для всех процессоров, у вас есть предложения?

1 Ответ

0 голосов
/ 06 апреля 2020

Поскольку вы сказали, что находитесь на Windows, вам нужно получить дескриптор потока, а затем использовать системный вызов

int GetThreadPriority(HANDLE hThread);

, который возвращает приоритет потока, работающий, я думаю, от -15 до 15. Затем позвоните

BOOL SetThreadPriority(HANDLE hThread, int nPriority);

, чтобы установить новый приоритет.

Более высокие значения приоритета означают, что для этого потока выделяется больше процессорного времени.

Я не слышал о возможность устанавливать приоритет потока через OpenMP.

...