Compilers, Architecture, and Synthesis for Embedded Systems · 2013 · 13 citations · 16 references
Cluster ComputingHeterogeneous ComputingEngineeringParallel ImplementationComputer ArchitectureSoftware EngineeringEmbedded SystemsParallel SoftwareSystems EngineeringParallel ComputingManycore ProcessorSequential ApplicationsComputer EngineeringPipeline ParallelismComputer SciencePipeline ParallelizationProgram AnalysisParallel Performance EvaluationCloud ComputingMany-core ArchitectureAutomatic ParallelizationParallel ProgrammingData-level ParallelismSystem Software
Automatic parallelization of sequential applications is the key for efficient use and optimization of current and future embedded multi-core systems. However, existing approaches often fail to achieve efficient balancing of tasks running on heterogeneous cores of an MPSoC. A reason for this is often insufficient knowledge of the underlying architecture's performance. In this paper, we present a novel parallelization approach for embedded MPSoCs that combines pipeline parallelization for loops with knowledge about different execution times for tasks on cores with different performance properties. Using Integer Linear Programming, an optimal solution with respect to the model used is derived implementing tasks with a well-balanced execution behavior. We evaluate our pipeline parallelization approach for heterogeneous MPSoCs using a set of standard embedded benchmarks and compare it with two existing state-of-the-art approaches. For all benchmarks, our parallelization approach obtains significantly higher speedups than either approach on heterogeneous MPSoCs.
16
A practical automatic polyhedral parallelizer and locality optimizer
Uday Bondhugula, Albert Hartono, J. Ramanujam et al. · 2008 · 874 citations
Automatic Thread Extraction with Decoupled Software Pipelining
Guilherme Ottoni, Ram Rangan, Adam Stoler et al. · 2006 · 278 citations
Engineering, Computer Architecture, Software Engineering +18