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

StackOverflow https://stackoverflow.com/questions/306705

  •  08-07-2019
  •  | 
  •  

Вопрос

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

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

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

Решение

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

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

Как отключение ядра влияет на время автономной работы

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

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

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

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

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

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

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

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

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

-Адам

Другие советы

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

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

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

Все это было довольно прямолинейно.

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top