Parallel programming in mobile devices with FancyJCL
-
1
Universidad de La Laguna
info
ISSN: 0920-8542, 1573-0484
Argitalpen urtea: 2024
Mota: Artikulua
Beste argitalpen batzuk: The Journal of Supercomputing
Laburpena
Mobile devices and handheld systems, such as the smartphones and tablets universally extended, are becoming increasingly powerful. Their basic hardware configuration is usually state-of-the-art heterogeneous architectures consisting of multi-core processors and some kind of accelerator such as GPUs or DSPs. Specific code adapted to the architecture is mandatory if high-performance computation is required and low-level libraries and parallelism are needed, which constitutes an important barrier for the usual developer in such devices. In this context, we propose the FancyJCL framework. It provides a high-level abstraction layer that hides implementation details and allows to develop parallel programs for mobile devices. The target platform for FancyJCL is mainly Android and Java developers due to their high market penetration. A very simple, seemingly sequential encoding results in parallel efficient OpenCL code. FancyJCL is itself based on the Fancier framework, which enables optimal memory management across memory spaces on unified memory systems. Benchmarks of FancyJCL code developed for a wide range of image processing algorithms show good performance with low development effort.
Finantzaketari buruzko informazioa
Finantzatzaile
-
Ministerio de Ciencia e Innovación
- PID2019--107228RB--I00
- PID2019--107228RB--I00
- PID2019--107228RB--I00
- Universidad de la Laguna
Erreferentzia bibliografikoak
- Smith LA, Bull JM, Obdrizalek J (2001) A parallel java grande benchmark suite. In: SC ’01: Proceedings of the 2001 ACM/IEEE Conference on Supercomputing, p 6. https://doi.org/10.1145/582034.582042
- Shiv K et al (2003) Impact of JIT/JVM optimizations on JAVA application performance. In: 7th Workshop on Interaction Between Compilers and Computer Architectures (INTERACT-7), pp 5–13. https://doi.org/10.1109/INTERA.2003.1192351
- Yan Y, Grossman M, Sarkar V (2009) JCUDA: a programmer-friendly interface for accelerating Java programs with CUDA. In: Sips H, Epema D, Lin H-X (eds) Euro-Par 2009 Parallel Processing. Springer, Berlin, pp 887–899
- Hutter M. (2016) JOCL: Java Bindings for OpenCL. https://github.com/gpu/JOCL
- OpenJDK: Project Sumatra. https://openjdk.java.net/projects/sumatra/
- Fumero J et al (2019) Dynamic application reconfiguration on heterogeneous hardware. In: 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. ACM, New York, pp 165–178. https://doi.org/10.1145/3313808.3313819
- Acosta A, Afonso S, Almeida F (2016) Extending Paralldroid with object oriented annotations. Parall Comput 57:25–36. https://doi.org/10.1016/j.parco.2016.04.003
- Aparapi: API for data parallel Java. http://aparapi.com/
- Pratt-Szeliga PC, Fawcett JW, Welch RD (2012) Rootbeer: seamlessly using GPUs from Java. In: 9th HPCC-ICESS Conference. IEEE, pp 375–380
- Andrade G et al (2016) ParallelME: a parallel mobile engine to explore heterogeneity in mobile computing architectures. In: Dutot P-F, Trystram D (eds) Euro-Par 2016: Parallel Processing. Springer, Cham, pp 447–459
- Afonso S, Almeida F (2021) Fancier: a unified framework for java, c, and opencl integration. IEEE Access 9:164570–164588. https://doi.org/10.1109/ACCESS.2021.3134788
- Android Open Source Project: ART and Dalvik. https://source.android.com/devices/tech/dalvik/
- Android Open Source Project: Implementing ART Just-In-Time (JIT) Compiler. https://source.android.com/devices/tech/dalvik/jit-compiler
- Liang S (1999) The Java Native Interface: Programmer’s Guide and Specification. Addison-Wesley Professional, Palo Alto
- Android Open Source Project: Get Started with the NDK. https://developer.android.com/ndk/guides
- Android Open Source Project: RenderScript Overview. https://developer.android.com/guide/topics/renderscript/compute.html
- Google: Clspv. https://github.com/google/clspv