Cómo reducir la velocidad del reloj del procesador

12

Recientemente compré un nuevo MacBook Pro que a veces va demasiado rápido. Frecuentemente programo para Mathematica , y en mi viejo MacBook Pro 2007 usualmente tenía una sensación de código ineficiente cuando se ejecuta lentamente (es cuando decido "caramba, escribí un código basura. Tal vez debería pasar un par de horas afinándolo"). "). Sin embargo, en mi nueva Mac, todo funciona a toda velocidad.

¿Hay un interruptor en la Mac que me permita ralentizar la CPU a, por ejemplo, 1 GHz?

Punto cuántico
fuente
Pasemos la discusión extendida al chat .
bmike
Deberías echar un vistazo a apple.stackexchange.com/questions/24998/…
Max Ried el
Inmediatamente recuerdo este cómic: xkcd.com/1172
justo el

Respuestas:

19

No creo que sea posible manipular la barra de velocidad mínima del reloj, simplemente debido a la relación directa entre la potencia, la frecuencia y la velocidad del reloj de un microprocesador. Obviamente, el reloj tiene un rango, por lo que, por ejemplo, para ejecutar simulaciones, el sistema necesita más potencia para funcionar más rápido debajo del rango, y luego, cuando deja de simular, ve la caída.

Una solución : ¿Alternativamente consideró ejecutar los programas dentro de MAC OS pero en un virtualizador (p. Ej., Caja virtual)? Luego puede limitar el número de núcleos / RAM dedicados a ejecutar el segundo sistema operativo. En ese caso, los programas pueden verse obligados a ejecutarse mucho más lentamente; porque el virtualizador tiene recursos mucho más bajos. Esto le dará mucha más flexibilidad y, en caso de falla, puede regresar y cambiar la configuración del virtualizador. Más interesante aún, puede llevar la configuración empaquetada que se ejecuta en el virtualizador a otra máquina y ejecutarla allí también, teniendo el virtualizador allí, por supuesto.

o-0
fuente
3
VirtualBox no es un emulador. Es virtualizador. Por eso se llama "VirtualBox". Virtualiza la CPU, no la emula. QEmu, por ejemplo, es un emulador. (Aunque puede usar la virtualización, y por defecto lo hará, si es posible).
Jörg W Mittag
1
@ JörgWMittag No es un virtualizador. Se llama hipervisor tipo 2.
Max Ried el
1
@DaveRose Un vm es innecesario porque se pueden establecer límites en el conteo del procesador (afinidad), memoria, tiempo máximo de CPU y muchos otros recursos limitados para un solo proceso a través de la línea de comandos usando las utilidades de Unix ulimit y sysctl . No recuerdo si estos las utilidades se instalan de manera predeterminada, es posible que deba instalar las herramientas de desarrollo de línea de comandos a través de XCode. Debería configurar ulimit y ejecutar Mathematica desde el shell
crasic
25

Si le preocupa cuán eficiente es su software, permítame sugerirle una solución más orientada a la ingeniería que le permitirá mantener su MacBook funcionando a toda velocidad:

Use el generador de perfiles integrado en Mathematica . Esto le permitirá identificar las partes de sus cómputos que consumen la mayor parte del tiempo sin tener que recurrir a mediciones de asiento que solo funcionan en hardware lento.

Blrfl
fuente
1
¿Cómo ralentizaría esto el código en una Mac y no en otra? Es buena información, pero no parece relevante para este hilo.
bmike
@bmike Esta es una buena información. No sabía sobre el perfilador de Mathematica. Aunque no responde directamente a mi pregunta, puede ayudar a que sea innecesaria (+1). Quizás hubiera sido mejor dejarlo como comentario.
QuantumDot
66
@bmike no ralentiza nada, aborda el problema que el OP realmente está tratando de resolver, es decir, si su código de Mathematica es eficiente o no.
nekomatic
1

La creación de perfiles, como se sugiere en la respuesta de Blrfl, es la forma más apropiada de identificar si su código de Mathematica es eficiente o no. Sin embargo, si realmente desea ralentizar su ejecución, puede hacerlo cambiando la prioridad del proceso de Mathematica. No he probado esto, pero puede encontrar información útil o software entre estos enlaces:

¿Hay alguna forma de establecer la prioridad de un proceso en Mac OS X?

¿Cómo "cambiar la forma" de forma permanente de un proceso en Mac OS X (o iOS, etc.)?

Aprioridad (anteriormente Renicer) por Northern Softworks

Sin embargo, algunas de esas discusiones son un poco antiguas, por lo que es posible que deba experimentar o buscar más para encontrar lo que funciona en su versión de Mac y OS X. También es posible que la técnica funcione de manera más efectiva si configura su Mac para que se ejecute otra tarea de procesamiento pesado al mismo tiempo, por ejemplo, convertir un gran archivo de video.

nekomatic
fuente
Cambiar la prioridad de un proceso no garantiza que se ejecutará lentamente. Es solo una pista para el sistema operativo de que si hay una disputa por el tiempo del procesador, los procesos con prioridades más altas deben ir primero. Sin que nada se interponga en su camino, se ejecutará un proceso de baja prioridad a toda velocidad.
Blrfl
1

Lamentablemente no. No puede alterar la velocidad del reloj en las computadoras Macintosh. No tienen un BIOS de la misma manera que las placas base de Windows, por lo que no hay forma de que el usuario pueda cambiar la velocidad del reloj o manipular las cosas de E / S.

La razón de esto es principalmente porque en una Mac, no necesita cambiar manualmente estas cosas. El hardware ya está preconstruido y el sistema operativo sabe a qué hardware se puede / se puede conectar.

JamEngulfer
fuente
Mac OS X PUEDE cambiar la velocidad del reloj del procesador dinámicamente, por ejemplo, para priorizar el rendimiento cuando está enchufado frente a la duración de la batería cuando está en la batería, por lo que esto no es realmente correcto, o al menos si es correcto, es por la razón incorrecta, es decir, el sistema operativo no No haga esta configuración fácilmente accesible.
nekomatic
Buen punto. Edité la publicación para aclarar esto
JamEngulfer
0

Sí, pero no es aconsejable. El sistema operativo y el procesador en sí controlan la velocidad del reloj debido a una serie de factores, incluida la carga del procesador, la temperatura y la disponibilidad de energía.

Si reduce la batería al 10-20%, desconecta cualquier fuente de alimentación externa y calienta la computadora portátil hasta su temperatura máxima de funcionamiento, 95F (35C) , ciertamente entrará en un estado de menor potencia, incluida la reducción significativa del reloj del procesador. Una pequeña almohadilla térmica, como las que se usan para el dolor de espalda, debajo de la computadora portátil puede ser suficiente, y durante el invierno puede ser muy cómoda para usted.

Sin embargo, sería mejor usar las herramientas correctas para ajustar el rendimiento. Sí, puede simular su antiguo entorno y, por lo tanto, usar su propio reloj interno, sin embargo, el software que está usando tiene relojes, temporizadores y otras herramientas para comprender el rendimiento de su trabajo. Dado que es probable que pueda actualizar nuevamente en varios años, o puede usar diferentes computadoras y plataformas informáticas en el tiempo intermedio, usar muletas como emuladores no es una buena solución a largo plazo.

Le sugiero que en su lugar haga uso de las herramientas integradas. El uso regular le permitirá usarlos sin demasiado esfuerzo adicional, para que pueda integrarlos en su software sobre la marcha.

Adam Davis
fuente