El Scheduler de Windows 10 y las CPU multicore

En este artículo describiré sencillas optimizaciones de rendimiento aplicables a la mayoría de aplicaciones multithread debido a las interacciones  entre el Scheduler de Windows 10 y las CPU multicore.

Estas aplicaciones comprenden la inmensa mayoría del software:

  • Compresores de archivos (WinRAR, 7Zip…)
  • Software de edición de imagen, vídeo y audio (Adobe Photoshop, Audition…)
  • Escaneos antimalware.
  • Cargas ML, DL y AI.
  • Cálculos matemáticos y simulaciones numéricas.
  • Compilación.
  • Y cualquier software ejecutado en multitarea.

Las CPUs multicore actuales de interés para este estudio integran desde 4 cores con SMT, es decir, ejecutan más de 8 threads simultáneos. Las pruebas para este artículo las he ejecutado en el siguiente sistema portátil con 8 cores y 16 threads:

  • Windows 10 Professional 1803 x64
  • CPU AMD Ryzen 7 1700 de 8 núcleos y 16 threads
  • 8 cachés L2 512 KB y 2 L3 8 MB
  • Frecuencia fijada a 3.4 GHz para los tests (repetitividad)
  • Voltaje CPU 1.10 V @ 3.4 GHz
  • 24 GB DDR4 @ 2400 (16 + 8 GB)
  • SSD Sansung Evo 970 500 GB NVMe PCIex 3.0 4X
  • Driver NVMe Samsung
  • SSHD Seagate Firecuda 1 TB (HD Híbrido)
  • GPU AMD Radeon RX580 (driver 18.9.3)

El scheduler de Windows 10

El funcionamiento del Scheduler de Windows 10 (el sistema encargado entre otras tareas de distribuir los threads a las CPUs lógicas) tiene un funcionamiento muy optimizado. No es perfecto pero realmente hace un mejor trabajo que las versiones anteriores de Windows (8.1, 8, 7…) y marca una evolución evidente en el manejo de cargas multithread.

Continuar leyendo «El Scheduler de Windows 10 y las CPU multicore»