Computación en paralelo y dispositivos móviles
Date
2024Abstract
La capacidad de los sistemas heterogéneos, como los System-on-Chip de los
dispositivos móviles, para realizar Computación de Altas Prestaciones trae consigo la necesidad de disponer de herramientas que permitan explotar las posibilidades que estos ofrecen. Sin embargo, la dificultad de desarrollar aplicaciones
basadas en modelos de programación paralelos ha impedido que estas capacidades se puedan aprovechar.
Por este motivo, en este trabajo se presenta Tradux, un traductor fuente a fuente que a partir de código Java anotado genera código paralelo más eficiente en
C/C++ y OpenCL. El código generado puede ejecutarse tanto en la CPU como en
la GPU de entornos Android y Linux. Este proyecto parte de Paralldroid y Fancier,
dos aplicaciones desarrolladas por el Grupo de Computación de Altas Prestaciones de la Universidad de Laguna con el mismo objetivo. El análisis de rendimiento realizado demuestra que con esta herramienta se consigue mejorar el
rendimiento al poder ejecutar los programas en paralelo. Además, la librería se
ha diseñado pensando en la usabilidad por parte del usuario y del programador, facilitando el uso del código generado por parte del primero y permitiendo el
mantenimiento y la incorporación de nuevas funcionalidades de forma sencilla
por parte del segundo Mobile devices’ Systems-on-Chip brings the capacity to make High-Performance
Computing on heterogeneous systems. Therefore we need tools that exploit these capabilities. However, the difficulty of programming applications based on
parallel programming models has prevented this from happening.
For this reason, we present Tradux in this project. It is a source-to-source translator which generates more efficient parallel code in Java, C/C++ and OpenCL
from annotated Java code. The generated code can be executed on the CPU or
the GPU of Android and Linux platforms. This project has its basis on Paralldroid
and Fancier, two applications developed by the High-Performance Computing
Group of the University of La Laguna with the same objective. The performance
analysis shows that Tradux improves the efficiency of the programs by executing
them in parallel. In addition, this library has been designed to ease the use of
the generated code by the user and to facilitate its maintenance and extension
by the programmer in the future.