El software Ct de Intel hara que el código convencional funcione en los próximos procesadores de muchos núcleos.
A la hora de programar el software de los ordenadores, hay una enorme diferencia entre “multi” y “muchos”. Los humanos normales y corrientes son capaces de escribir software para la raza actual de procesadores multinúcleo, que incorporan de dos a cinco unidades de proceso en un solo chip, aunque estas operaciones requieren tiempo adicional y una mayor práctica. El siguiente paso son los procesadores de muchos núcleos (“many-core processors”, en inglés), que llevan de dieciséis a cientos de núcleos—un número demasiado alto para que cualquier programador los pueda controlar de forma eficiente.
Por este motivo, y más adentrados en 2009, desde los laboratorios de Intel se lanzará un proyecto de investigación denominado Ct (“C for Thoughput”, en inglés), que hará que los compiladores estándar de C y C++ automáticamente trabajen con procesadores de muchos núcleos, comenzando con el primer procesador gráfrico de Intel en mucho tiempo, que responde al nombre clave de Larrabee, y que se espera salga al mercado a principios de 2010.
Ct, que formará parte de Parallel Studio, un kit de herramientas de desarrollo de software creado por Intel, y que quizá cambie de nombre cuando finalmente se empiece a distribuir, sigue los pasos actuales de la compañía en cuanto a rendimiento energético. “Estamos invirtiendo el presupuesto relativo al rendimiento en características que la gente desea utilizar,” explica un ingeniero de Intel que no está autorizado a hablar en nombre de la compañía, “para lograr estos chips de ‘ocho de ancho’ y de ‘dieciséis de ancho’, pero sin una herramienta como Ct estaríamos desaprovechando tres cuartos, o siete octavos, o quince dieciseisavos de ese potencial de rendimiento, y nadie quiere que algo así suceda.”
A la hora de incluir el paralelismo en el software, tradicionalmente los programadores se veían obligados a, en primer lugar, decidir qué partes de su código eran las más fáciles de adaptar al proceso paralelo, para después aislar esas partes en un módulo. Pero tanto si el lenguaje era C# o Java, el proceso de aislar y aplicar el código paralelo tenía que rehacerse por completo en función de cada nueva familia de procesadores o del aumento en el número de núcleos. Según Intel, Ct realiza todas estas operaciones de forma automática, con lo que la optimización para el funcionamiento del software con los futuros procesadores de muchos núcleos ni siquiera requerirá una recompilación.
Al contrario de otro tipo de arquitecturas de programación tales como CUDA de nVidia, que permite el paralelismo en masa al usar un gran número de procesadores gráficos de la compañía, la compatibilidad de Ct es retroactiva y se extiende a la totalidad del software desarrollado para la longeva arquitectura x86 de Intel. Así que, presumiblemente, si deseas ejecutar una copia del Lotus 1-2-3 de alrededor de 1982 en un procesador de 8 núcleos (o más), Ct podría encargarse de ello. Según la compañía, Ct es específico para los x86, no específico para Intel, así que el código funcionará igualmente en procesadores del archicompetidor de Intel, AMD.
Más importante aún para Intel es el hecho de que Ct funcionará con Larrabee, el primer chip gráfico de la compañía desde que se lanzó el i740 a finales de los 90, y el primer procesador que necesita totalmente una herramienta como Ct para resultar atractivo ante los programadores de juegos en 3-D que forman el grupo inicial de consumidores de Larrabee.
Para Intel, Larrabee supone una oportunidad de entrar en un mercado totalmente nuevo, y entrar a competir con nVidia y con la división gráfica ATI de AMD. Parece ser que Larrabee es una fusión entre una CPU centrada en el aspecto gráfico y la tecnología de los x86. “Todas las herramientas de software tienen una versión para el x86,” señala el ingeniero de Intel. “Vamos a colocar todo el ecosistema de los x86 dentro del área de los gráficos.”
Larrabee no será un chip gráfico individual en el mismo sentido que los chips de nVidia o las ATI GPU. Aunque si Larrabee y Ct tienen el rendimiento previsto, los días de los procesadores gráficos por separado llegarán a su fin.”
“Ct y Larrabee hacen buena pareja,” señala Marc Snir, director del Laboratorio de Computación de Alto Rendimiento en la Universidad de Illinois. “Creemos que Ct es más atractivo que CUDA u OpenCL a la hora de desarrollar código paralelo.”
Snit añade que Ct se podía convertir en un lenguaje versátil para “código de GPU de uso general, y para el uso de las GPUs como aceleradoras de cálculos científicos de alto rendimiento.”
Intel no ha anunciado aún el número de núcleos que compondrán el Larrabee cuando se lance al mercado el año que viene, pero las predicciones hablan de 16. Estaríamos hablando de 16 núcleos con 4 hilos de ejecución cada uno, con un total de 64 hilos. Si hacemos caso de la Ley de Moore, según la cual esos números se duplican cada 18 meses, en tres años estaríamos contemplando chips con 256 hilos de ejecución. El reto consistirá en hacer que todo eso funcione con el software desarrollado para chips de Intel más antiguos, así como que las interfaces de programación tradicionales como OpenGl y DirectX se ejecuten con eficiencia y transparencia a lo largo de 256 hilos o más.
Gracias a Ct, parece los programadores ni siquiera serán conscientes de que todo eso esté ocurriendo.