Enviado el jueves, 27 de agosto de 2009 8:34

Rapidmind, la empresa creada hace 5
años por el profesor Michael McCool de la Universidad de Waterloo,
fue adquirida por
Intel hace una semana. Rapidmind se creó con la
vista puesta en la comercialización del sistema de programación Sh
que conseguía adaptar y optimizar algoritmos a diferentes
plataformas de consumo y altas prestaciones que surgieron a partir
de los aceleradores (procesadores gráficos y variados
multiprocesadores). Rapidmind creció rápidamente gracias al
desarrollo de las arquitecturas multicore para ordenadores
personales, que compartían la misma filosofía que los aceleradores
citados, así como a la euforia de algunos desarrolladores y empresas
por poder adaptar sus algoritmos a variadas arquitecturas sin la
necesidad de recodificar en diferentes entornos. Un mismo código,
con ayuda de las librerías de Rapidmind, podía ser ejecutado en un
procesador basado en múltiples núcleos, en un procesador IBM Cell o
en una tarjeta gráfica, sin necesidad de conocer detalles íntimos
de estas diferentes plataformas. Como dato histórico,
Google
adquirió en 2007 Peakstream Inc., otra empresa con objetivos
parecidos a los de Rapidmind.
Intel da un paso adelante para unir la
tecnología de Rapidmind a la que ya Intel tenía en desarrollo con
su Intel Ct technology. Este avance se traduce en las
inquietudes que Intel demuestra con la visión de un futuro donde el
desarrollo de la concurrencia se hace evidente, y donde la
simplificación de la programación concurrente es la clave del
desarrollo software para sus procesadores de manera eficiente. La
programación concurrente (varios procesadores o núcleos de
procesamiento trabajando de forma paralela sobre un único conjunto
de datos) es compleja. No es nada nuevo, al igual que la
programación orientada a objetos no fue nueva en los años 90, pero
fue totalmente asumida por la comunidad de desarrolladores generando
una revolución. La programación concurrente y el paralelismo han
sido campos de aplicación estudiados desde diferentes perspectivas,
pero tradicionalmente desde su componente hardware. En estos
momentos, cuando el hardware disponible para el segmento de consumo
es necesariamente paralelo para su supervivencia (ver post: Paralelismo de Consumo, ¿futuro de la computación?),
se hace evidente que la comunidad de desarrolladores deba adoptar
este modelo de programación, y es cuando las empresas fabricantes se
esfuerzan por ofrecer herramientas que simplifiquen la programación
en sus arquitecturas.
Otra gran apuesta, en este caso de
estandarización, por ofrecer un único entorno para la programación
sobre sistemas heterogéneos (aceleradores, multicores, móviles,
sistemas embebidos,...) es OpenCL. Algunos fabricantes, como Nvidia y
AMD-ATI, ya están empezando a ofrecer librerías de desarrollo para
sus respectivas plataformas. No se debe olvidar que Nvidia lleva
ofreciendo su entorno hardware/software CUDA desde el año 2007, y
actualmente se ofrece gratuitamente la versión 2.3 de la SDK para la mayor parte de sistemas operativos de consumo.