MAPS: An integrated framework for MPSoC application parallelization

In the past few years, MPSoC has become the most popular solution for embedded computing. However, the challenge of programming MPSoCs also comes as the biggest side-effect of the solution. Especially, when designers have to face the legacy C code accumulated through the years, the tool support is mostly unsatisfactory. In this paper, we propose an integrated framework, MAPS, which aims at parallelizing C applications for MPSoC platforms. It extracts coarse-grained parallelism on a novel granularity level. A set of tools have been developed for the framework. We will introduce the major components and their functionalities. Two case studies will be given, which demonstrate the use of MAPS on two different kinds of applications. In both cases the proposed framework helps the programmer to extract parallelism efficiently.

[1]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[2]  Ieee Standards Board Shell and utilities , 1993 .

[3]  Rudolf Eigenmann,et al.  Automatic program parallelization , 1993, Proc. IEEE.

[4]  Mary W. Hall,et al.  Detecting Coarse - Grain Parallelism Using an Interprocedural Parallelizing Compiler , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[5]  Hans-Peter Kriegel,et al.  A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise , 1996, KDD.

[6]  Henk Corporaal,et al.  Design of heterogenous multi-processor embedded systems: applying functional pipelining , 1997, Proceedings 1997 International Conference on Parallel Architectures and Compilation Techniques.

[7]  Rainer Leupers Code selection for media processors with SIMD instructions , 2000, DATE '00.

[8]  Michael Hind,et al.  Pointer analysis: haven't we solved this problem yet? , 2001, PASTE '01.

[9]  Ed F. Deprettere,et al.  Compilation From Matlab to Process Networks Realized in FPGA , 2001, Conference Record of Thirty-Fifth Asilomar Conference on Signals, Systems and Computers (Cat.No.01CH37256).

[10]  Henry Hoffmann,et al.  A stream compiler for communication-exposed architectures , 2002, ASPLOS X.

[11]  Rainer Leupers,et al.  An Executable Intermediate Representation for Retargetable Compilation and High-Level Code Optimization , 2003 .

[12]  Tilman Wolf,et al.  Application analysis and resource mapping for heterogeneous network processor architectures , 2005 .

[13]  T. Wiangtong,et al.  Hardware/software codesign: a systematic approach targeting data-intensive applications , 2005, IEEE Signal Processing Magazine.

[14]  Guilherme Ottoni,et al.  Automatic thread extraction with decoupled software pipelining , 2005, 38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05).

[15]  Todor Stefanov,et al.  Improved derivation of process networks , 2006 .

[16]  Kingshuk Karuri,et al.  A SW performance estimation framework for early system-level-design using fine-grained instrumentation , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[17]  Yun Zhang,et al.  Revisiting the Sequential Programming Model for Multi-Core , 2007, 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007).

[18]  Lothar Thiele,et al.  Mapping Applications to Tiled Multiprocessor Embedded Systems , 2007, Seventh International Conference on Application of Concurrency to System Design (ACSD 2007).

[19]  Keshav Pingali,et al.  Optimistic parallelism requires abstractions , 2007, PLDI '07.

[20]  William Thies,et al.  A Practical Approach to Exploiting Coarse-Grained Pipeline Parallelism in C Programs , 2007, 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007).

[21]  Tsuyoshi Isshiki,et al.  A Multiprocessor SoC Architecture with Efficient Communication Infrastructure and Advanced Compiler Support for Easy Application Development , 2008, IEICE Trans. Fundam. Electron. Commun. Comput. Sci..