ver tareas rendimiento procesos mac los kernel_task innecesarios eliminar como atajo administrador activos actividad osx cpu multicore

osx - tareas - ¿Cómo afecta la desactivación de un núcleo a los procesos en ejecución?



ver los procesos activos en mac (5)

Tengo esta aplicación instalada en mi Macbook Pro que me permite desactivar un núcleo en mi CPU. Me pregunto: ¿cómo afecta la desactivación de un núcleo a los procesos en ejecución?

También estoy interesado si la desactivación de un núcleo tiene un efecto sobre lo siguiente

  • Duración de la batería
  • Generación de calor
  • ¿Mayor rendimiento cuando el procesador normalmente usaría menos del 40% de ambos núcleos?

Supongo que cuando "deshabilitas" el núcleo, realmente le estás diciendo a OS X que ya no debe procesar en paralelo.

También supongo que el sistema operativo es lo suficientemente inteligente como para mover los procesos después de haberlos desactivado :)

No creo, sin embargo, realmente vería una gran mejora en el consumo de energía o la duración de la batería, pero es una suposición: la CPU sigue recibiendo energía, solo parte de ella no se accede.

Además, y esto es simplemente una pregunta teórica, ¿podría no ejecutarse solo un Core aumentar la probabilidad de que la CPU se queme, a menos que se tenga cuidado de mantener constantes las propiedades térmicas? Solo un pensamiento.


¿Cómo afecta la deshabilitación de un núcleo a los procesos en ejecución?

No es así, a menos que el programa que estás utilizando esté fenomenalmente mal escrito. El programador del sistema operativo recibirá una alerta de que el procesador ya no está disponible y simplemente detendrá los procesos de programación en ese procesador. Poner un proceso de "funcionamiento" a "esperar" toma microsegundos, por lo que el cambio aparecerá de forma instantánea. El proceso continuará ejecutándose en el otro núcleo a medida que esté disponible y la prioridad lo permita.

¿Cómo la desactivación de un núcleo afecta la vida de la batería?

Tendrá un efecto mensurable pero no significativo; en algunos casos aumentará. En otras palabras, no debería ver más que tal vez un 5% de disminución en el uso de energía ya que los procesadores modernos ya emplean técnicas agresivas de ahorro de energía. Los procesadores no ejecutan bucles inactivos, se detienen cuando no hay ningún proceso listo para ejecutarse. Si la carga total del sistema es baja, el sistema operativo ralentiza los procesadores en lugar de detenerlos, lo que tiene un efecto de ahorro similar.

En ciertos escenarios de uso muy específicos, el uso de energía aumentará debido a la forma en que el sistema operativo usa los procesadores (más conmutación de tareas, lo que conduce a un menor rendimiento y una mayor utilización del procesador).

¿Cómo la desactivación de un núcleo afecta la generación de calor?

Al igual que con la potencia, será medible, pero no perceptible sin una medición cuidadosa. Una vez más, el procesador ya tiene un control de potencia excepcional y moderará los relojes, el voltaje y el ralentí del procesador para que coincida con la carga, independientemente de cuántos procesadores estén activos.

¿Cómo la desactivación de un núcleo afecta el rendimiento (suponiendo que el procesador está utilizando menos del 40% de ambos núcleos)

Los procesos son muy "picosos". Cuando presiona una tecla o mueve el mouse, inicia docenas de procesos de espera y quiere un 100% durante un período de tiempo muy corto.

Al forzar al procesador a ejecutarlos uno a la vez en lugar de hacerlo en paralelo, sí, el uso promedio general es solo del 80%, pero se sentirá rezagado no solo por una gran cantidad de procesos de espera, sino también por el cambio de tareas, cada vez se cambia un proceso (debido a la prioridad, o se está terminando, o se interrumpe, etc.) el procesador carga la tarea del SO, que luego ejecuta el planificador, que luego carga la siguiente tarea.

Está doblando la carga de conmutación de tareas en un procesador, lo que significa que está ejecutando el código del sistema operativo (programador, administrador de eventos, etc.) con mucha mayor frecuencia para mantenerse al día con la demanda.

Esto es un desperdicio y la disminución del rendimiento puede ser notable. Este trabajo adicional no necesariamente tendría que realizarse si el sistema operativo tuviera la opción de ejecutar ambos procesadores al 40% de su velocidad normal, por ejemplo.

-Adán


