He escrito una tarea de subprocesos muy intensiva en CPU que funciona como se esperaba en mi MacBook Pro de cuatro núcleos de 2012. Lo suelto con 20 hilos y las temperaturas alcanzan los 100 ° C, medido con el Intel Power Gadget con un mínimo de regulación.
Lleve el mismo programa y archivos de datos a mi MacBook Pro de 13 "con una máquina de doble núcleo y enciéndalo. Espero que también mantenga el 3.3-3.4 GHz hasta que la temperatura se acerque a los 100 ° Marca C. El comando superior muestra la tarea al 350% (2 núcleos cada uno de doble rosca), pero la frecuencia de la CPU se corta a 1.6-1-8 GHz con la temperatura solo a 60 ° C o menos, con los ventiladores completamente silenciosos. Comience 4 tareas separadas de la CPU con un solo hilo, la máquina se comporta como se espera y mantiene los 3.3-3.4 GHz hasta que alcanza los 100 ° C y los ventiladores se ponen en marcha. La pregunta es ¿por qué mi CPU se está reduciendo?
Ambas máquinas están actualizadas y ejecutan las mismas versiones de gcc. Si incluso tomo el binario de la máquina de trabajo y lo coloco en la Mac 2016, tiene el mismo problema.
Si ejecuto 3 o 4 subprocesos únicos de CPU para que la máquina funcione a toda velocidad, luego inicio el programa de subprocesos, también disminuye la frecuencia.
Ambas máquinas tienen 16 GB de RAM.
Editar
Después de jugar con el código, sospecho que se está acelerando cuando una tarea crea demasiados hilos. En este programa, tomo cada registro que leo y creo un hilo para él. Solo dejo 20 o más subprocesos a la vez, así que en ningún momento hay más de 21 subprocesos, pero hay 14,400,000 registros que deben procesarse, de modo que durante los 30 minutos aproximadamente, cada uno de esos registros será procesado por un subproceso separado. / p>
Creé un programa trivial pthread que consumía tiempo de CPU y configuraba 10 de ellos en ejecución. La computadora portátil con problemas funcionó y se calentó a 95ºC sin problemas.
Supongo que reescribiré mi código para reutilizar el mismo hilo en lugar de destruirlos y volver a iniciarlos.
Actualización 5/13/17
Después de varias horas de trabajo, ahora solo crea n subprocesos y solo los reutiliza, eso no ayudó. Aparte de la temperatura de la CPU, ¿qué hará que esta máquina disminuya?