No he encontrado la respuesta buscando en Google. Me lo pregunto porque no le encuentro sentido a lo que veo en mi Macbook Air M1 cuando le doy una carga pesada de trabajos BOINC cuando está en batería vs. enchufado. Las capturas de pantalla muestran que MacOS asigna los cuatro trabajos a los mismos cuatro núcleos, independientemente de la fuente de alimentación; ingenuamente esperaba una diferencia. No importa lo que intente, BOINC sólo funciona en los cuatro núcleos de la derecha, nunca en los cuatro de la izquierda, incluso cuando le doy ocho trabajos. Pero, ¿qué son los MenuMeters de la izquierda y de la derecha, el rendimiento o la eficiencia? ¿Está BOINC haciendo la elección?
Respuestas
¿Demasiados anuncios?En general, el desarrollador del software puede elegir (o, al menos, indicar claramente al sistema operativo) qué tipo de núcleo utilizar. El desarrollador establece una expectativa de calidad de servicio y el sistema operativo suele seguirla.
Además de la expectativa de QoS suministrada por el desarrollador, el sistema operativo supervisa la carga de trabajo de la aplicación durante un periodo de tiempo, así como la carga de trabajo de todo el sistema durante un periodo de tiempo, y utiliza la heurística para tomar una decisión global sobre si programar un hilo específico en un núcleo P (rendimiento) o en un núcleo E (energía).
Tenga en cuenta que las aplicaciones y los procesos en segundo plano se tratan de forma diferente a este respecto. Por ejemplo, una aplicación GUI podría ser tratada de forma diferente si su(s) ventana(s) está(n) en primer plano o en segundo plano. Para los procesos en segundo plano (como la computación de BOINC) eso no se aplica.
Puede leer un resumen relativamente poco técnico de su funcionamiento aquí:
https://developer.apple.com/news/?id=vk3m204o
Y un poco más de detalles (pero todavía información general) sobre las clases de QoS aquí:
Tenga en cuenta que, en realidad, a menudo es posible que usted, como usuario, anule la clase QoS establecida por el desarrollador. Obtenga el PID (ID del proceso) del trabajo de BOINC al que quiere afectar (usando, por ejemplo, el Monitor de Actividad) - y luego use el taskpolicy
para establecer una nueva clase de calidad de servicio.
Por la carga establecida por usted.
Cuanto más programas o más probablemente un algoritmo que mira la carga del procesador basado en las actividades en curso que trae más o menos núcleos según sea necesario para cumplir con una calificación de rendimiento dado.
La mayoría de los procesadores alcanzan su máximo rendimiento cuando se les suministra energía eléctrica y se reducen cuando están en la batería para que tengan una vida más larga.