An OpenMP Programming Environment on Mobile Devices

Recently, the computational speed and battery capability of mobile devices were greatly promoted. With an enormous number of APPs, users can do many things in mobile devices as well as in computers. Consequently, more and more scientific researchers are encouraged to move their working environment from computers to mobile devices for increasing their work efficiency because they can analyze data and make decisions on their mobile devices anytime and anywhere. Accordingly, we propose a mobile OpenMP programming environment called MOMP in this paper. Using this APP, users can directly write, compile, and execute OpenMP programs on their Android-based mobile devices to exploit embedded CPU and GPU for resolving their problems without network connection. Because of source compatibility, MOMP makes users easily port their OpenMP programs from computers to mobile devices without any modification. Moreover, MOMP provides users with an easy interface to choose CPU or GPU for executing different parallel regions in the same program based on the properties of parallel regions. Therefore, MOMP can effectively reduce the programming complexity of heterogeneous computing in mobile devices and exploit the computational power of mobile devices for the performance of user applications.

[1]  John E. Stone,et al.  OpenCL: A Parallel Programming Standard for Heterogeneous Computing Systems , 2010, Computing in Science & Engineering.

[2]  Tyng-Yeu Liang,et al.  A compound OpenMP/MPI program development toolkit for hybrid CPU/GPU clusters , 2013, The Journal of Supercomputing.

[3]  Alan L. Cox,et al.  TreadMarks: shared memory computing on networks of workstations , 1996 .

[4]  A. White,et al.  The VirtualCL ( VCL ) Cluster Platform , 2013 .

[5]  Ce-Kuen Shieh,et al.  Design and Implementation of the OpenMP Programming Interface on Linux-based SMP Clusters , 2006, J. Inf. Sci. Eng..

[6]  Rudolf Eigenmann,et al.  OpenMPC: extended OpenMP for efficient programming and tuning on GPUs , 2013, Int. J. Comput. Sci. Eng..

[7]  Michaël Krajecki,et al.  Source-to-Source Code Translator: OpenMP C to CUDA , 2011, 2011 IEEE International Conference on High Performance Computing and Communications.

[8]  Jyh-Biau Chang,et al.  A Transparent Distributed Shared Memory for Clustered Symmetric Multiprocessors , 2006, The Journal of Supercomputing.

[9]  Rudolf Eigenmann,et al.  The Cetus Source-to-Source Compiler Infrastructure: Overview and Evaluation , 2012, International Journal of Parallel Programming.

[10]  Anthony Skjellum,et al.  A High-Performance, Portable Implementation of the MPI Message Passing Interface Standard , 1996, Parallel Comput..

[11]  Tyng-Yeu Liang,et al.  A Ubiquitous Integrated Development Environment for C Programming on Mobile Devices , 2014, 2014 IEEE 12th International Conference on Dependable, Autonomic and Secure Computing.

[12]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[13]  Shih-Wei Liao,et al.  Design and implementation of high-level compute on Android systems , 2013, The 11th IEEE Symposium on Embedded Systems for Real-time Multimedia.

[14]  Jungwon Kim,et al.  SnuCL: an OpenCL framework for heterogeneous CPU/GPU clusters , 2012, ICS '12.

[15]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .

[16]  Nisha Agrawal,et al.  Performance analysis between aparapi (a parallel API) and JAVA by implementing sobel edge detection Algorithm , 2013, 2013 National Conference on Parallel Computing Technologies (PARCOMPTECH).

[17]  Tyng-Yeu Liang,et al.  JCL: An OpenCL Programming Toolkit for Heterogeneous Computing , 2013, GPC.