Разве не будет эффективным для пользователя возможность назначать определенное ядро определенному приложению в современных многоядерных системах?
2 ответа
Прежде всего, реальный ответ на ваш вопрос: зачем вам, как пользователю, заботиться? Операционные системы разрабатываются для максимально эффективного использования предоставленных им ресурсов. Маловероятно, если у вас нет особых требований, ваша машина будет работать лучше, выполняя эту работу самостоятельно.
Сказав это, я думаю, что большинство ОС дают вам возможность. В Windows вы можете открыть приложение диспетчера задач, выбрать процесс, и один из вариантов в контекстном меню - «Установить сходство». Это позволит вам выбрать, на каких ядрах будет выполняться процесс.
Сложный вопрос, это отличается в каждой ситуации.
Планировщик потоков / процессов в любой операционной системе намного сложнее и эффективнее, чем вы, и он может очень быстро реагировать на различные рабочие нагрузки. Пользователь не должен знать обо всех механизмах "как запланирован мой процесс", и (моя личная заметка), почему это действительно важно для вас?
Вы рискуете оставить 3 ядра в спящем режиме, и единственное рабочее ядро планирует 2132121 потоков в вашем приложении.
Кстати, если вы действительно хотите это сделать, в любой операционной системе вы можете определить "привязку к процессору" для каждого процесса.
В окнах вы можете изменить, какое ядро может использовать процесс в "Диспетчере задач", щелкните правой кнопкой мыши ПРОЦЕСС (не в приложении) и выберите "Сходство".
РЕДАКТИРОВАТЬ: я использовал его один раз, когда у меня было "очень важное приложение": на перегруженном сервере, это приложение должно было запускаться с высоким приоритетом, каждые несколько минут (по запросу от клиента). Мы заставили ОС назначить два ядра (более 8 ядер) исключительно для этого приложения. Мы получили наш результат, но в течение 90% времени два ядра спали.