Как замедлить тактовую частоту процессора


12

Я недавно купил новый MacBook Pro, который иногда идет слишком быстро. Я часто программирую для Mathematica , и на моем старом MacBook Pro 2007 года у меня обычно возникает чувство неэффективного кода, когда он работает вяло (вот тогда я и решаю), я написал какой-то мусорный код. Может, мне стоит потратить пару часов на его настройку? «). Однако на моем новом Mac все работает очень быстро.

Есть ли на Mac переключатель, который позволяет мне замедлять процессор, скажем, до 1 ГГц?


Давайте перенесем расширенную дискуссию в чат .
bmike

Вы должны взглянуть на apple.stackexchange.com/questions/24998/…
Max Ried

Я сразу помню этот комикс: xkcd.com/1172
justhalf

Ответы:


19

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

Решение : В качестве альтернативы вы рассматривали запуск программ в MAC OS, но на виртуализаторе (например, в виртуальной коробке)? Затем вы можете ограничить количество ядер / ОЗУ, выделяемых для запуска второй ОС. В этом случае программы могут выполняться намного медленнее; потому что у виртуализатора гораздо меньше ресурсов. Это даст вам гораздо больше гибкости, и в случае сбоя вы можете вернуться и изменить настройки виртуализатора. Более интересно то, что вы можете перенести упакованные настройки, которые запускаются на виртуализаторе, на другую машину, а также запустить ее там, разумеется, имея там виртуализатор.


3
VirtualBox не является эмулятором. Это виртуализатор. Вот почему он называется «VirtualBox». Он виртуализирует процессор, но не эмулирует его. QEmu, например, эмулятор. (Хотя он может использовать виртуализацию и по умолчанию сделает это, если это возможно.)
Йорг W Mittag

1
@ JörgWMittag Это не виртуализатор. Это называется гипервизор типа 2.
Макс Райд

1
@DaveRose Vm не нужен, потому что ограничения на количество процессоров (сходство), память, максимальное время процессора и многие другие строки ресурсов могут быть установлены для одного процесса через командную строку с использованием утилит unix ulimit и sysctl - я не помню, если они Утилиты устанавливаются по умолчанию, вам может понадобиться установить инструменты разработчика командной строки через XCode. Вы должны установить ulimit и выполнить Mathematica из оболочки
авария

25

Если вы обеспокоены тем, насколько эффективно ваше программное обеспечение, позвольте мне предложить более инженерно-ориентированное решение, которое позволит вам поддерживать MacBook на полной скорости:

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


1
Как это замедлит код на одном Mac, а не на другом? Это хорошая информация, но не имеет отношения к этой теме.
bmike

@bmike Это хорошая информация. Я не знал о профилировщике Mathematica. Хотя он не дает прямого ответа на мой вопрос, он может помочь сделать его ненужным (+1). Возможно, лучше всего оставить комментарий.
QuantumDot

6
@bmike это ничего не замедляет, оно решает проблему, к которой ОП фактически стремится прийти, т. е. эффективен ли его / ее код Mathematica.
nekomatic

1

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

Есть ли способ установить приоритет процесса в Mac OS X?

Как навсегда «сдать в аренду» процесс в Mac OS X (или iOS и т. Д.)?

Appriority (ранее Renicer) от Северного Софтверка

Некоторые из этих обсуждений немного устарели, поэтому вам, возможно, придется поэкспериментировать или продолжить поиск, чтобы найти то, что работает на вашей версии Mac и OS X. Также вы можете обнаружить, что этот метод работает более эффективно, если вы настроите свой Mac для выполнения другой тяжелой задачи обработки - скажем, для преобразования большого видеофайла.


Изменение приоритета процесса не является гарантией того, что он будет работать медленно. Это просто подсказка операционной системе, что, если есть конфликт из-за процессорного времени, процессы с более высокими приоритетами идут первыми. Без каких-либо препятствий процесс с низким приоритетом будет работать на полной скорости.
Blrfl

1

К сожалению нет. Вы не можете изменить тактовую частоту на компьютерах Macintosh. Они не имеют BIOS так же, как материнские платы Windows, поэтому пользователь никак не может изменить тактовую частоту или переключиться на ввод-вывод.

Причина этого в основном в том, что на Mac вам не нужно вручную менять эти вещи. Аппаратное обеспечение уже готово, и ОС знает, к какому аппаратному обеспечению оно будет / может быть подключено.


Mac OS X МОЖЕТ динамически изменять тактовую частоту процессора, например, чтобы расставить приоритеты производительности при подключении к сети и времени работы от батареи при работе от батареи, так что это не совсем правильно - или, по крайней мере, если это правильно, то это по неправильной причине, т.е. не делайте эту настройку легко доступной.
nekomatic

Хорошая точка зрения. Я отредактировал пост, чтобы уточнить это
JamEngulfer

0

Да, но это не рекомендуется. Тактовая частота контролируется ОС и самим процессором из-за ряда факторов, включая нагрузку на процессор, температуру и доступность питания.

Если вы снизите заряд батареи до 10-20%, отсоедините любой внешний источник питания и разогреете ноутбук до максимальной рабочей температуры 95F (35C) , он, безусловно, перейдет в состояние пониженного энергопотребления, включая значительное снижение тактовой частоты процессора. Небольшой электрогрелки, например, используемой при болях в спине, под ноутбуком может быть достаточно, а зимой может быть очень удобно для вас.

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

Я предлагаю вам вместо этого использовать встроенные инструменты. Регулярное использование позволит вам использовать их без особых дополнительных усилий, чтобы вы могли интегрировать их в свое программное обеспечение на лету.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.