JavaOpenCL Binding Java para OpenCL

Resumen

En los últimos años, el diseño de las arquitecturas de consumo se ha centrado en el paralelismo como objetivo principal para el incremento del rendimiento. Por ello, las mejoras clásicas como el aumento de la frecuencia de reloj se han quedado atrás en favor de la inclusión de un mayor número de procesadores en la CPU. Por otro lado, impulsadas por la industria de lo videojuegos, las GPUs han evolucionado hacia unidades de cómputo altamente paralelas, programables y con un elevado ancho de banda en memoria. Debido a que en la actualidad la gran mayoría de los sistemas de cómputo incluyen CPUs, GPUs y otros tipos de procesadores, es necesario disponer de software que sea capaz de aprovechar el poder de cómputo presente en estas arquitecturas heterogéneas. OpenCL es un estándar multiplataforma para la computación en sistemas heterogéneos que surge en diciembre de 2008 que ha ido adquiriendo cada vez más importancia. Esto se debe principalmente a su eficiencia, así como su compatibilidad con la gran mayoría de dispositivos destinados a la programación paralela. Además, OpenCL está respaldado por el consorcio de empresas que conforman el grupo Khronos, entre las que se encuentran compañías como NVIDIA, AMD o Apple, lo que impulsa aún más su expansión. Sin embargo, OpenCL ha sido desarrollado para ser utilizado desde C/C++, lo que limita su utilización por parte de desarrolladores no acostumbrados a programar en estos lenguajes. Por otra parte, el lenguaje de programación Java se encuentra entre los lenguajes más utilizados, por lo que resulta de gran interés acercar a los programadores de Java a tecnologías como OpenCL sin necesidad de cambiar el lenguaje de programación utilizado. Ésta es la motivación principal de este proyecto, crear una API que recubra la especificación oficial de OpenCL con el lenguaje Java, de manera que cualquier programador de Java pueda programar arquitecturas heterogéneas sin necesidad de conocer lenguajes como C/C++.

Publicación
Universidad Rey Juan Carlos
Jesús Sánchez-Oro
Jesús Sánchez-Oro
Profesor Titular de Universidad

Profesor Titular del Departamento de Informática, siendo uno de los investigadores principales del Grupo de Investigación de Algoritmos para la Optimización GRAFO.