No hay nada poco práctico en más de 30 núcleos en una computadora. En realidad, ha sido relativamente común tener más de 30 núcleos disponibles en servidores AMD / Intel estándar durante varios años. Para darle una idea, una de las líneas de procesadores Intel de generación actual (E5v4 / Broadwell-EX) es buena para hasta 24 núcleos por zócalo en configuraciones de hasta 4 procesadores. Eso es un total de 96 núcleos físicos por sistema. Se avecinan arquitecturas más grandes, tanto en términos de números de núcleos en el procesador como de números de procesadores en el sistema.
Sin embargo, hay muchos desafíos con este tipo de escala horizontal. Estos son algunos de los más grandes:
1.) Es difícil escribir código que aproveche el procesamiento paralelo. Los programadores y compiladores del sistema operativo continúan mejorando en la distribución de la carga a través de múltiples núcleos, pero en última instancia, existe una gran cantidad de código que no se correlaciona bien para ser paralelo o no se ha escrito adecuadamente para hacerlo. Ciertos tipos de cargas de trabajo tienden a prestarse naturalmente a este tipo de arquitecturas (muchas máquinas virtuales en un host, por ejemplo), mientras que otras tienden a ser bastante difíciles de implementar (tareas intensivas de E / S o muy serializadas). Es instructivo notar que para los principales fabricantes (Intel o AMD, por ejemplo) cada nueva generación incluye SKU que tienen muchos núcleos a una velocidad menor y menos núcleos a una velocidad algo mayor.
- Cómo eliminar de forma segura usb usando el teclado
- ¿Cómo me ayuda el curso de Reparación de Laptop?
- ¿Alguien ha diseñado un clúster de cómputo utilizando el Intel Computer Stick y un conmutador KVM HDMI?
- ¿Qué debo hacer dado que la pantalla de mi computadora portátil no se enciende cuando se presiona el botón de encendido, pero el ventilador y las luces de encendido funcionan?
- ¿Qué habría requerido el comodoro para ganar la guerra de las computadoras domésticas?
2.) Cuantos más núcleos se agreguen, más densa se debe empacar una oblea para que se mantenga dentro de un tamaño particular. Se ha escrito mucho sobre esto, pero es suficiente decir que a medida que los tamaños fabulosos caen, la física se vuelve mucho más difícil (y más costosa). En la operación real, los desafíos en torno a la generación de más y más calor en espacios cada vez más pequeños presentan muchos límites.
3.) La capacidad de procesamiento ha estado superando el rendimiento de los componentes circundantes durante muchos años. Los tipos de cargas de trabajo que realmente pueden ejercer cientos de núcleos tienden a requerir una gran cantidad de RAM y esa RAM tiene que ser extremadamente rápida. Agregue el problema de arbitrar el acceso entre todos estos núcleos diferentes y puede ponerse feo muy rápidamente. El mismo punto se aplica a los subsistemas de almacenamiento y red. En resumen, el sistema en su conjunto solo es tan capaz como su capacidad para mantener todos estos procesadores alimentados.
Entonces, en la práctica, hemos tenido hardware y sistemas operativos que han soportado grandes cantidades de núcleos durante mucho tiempo. Más de 30 núcleos realmente no salen mucho de la categoría de servidor x86 de tamaño mediano y no lo han hecho por un tiempo. Los sistemas operativos Windows y Linux razonablemente modernos pueden manejar cientos de núcleos y terabytes de memoria más o menos listos para usar. Hay una escala móvil multivariante de practicidad que incluye el número de núcleos, la velocidad de esos núcleos, el tamaño y la velocidad de la memoria, los subsistemas de red y almacenamiento, el espacio físico / energía consumida y el precio requerido. Cada año trae mejoras en varias áreas que, a su vez, ejercen presión sobre la otra. Todo eso tiene que equilibrarse con la capacidad del software para aprovechar estos recursos. Ah, y no se olvide de agregar la cuestión de máquinas individuales más grandes frente a grupos distribuidos de máquinas más pequeñas / más baratas (con las complejidades asociadas, por supuesto).
En resumen, encontrar el equilibrio adecuado entre estos factores de manera continua es el verdadero desafío.