libEOMP: a portable OpenMP runtime library based on MCA APIs for embedded systems

  • Authors:
  • Cheng Wang;Sunita Chandrasekaran;Barbara Chapman;Jim Holt

  • Affiliations:
  • University of Houston, Houston, TX;University of Houston, Houston, TX;University of Houston, Houston, TX;Freescale Semiconductor Inc., Austin, TX

  • Venue:
  • Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

In recent years rapid revolution of Multiprocessor System-on-Chip (MPSoC) poses new challenges for programming such architectures in an efficient manner. In order to explore potential hardware concurrency, software developers are still expected to handle many of the low-level details of programming including utilizing DMA, ensuring cache co-herency, and inserting synchronization primitives explicitly. Software portability is yet another issue: the state-of-the-art is that hardware vendors supply vendor-specific software development toolchains which makes it harder for applications to be ported to many different possible architectures without re-structuring the code, while at the same time ensuring efficiency. In this paper, we extend the usage of a high-level programming model, OpenMP, to multicore embedded systems. To address the architectural challenges, we propose a lightweight unified OpenMP runtime library, libEOMP, by leveraging the MCA (Multicore Association) APIs as the target of our OpenMP translation. MCA APIs support device-level communication and resource management for multicore embedded systems. We have implemented and evaluated libEOMP on an embedded platform supplied by Freescale Semiconductor. We observed that libEOMP not only performed as well as optimized vendor-specific OpenMP runtime libraries but also achieved better portability, programmability and productivity.