Title
Optimizing Array-Intensive Applications for On-Chip Multiprocessors
Abstract
With energy consumption becoming one of the first-class optimization parameters in computer system design, compilation techniques that consider performance and energy simultaneously are expected to play a central role. In particular, compiling a given application code under performance and energy constraints is becoming an important problem. In this paper, we focus on an on-chip multiprocessor architecture and present a set of code optimization strategies. We first evaluate an adaptive loop parallelization strategy (i.e., a strategy that allows each loop nest to execute using a different number of processors if doing so is beneficial) and measure the potential energy savings when unused processors during execution of a nested loop are shut down (i.e., placed into a power-down or sleep state). Our results show that shutting down unused processors can lead to as much as 67 percent energy savings at the expense of up to 17 percent performance loss in a set of array-intensive applications. To eliminate this performance penalty, we also discuss and evaluate a processor preactivation strategy based on compile-time analysis of nested loops. Based on our experiments, we conclude that an adaptive loop parallelization strategy combined with idle processor shut down and preactivation can be very effective in reducing energy consumption without increasing execution time. We then generalize our strategy and present an application parallelization strategy based on integer linear programming (ILP). Given an array-intensive application, our optimization strategy determines the number of processors to be used in executing each loop nest based on the objective function and additional compilation constraints provided by the user/programmer. Our initial experience with this constraint-based optimization strategy shows that it is very successful in optimizing array-intensive applications on on-chip multiprocessors under multiple energy and performance constraints.
Year
DOI
Venue
2005
10.1109/TPDS.2005.57
IEEE Trans. Parallel Distrib. Syst.
Keywords
Field
DocType
adaptive loop parallelization strategy,array-intensive application,energy consumption,nested loop,loop nest,optimization strategy,application parallelization strategy,optimizing array-intensive applications,unused processor,constraint-based optimization strategy,code optimization strategy,on-chip multiprocessors,constrained optimization,code optimization,embedded systems,objective function,integer programming,application software,integer linear programming,timing analysis,computer architecture,embedded system,system on chip,nested loops,constraint optimization,potential energy,design optimization,sleep,system design
Program optimization,Programmer,System on a chip,Computer science,Parallel computing,Loop fission,Real-time computing,Integer programming,Energy consumption,Distributed computing,Nested loop join,Constrained optimization
Journal
Volume
Issue
ISSN
16
5
1045-9219
Citations 
PageRank 
References 
1
0.35
30
Authors
6
Name
Order
Citations
PageRank
Ismail Kadayif161145.50
Mahmut T. Kandemir27371568.54
Guilin Chen39210.54
Ozcan Ozturk415914.26
Mustafa Karakoy5374.11
Ugur Sezer6949.59