Выделите полный процессор для определенного потока, чтобы максимизировать производительность и избежать переключения контекста

У меня есть задача не распараллеливаемая, которую я хочу обработать как можно быстрее. Эта задача выполняет чистые вычисления, без ввода-вывода.

Конечно, эта задача выполняется в многоядерной системе, и многие другие процессы одновременно выполняют "вещи", которые также требуют использования процессора.

Сегодня моя задача оптимизирована настолько, насколько это возможно (скажем, она идеальна:-P), моя идея еще раз увеличить ее, заключаться в том, чтобы выделить полный процессор для его потока.

В этих условиях никакие другие потоки не будут использовать совместно с ним ЦП, поэтому переключение контекста не прервет мою задачу; Это должно немного ускорить процесс, почти без усилий. (конечно, это будет сделано в ущерб другим процессам, но это совсем не проблема: наивысший приоритет отдается моей задаче!)

Но как я могу делать то, что я хочу? Я знаю, как установить сродство потока моей задачи, чтобы назначить его данному ЦП, но этот ЦП потенциально может использоваться совместно с другими потоками; моя проблема не решена

Спасибо за помощь

1 ответ

Другие вопросы по тегам