Afinidad, Scheduler de Windows 10 y Virtualización

En el artículo anterior hablé sobre el Scheduler de Windows y algunas optimizaciones posibles afinitizando tareas a CPUs lógicas poniendo de manifiesto técnicas para mejorar el threading en sistemas Windows 10.

En este me centraré en la Virtualización y como puede beneficiarse de manera importante asignando de forma permanente y definida recursos de CPU  a las VM.

Mediante el Administrador de Tareas podemos modificar el comportamiento de un componente crucial de Windows: El Scheduler de Windows 10.

Afinidad y Virtualización

En un Host Windows 10 puedo asignar 4 cores con SMT (un CCX completo con su L3 de 8 MB y 8 threads) a una VM Ubuntu 18.04 LTS en VirtualBox con excelentes resultados en velocidad y sin mermas de prestaciones en el Host Windows 10.

Pondré un ejemplo práctico con VirtualBox y un Guest Ubuntu 18.04 LTS en un Host Windows 10 Pro 1809 x64.

Primero, como base vamos a ver el comportamiento nominal de VirtualBox en Windows 10 Pro.

Continuar leyendo “Afinidad, Scheduler de Windows 10 y Virtualización”

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”

AMD Ryzen 7 – 8 cores 16 threads y 4 GHz

El procesador AMD Ryzen 7, la estrella de la gama, llega con 8 cores, 16 threads y 4 GHz en modo turbo para revolucionar el mercado…

… Literalmente.

El procesador AMD Ryzen 7 1800X.
El procesador AMD Ryzen 7 1800X. 4 + 4 cores, 16 threads y 8 + 8 MB de L3.

La gama alta de los procesadores Ryzen competirá con las CPU Intel de la serie 6800 y 6900 de 6, 8 y 10 cores en socket 2011.

Ahora mismo sus precios son muy elevados, pero, sin duda Intel procederá a ajustarlos de modo importante en breve.

La serie de procesadores AMD Ryzen 7 queda así:

  • AMD Ryzen 7 1800X: 8C y 16T, 3.6 GHz – 4.0 GHz turbo.
  • Ryzen 7 1700X: 8C y 16T, 3.4 GHz – 3.8 GHz turbo.
  • Ryzen 7 1700:   8C y 16T, 3.0 GHz – 3.7 GHz turbo.

AMD Ryzen 7. Un 52% más IPC que Excavator…

AMD ha superado su target del 40% y afirma superar en un 52% en IPC a su última iteración de Bulldozer, Excavator. Simplemente impresionante.

AMD Ryzen. Un incremento IPC del 52% respecto a Excavator
AMD Ryzen. Un incremento IPC del 52% respecto a Excavator

Continuar leyendo “AMD Ryzen 7 – 8 cores 16 threads y 4 GHz”