A Task-based Programming Methodology Using MCA Standards for Multicore Systems
Zhu, Suyang 1988-
MetadataShow full item record
Current trends in embedded platform design indicate that heterogeneous systems are here to stay. Thus, processors configured on the same platform may have different instruction-set architectures, different operating systems, and discrete memory space. These features increase the adaptability of the platforms for different applications. However, the development of such applications becomes difficult due to the system’s heterogeneity. Task parallelism is a classic approach to schedule work in parallel at the application level for symmetric or even asymmetric multicore processors (that may be heterogeneous in nature). A robust and efficient task-programming model to tackle parallelism for heterogeneous embedded systems is needed. In this thesis, we present a task-based programming model that deploys the Multicore Association’s (MCA) Task Management API, a robust, cross-platform and efficient API that targets both homogeneous and heterogeneous multicore systems. MTAPI provides an API to develop applications with task parallelism on multicore systems in a straightforward manner. The API supports different processor architectures and can be implemented on top of multiple operating systems or even bare metal. MTAPI can also work as a translation layer for higher-level programming models. We follow the MTAPI specification and design and implement an MTAPI Runtime Library (RTL). Our evaluation platforms are a multicore x86-64 computing node and an NVIDIA Jetson TK1 board with a CPU and a GPU on the same chip. We evaluate our MTAPI RTL implementation using applications from Rodinia and BOTS. We compare our MTAPI implementation with the Siemens MTAPI and with GCC-OpenMP, and observe that our MTAPI outperforms Siemens MTAPI significantly on the embedded board and competes favorably with GCC-OpenMP on both testbeds.