Realmente no afectará sus procesos en ejecución. El programador borrará el proceso de ejecución desde el núcleo y simplemente no le dedicará otro proceso.
Y ahora su planificador solo tiene que encontrar una buena estrategia para encontrar una asignación justa de los procesos para el núcleo restante.

  1. batería: marginal
  2. heat-diff: insignificante ... con el 2x40% de carga
  3. inexistente o ligeramente peor
    • peor porque ahora todos los procesos deben cambiarse por el único núcleo
    • ¡antes de un proceso (y su contexto!) podría haberse quedado todo el tiempo en un núcleo
    • entonces esto agregará E / S ... y su único núcleo tendrá que esperar (descargando el TLB y la tabla de páginas)

Interesante pregunta. Esto se complica un poco. No era súper específico sobre exactamente lo que quiere decir con "aplicación que deshabilita un núcleo" y exactamente lo que hace, pero supongo por su pregunta y el comentario a otro que esta aplicación está deshabilitando el núcleo de una manera amigable con el kernel del sistema operativo.

Por lo tanto, normalmente cuando OS X se está ejecutando, hay muchos procesos / subprocesos posibles (voy a decir subprocesos de aquí en adelante) que compiten por los recursos de la CPU en el planificador. Cuando ambos núcleos de su procesador Core 2 Duo están habilitados, el kernel tiene la capacidad de ejecutar dos hilos simultáneamente, rotando ambos núcleos a través de todo lo que necesita ejecutarse. Cuando desactives uno de los núcleos, el núcleo volverá a solo enviar trabajo a un solo núcleo. Por supuesto, esto no cambia la cantidad de trabajo que se necesita hacer ... solo reduce a la mitad el rendimiento de ejecución potencial .

Es posible que no piense que esto importa si sus núcleos promediaron menos del 50% de ocupación, ¿no? Bueno, sí importa en muchas circunstancias y la razón es la latencia para ejecutar cosas. Si solo hay un hilo ejecutable en cualquier momento, entonces el segundo núcleo siempre es inútil, incluso si todavía está habilitado. Sin embargo, en cualquier situación donde dos o más hilos se vuelven ejecutables ... es posible aprovechar ambos núcleos y si uno de ellos está deshabilitado, entonces el trabajo a realizar en el segundo hilo ni siquiera puede comenzar hasta que el hilo anterior se ejecuta por un tiempo y luego se intercambia. Asumiendo dos hilos con el mismo trabajo por hacer, claramente va a tomar el doble de tiempo para que el segundo hilo llegue a completarse en comparación con el caso de doble núcleo. Puede que no lo note, dependiendo de cuánto trabajo hablemos aquí, pero claramente la latencia (capacidad de respuesta) al menos en teoría se reducirá a la mitad. Claramente, a medida que el sistema se carga con más y más hilos que necesitan ejecutarse o hilos que tienen más trabajo por hacer, será cada vez más obvio que todo se está ejecutando, en efecto, a la mitad de velocidad.

Eso fue todo bastante directo.

Entonces, ¿qué significa esto en relación con la disipación de calor y la duración de la batería?

¿Saliste aquí o no? ... porque de hecho, aunque podrías pensar que estás obteniendo la mitad de la potencia por unidad de tiempo, el trabajo en realidad requiere el doble de tiempo para completarse.

La conclusión aquí es que deshabilitar un núcleo, al final, tendrá muy poco o ningún impacto en la duración total de la batería porque el sistema operativo y la CPU ya están trabajando en conjunto para reducir los relojes y apagar efectivamente un núcleo que no es necesario. Es decir, hay muy poca o ninguna carga en tener un núcleo en la espera listo para ser utilizado cuando lo necesite. De hecho, un sistema podría tener una duración de batería más corta con solo un núcleo, ya que todos los demás dispositivos de la placa base deben permanecer activos durante más tiempo, ya que la CPU tarda más tiempo en realizar el trabajo necesario.

En relación con la disipación de calor, el efecto es similar. Claramente, la máxima disipación de calor en términos de WATTS se reduce drásticamente con un solo núcleo ... porque solo uno de los dos núcleos está realmente activo. Sin embargo, nuevamente, ese núcleo estará funcionando más tiempo y la producción de energía neta total (JOULES o WATT SECONDS) será aproximadamente la misma ... lo que explica por qué la duración de la batería no se ve afectada en el caso de un núcleo vs. dos núcleos.


No sé sobre el consumo de energía, pero espero que ahorre un poco de margen. Esto depende del porcentaje de potencia utilizada en el MBP por la CPU.

En cuanto al impacto en el poder de procesamiento en bruto, depende de la naturaleza de las aplicaciones que está ejecutando. La mayoría de las aplicaciones no están diseñadas para utilizar múltiples núcleos, aunque la mayoría de las aplicaciones de gama alta sí lo están. Por lo tanto, si usa Photoshop o software de edición de video, notará una reducción significativa del rendimiento pico en los casos en que el cuello de botella de rendimiento es la CPU (y no el IO de red o IO de disco).