Запустить процесс привязанный к конкретным ядрам - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу запустить программу и установить привязку ядра к первым 4 ядрам.Я знаю, как установить сродство ядра в Windows, но я не совсем уверен, как создать маску сродства, которая установит правильность сродства.

Мой текущий код выглядит следующим образом:

int main()
{
    std::string exec         = "test.exe";
    DWORD       affinityMask = 0xF; //for 1111, at least that's what I guess

    STARTUPINFO info = { sizeof(info) };
    PROCESS_INFORMATION processInfo;

    SetProcessAffinityMask(GetCurrentProcess(), &affinityMask); //the child process will inherit the core affinity from this process

    CreateProcess(exec.c_str(), NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo);

    std::this_thread::sleep_for(std::chrono::seconds(1)); //Used to do some other stuff here

    WaitForSingleObject(processInfo.hProcess, INFINITE);

    CloseHandle(processInfo.hProcess);
    CloseHandle(processInfo.hThread);

    return 0;
}

Является ли такой подход жизнеспособным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...