OpenCL,
Open Compute Language, es la primera propuesta abierta y estándar de programación paralela sobre dispositivos heterogéneos de consumo, como sistemas multicore, GPUs, móviles, procesadores basados en Cell, etc. El objetivo de OpenCL es crear un punto de encuentro entre fabricantes para que adopten una estrategia común, simplificar la programación de estos dispositivos y poder sacar provecho a arquitecturas heterogéneas con menores tiempos de desarrollo. OpenCL fue una iniciativa propuesta por Apple y posteriormente impulsada por Khronos, el grupo de empresas del sector que mantiene el interfaz de acceso gráfico OpenGL entre otros.
Khronos, el grupo formado por diversas empresas del sector como son
3DLABS, Activision Blizzard, AMD, Apple, ARM, Barco, Broadcom,
Codeplay, Electronic Arts, Ericsson, Freescale, HI, IBM, Intel
Corporation, Imagination Technologies, Kestrel Institute, Motorola,
Movidia, Nokia, NVIDIA, QNX, RapidMind, Samsung, Seaweed, TAKUMI, Texas
Instruments y Umeå University, ha presentado oficialmente en
SIGGRAPH ASIA 2008 la especificación 1.0 de
OpenCL. La iniciativa responde a la creciente popularidad de ciertas arquitecturas multicore, desde los ordenadores de sobremesa, a estaciones basadas en procesadores Cell o arquitecturas basadas en tarjetas gráficas, como los sistemas Tesla de Nvidia o FireStream de AMD/ATI.
La aceleración que producen determinadas aplicaciones
de propósito general sobre dispositivos poco habituales como estas tarjetas gráficas, han forzado a algunos fabricantes a introducir
interfaces de programación para aprovechar sus arquitecturas. Ese fue
el caso de Nvidia y su popular arquitectura hardware/software
CUDA o AMD/ATI y su
Stream SDK. Sin embargo, estos interfaces no eran multiplataforma, evitando la portabilidad de las soluciones entre diferentes fabricantes de hardware y entre diferentes dispositivos que, sin embargo, coincidían en comunes modos de programación. La empresa
Rapidmind capitaneada por Michael McCool, profesor de la Universidad de Waterloo, lleva varios años proponiendo un interfaz multiplataforma con iguales propósitos, pero no era libre y sus licencias eran de pago.
Con OpenCL se abre un nuevo horizonte para el aprovechamiento de estos sistemas de consumo y altas prestaciones, se dota de cierto razocinio en la comunidad y se establece un punto de partida para el futuro de estas arquitecturas.