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»