Hemos oído varias veces de boca de los ingenieros responsables del desarrollo de Xbox One que la consola está basada en tecnología de supercomputación y de data center. Centrándome ahora mismo en lo referente a data centers, ¿qué quiere decir esto exactamente? Xbox One está concebida siguiendo la tendencia que ya está comenzando a imponerse en los data centers de todo el mundo, y que dominará el mercado durante al menos lo que resta de década: SDDC (Software-defined data center) SDDC se refiere a un data center donde toda la infraestructura está virtualizada y entregada como un servicio (ITaaS), y es el siguiente paso en la evolución de la virtualización y el cloud computing. El flujo de los datos está automatizado y totalmente controlado por software (deduplicación, optimización y compresión simultánea) y la configuración del hardware se realiza mediante sistemas de software inteligente. Esto contrasta con los data centers tradicionales en los que la infraestructura viene definida por el hardware. El resultado final es un data center completamente programable. Hardware escalable y virtualizado, definido por el software. Software rules, y esto tiene mucho que ver con el cloud computing y cómo Xbox One está diseñada para ello! Y el diseño 100% virtualizado permite evolucionar el software tanto como se quiera, tanto de las APIs y OS´s como del pseudo-HyperV.
Respecto al diseño basado en supercomputación: enlaza con lo anterior, y se trata de la capacidad de disponer de un hardware reconfigurable. Flexibilidad vs Rigidez. La forma en la que cada hilo de software utiliza sus recursos asignados se monitoriza en tiempo real, y dichos recursos se reasignan al vuelo entre otros hilos de trabajo si es necesario. "Display planes" dinámicos, al principio no lo están siendo tanto pero irá mejorando. El hardware debe ser capaz de reconfigurar los núcleos de computación por cola de trabajo de una forma totalmente automatizada (CPU, GPU y aceleradores). DX12 es un primer paso en esa dirección, modelos de ejecución basados en paquetes/tareas, reducción de overhead (escribiendo directamente en los command buffers principalmente, como Mantle) y ser capaz de flexibilizar el hardware y optimizar el rendimiento extraído de cada W. Básicamente es un cambio de un engine vectorial a uno superescalar.
Todo esto parece ciencia ficción, y en cierto modo en 2014 aún lo es, pero según el cambio de paradigma se vaya produciendo, especialmente en PC (Mantle-DX12), iremos viendo los beneficios y el verdadero potencial de la consola. De momento seguimos en más de lo mismo, potencia bruta, dependencia de datos entre los hilos de trabajo, y middleware enfocado a ello.