Evaluating different Java bindings for OpenCL

Thumbnail Image
Publication date
Defense date
Journal Title
Journal ISSN
Volume Title
Google Scholar
Research Projects
Organizational Units
Journal Issue
The traditional CPU is able to run only a few complex threads concurrently. By contrast, a GPU (Graphics Processing Unit) allows a concurrent execution of hundreds or thousands of simpler threads. The GPU was originally designed for a computer graphics, but nowadays it is being used for generalpurpose computation using a GPGPU (General Purpose GPU) technology. OpenCL, one of the GPGPU technologies, is introduced in this final project. OpenCL is an extension of C and enables efficient parallel programming for heterogeneous devices including both multi-core CPUs and GPUs. However, it provides a low level abstraction to utilize the hardware efficiently. This tends to a hurdle for productive parallel programming. On the other hand, Java is widely used in many application domains since it provides good productivity in software development. Recently, several methods that bind OpenCL and Java have been suggested: Joagamp, Jocl, JavaCL. In this final project, I evaluate these Java bindings for OpenCL in terms of execution time and the memory used. My own class for vector multiplication has been the baseline application in evaluating the libraries presented here. My results show that Joagamp is more efficient, and Jocl consumes less memory, while JavaCL is most productive in terms of the number of lines of code. ____________________________________________________________________________________________________________________
Por una lado el CPU tradicional es capaz de ejecutar solo varios threads al mismo tiempo. Por otro lado, la tecnologia GPU permite ejecutar cientos o miles de simples threads. La tecnologia GPU fue originalmente disenada para graficos pero en estos dias esta siendo usada para calculos usando GPGPU tecnologia. OpenCL, una de las GPGPU tecnologias, es introducida en este projecto final. Metodos de coperacion entre Java y el lenguaje presentado. Varias librerias son prsentadas en este proyecto como Jogamp, JOCL y JavaCL. Mi propia clase multiplicacion de vectores ha sido usada como base de nuestra aplicaion para evaluar las diferentes librerias presentadas aqui. Diferentes medidas han sido usadas para evaular estas diferentes plataformas como son velocidad, tiempo y memoria usada. Acorde a estas medidas somos capaces de definir que tipo de libreria es mas adecuada para los diferntes proyectos que se deseen elaborar.
Java (Lenguaje de programación), Tecnología GPU, Plataformas informáticas
Bibliographic citation