TY - GEN
T1 - libEOMP
T2 - 2013 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM 2013
AU - Wang, Cheng
AU - Chandrasekaran, Sunita
AU - Chapman, Barbara
AU - Holt, Jim
PY - 2013/2/23
Y1 - 2013/2/23
N2 - 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.
AB - 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.
KW - embedded system
KW - MCA
KW - OpenMP
KW - runtime
UR - https://www.scopus.com/pages/publications/84875135076
U2 - 10.1145/2442992.2443001
DO - 10.1145/2442992.2443001
M3 - Conference contribution
AN - SCOPUS:84875135076
SN - 9781450319089
T3 - Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM 2013
SP - 83
EP - 92
BT - Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM 2013
PB - Association for Computing Machinery
Y2 - 23 February 2013 through 23 February 2013
ER -