Как отключение ядра влияет на запущенные процессы? - PullRequest
9 голосов
/ 20 ноября 2008

У меня установлено это приложение на моем Macbook Pro, которое позволяет отключить ядро ​​на моем процессоре. Меня удивило: как отключение ядра влияет на запущенные процессы?

Мне также интересно, влияет ли отключение ядра на следующее

  • Срок службы батареи
  • Тепловыделение
  • Повышена ли производительность, когда процессор обычно использует менее 40% обоих ядер?

Ответы [ 5 ]

5 голосов
/ 29 января 2009

Как отключение ядра влияет на запущенные процессы?

Это не так, если только программа, которую вы используете, феноменально плохо написана. Планировщик ОС будет предупрежден о том, что процессор больше не доступен, и просто остановит планирование процессов в этом процессоре. Перевод процесса из состояния «ожидания» в состояние «ожидания» занимает микросекунды, поэтому переключение будет отображаться мгновенно. Процесс будет продолжаться на другом ядре, когда он станет доступным, и приоритет позволит.

Как отключение ядра влияет на срок службы батареи

Это будет иметь измеримый, но незначительный эффект - в некоторых случаях он будет увеличиваться. Другими словами, вы не должны видеть снижение потребления энергии более чем на 5%, поскольку современные процессоры уже используют агрессивные методы энергосбережения. Процессоры не запускают циклы простоя - они останавливаются, когда нет готового к запуску процесса. Если общая загрузка системы низкая, ОС замедляет процессоры, а не останавливает их, что дает аналогичный эффект экономии.

В определенных, очень специфических сценариях использования потребление энергии будет возрастать из-за того, как ОС использует процессоры (большее переключение задач, что приводит к снижению производительности и более высокой загрузке процессора).

Как отключение активной зоны влияет на выработку тепла

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

Как отключение ядра влияет на производительность (при условии, что процессор использует менее 40% обоих ядер)

Процессы очень "пиковые". Когда вы нажимаете клавишу или перемещаете мышь, она запускает десятки процессов ожидания и хочет получить 100% за очень короткий период времени.

Если заставить процессор запускать их поочередно, а не параллельно, да, общее среднее использование будет составлять только 80%, но оно будет тормозить не только из-за большого количества ожидающих процессов, но и из-за переключения задач - каждый раз, когда процесс изменяется (из-за приоритета, завершения, прерывания и т. д.), процессор загружает задачу ОС, которая затем запускает планировщик, который затем загружает следующую задачу.

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

Это расточительно, и снижение производительности может быть действительно заметным. Эта дополнительная работа не обязательно должна выполняться, если, например, в ОС есть возможность запуска обоих процессоров с 40% их нормальной скорости.

-Adam

3 голосов
/ 29 января 2009

Интересный вопрос. Это несколько связано. Вы не были слишком конкретны в том, что именно вы подразумеваете под «приложением, которое отключает ядро», и тем, что оно делает, но я предполагаю, что из вашего вопроса и комментария к другому, это приложение отключает ядро ​​дружественным для ядра ОС способом.

Таким образом, обычно, когда OS X работает, существует много различных возможных потоков / процессов (я скажу потоки с этого момента), которые конкурируют за ресурсы ЦП в планировщике. Когда оба ядра вашего процессора Core 2 Duo включены, ядро ​​может запускать два потока одновременно - вращать оба ядра через все, что нужно для запуска. Когда вы отключите одно из ядер, ядро ​​будет вынуждено переключиться на работу только с одним ядром. Конечно, это не меняет объем работы, которая должна быть выполнена ... это просто вдвое снижает вашу потенциальную производительность выполнения.

Вы не могли бы думать, что это имеет значение, если ваши ядра в среднем были заняты менее чем на 50%, верно? Ну, это имеет значение во многих обстоятельствах, и причина заключается в задержке выполнения вещи. Если в любой момент работает только один поток, то второе ядро ​​всегда бесполезно, даже если оно все еще включено. Однако в любой ситуации, когда два или более потоков становятся работоспособными .... можно использовать преимущества обоих ядер, и если одно из них отключено, то работа, выполняемая во втором потоке, не может начаться даже до предыдущего потока выполняется некоторое время, а затем выгружается. Предполагая, что два потока с равной работой должны быть выполнены, очевидно, что для завершения второго потока потребуется вдвое больше времени, чем в случае двухъядерного процессора. Вы можете не заметить этого, в зависимости от объема работы, о которой мы здесь говорим, но очевидно, что латентность (отзывчивость), по крайней мере, теоретически, будет сокращена вдвое. Очевидно, что по мере загрузки системы все большим количеством потоков, которые необходимо запустить, или потоков, которые должны выполнять больше работы, становится все более очевидным, что все работает - в действительности - с половинной скоростью.

Все было довольно просто.

Так, что это означает относительно рассеивания тепла и срока службы батареи?

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

Вывод здесь заключается в том, что отключение ядра, в конце концов, окажет очень незначительное влияние на общее время автономной работы, поскольку ОС и ЦП уже работают вместе, чтобы снизить тактовую частоту и эффективно отключить ядро, которое не необходимо. То есть на самом деле практически нет накладных расходов на наличие ядра в ожидании , готового к использованию, когда вам это нужно. Фактически, система может иметь более короткое время автономной работы, когда используется только одно ядро, потому что все остальные устройства на материнской плате должны оставаться активными дольше, поскольку процессору требуется больше времени для выполнения необходимой работы.

Относительно тепловыделения эффект аналогичен. Ясно, что пиковое тепловыделение с точки зрения WATTS резко сокращается только с одним ядром .... потому что только одно из двух ядер действительно активно. Тем не менее, опять же, это ядро ​​будет работать дольше, и суммарная суммарная выходная энергия (в Джоулях или Ваттах) будет примерно одинаковой ... и это опять-таки, поэтому время автономной работы практически не зависит от случая с одним ядром и двумя ядрами.

1 голос
/ 27 ноября 2008

Я предполагаю, что когда вы «отключаете» ядро, вы действительно говорите OS X больше не обрабатывать параллельно.

Я бы также предположил, что ОС достаточно умна, чтобы перемещать процессы после того, как вы их отключили:)

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

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

1 голос
/ 29 января 2009

Это не повлияет на ваши текущие процессы. Планировщик очистит запущенный процесс от ядра и просто не будет посвящать ему другой процесс.
И теперь вашему планировщику просто нужно найти хорошую стратегию, чтобы найти справедливое распределение процессов для оставшегося ядра.

  1. батарея: предельная
  2. тепловая разница: незначительная ... с нагрузкой 2x40%
  3. не существует или немного хуже
    • хуже, потому что теперь все процессы должны переключаться через одно-единственное ядро ​​
    • до того, как один процесс (и его контекст!) Могли бы постоянно оставаться на одном ядре
    • так что это добавит I / O ... и ваше единственное ядро ​​должно ждать его (сброс TLB и таблицы страниц)
0 голосов
/ 20 ноября 2008

Я не знаю насчет энергопотребления, но надеюсь, что вы сэкономите немного Это зависит от процента мощности, используемой в MBP ЦП.

Что касается влияния на сырую вычислительную мощность, то это зависит от характера приложений, которые вы используете. Большинство приложений не предназначены для использования нескольких ядер, хотя большинство топовых приложений. Итак, если вы используете Photoshop или программное обеспечение для редактирования видео, вы заметите значительное снижение пиковой производительности в тех случаях, когда узким местом в производительности является процессор (а не сетевой ввод-вывод или дисковый ввод-вывод).

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