Abstract
The advent of emergent SoCs and MPSocs opens a new era on the small mobile devices (Smartphones, Tablets, ...) in terms of computing capabilities and applications to be addressed. The efficient use of such devices, including the parallel power, is still a challenge for general purpose programmers due to the very high learning curve demanding very specific knowledge of the devices. While some efforts are currently being made, mainly in the scientific scope, the scenario is still quite far from being the desirable for non-scientific applications where very few of them take advantage of the parallel capabilities of the devices. We propose Paralldroid (Framework for Parallelism in Android), a parallel development framework oriented to general purpose programmers for standard mobile devices. Paralldroid presents a programming model that unifies the different programming models of Android. The user just implements a Java application and introduces a set of Paralldroid annotations in the sections of code to be optimized. The Paralldroid system automatically generates the native C, OpenCL or Renderscript code for the annotated section. The Paralldroid transformation model involves source-to-source transformations and skeletal programming.
Chapter PDF
Similar content being viewed by others
References
SoCC: IEEE International System–on–Chip Conference (September 2012), http://www.ieee-socc.org/
NVIDIA: NVIDIA Tegra mobile processors: Tegra2, Tegra 3 and Tegra 4, http://www.nvidia.com/object/tegra-superchip.html
Texas Instruments: OMAPTM Mobile Processors : OMAPTM 5 platform, http://www.ti.com/omap5
Google: Android mobile platform, http://www.android.com
Apple: iOS: Apple mobile operating system, http://www.apple.com/ios
Microsoft: Windows Phone: Microsoft mobile operating system, http://www.microsoft.com/windowsphone
Samsung: Bada: Samsung mobile operating system, http://developer.bada.com
Nokia: Nokia Belle: lastest Nokia symbian platform, http://www.developer.nokia.com/
Reid, A.D., Flautner, K., Grimley-Evans, E., Lin, Y.: SoC-C: efficient programming abstractions for heterogeneous multicore systems on chip. In: Altman, E.R. (ed.) Proceedings of the 2008 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, CASES 2008, Atlanta, GA, USA, pp. 95–104. ACM (October 2008)
Memoir Systems: Algorithmic Memory TM technology, http://www.memoir-systems.com/
Nvidia: GPUDirect Technology, http://developer.nvidia.com/gpudirect
Anandtech: AMD Outlines HSA Roadmap: Unified Memory for CPU/GPU in 2013, HSA GPUs in 2014, http://www.anandtech.com/show/5493/
Peláez, I., Almeida, F., Suárez, F.: DPSKEL: A skeleton based tool for parallel dynamic programming. In: Wyrzykowski, R., Dongarra, J., Karczewski, K., Wasniewski, J. (eds.) PPAM 2007. LNCS, vol. 4967, pp. 1104–1113. Springer, Heidelberg (2008)
Android: Native development kit (ndk), http://developer.android.com/tools/sdk/ndk/index.html
Clang: a c language family frontend for llvm, http://clang.llvm.org/
OpenMP: The openmp api specification for parallel programming, http://openmp.org/wp/openmp-specifications/
Eclipse: Eclipse jdt, http://www.eclipse.org/jdt/
OpenMP: Openmp application program interface, version 4.0-rc 2, http://www.openmp.org/mp-documents/OpenMP_4.0_RC2.pdf/
AOSP: Android open source project, http://source.android.com/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Acosta, A., Almeida, F. (2014). Towards a Unified Heterogeneous Development Model in AndroidTM . In: an Mey, D., et al. Euro-Par 2013: Parallel Processing Workshops. Euro-Par 2013. Lecture Notes in Computer Science, vol 8374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-54420-0_24
Download citation
DOI: https://doi.org/10.1007/978-3-642-54420-0_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-54419-4
Online ISBN: 978-3-642-54420-0
eBook Packages: Computer ScienceComputer Science (R0)