Abstract:
Dynamic program optimization is the only recourse for optimizing compilers when machine and program parameters necessary for applying an optimization technique are unknown until runtime. With the movement toward portable parallel programs, facilitated by language standards such as OpenMP, many of the optimizations developed for high-performance machines can no longer be applied prior to runtime without potential performance degradation. As an alternative, we propose dynamically adaptive programs, programs that adapt themselves to their runtime environment. We discuss the key issues in successfully applying this approach and show examples of its application. Experimental results are given for dynamically adaptive programs that seek to eliminate redundant runtime data dependence tests, to select the optimal tile size for tiled loops and to serialize loops that do not profit from parallelism.
Citations
|
1242
|
Globus: A Metacomputing Infrastructure Toolkit
– Foster
- 1997
|
|
840
|
Condor - a hunter of idle workstations
– Litzkow, Livny, et al.
- 1988
|
|
240
|
Profile guided code positioning
– Pettis, Hansen
- 1990
|
|
156
|
The LRPD test: Speculative run-time parallelization of loops with privatization and reduction parallelization
– Rauchwerger, Padua
- 1995
|
|
146
|
Optimizing ML with run-time code generation
– Lee, Leone
- 1996
|
|
111
|
Profile-guided automatic inline expansion for C programs
– Chang, Hwu
- 1992
|
|
109
|
VCODE: a retargetable, extensible, very fast dynamic code generation system
– Engler
- 1996
|
|
108
|
An empirical study of Fortran programs
– Knuth
- 1971
|
|
100
|
effective dynamic compilation
– Fast
- 1996
|
|
49
|
High-level optimization via automated statistical modeling
– Brewer
- 1995
|
|
44
|
The PRIVATIZING DOALL Test: A Run-Time Technique for DOALL Loop Identi cation and Array Privatization
– Rauchwerger, Padua
- 1994
|
|
44
|
Dynamic Feedback: An Effective Technique for Adaptive Computing
– Diniz, Rinard
- 1997
|
|
42
|
Advanced Program Restructuring for High-Performance 128 bytes on the Challenge Computers with Polaris. Univ. of Illinois at Urbana-Champaign, Center for Supercomputing
– Blume, Doallo, et al.
- 1996
|
|
23
|
Multiple version loops
– Byler, Davies, et al.
- 1987
|
|
22
|
On the Design of a Demand-Based Network-Computing System: The Purdue University Network-Computing Hubs
– Kapadia, Fortes
- 1998
|
|
20
|
Improving the effectiveness of software prefetching with adaptive execution
– Saavedra, Park
- 1996
|
|
16
|
Reducing parallel overheads through dynamic serialization
– Voss, Eigenmann
- 1999
|
|
13
|
Adaptive Parallelism in Compiler-Parallelized Code
– Hall, Martonosi
- 1997
|
|
9
|
Adaptive loop transformations for scientific programs
– Gupta, Bodik
- 1995
|
|
8
|
Dynamic feedback: An e#ective technique for adaptive computing
– Diniz, Rinard
- 1997
|
|
8
|
Run time parallelization and scheduling of loops
– Saltz, Mirchandaney, et al.
- 1991
|
|
7
|
Restructuring programs for high-speed computers with Polaris
– Blume
- 1996
|
|
5
|
Implementation of Run Time Techniques in the Polaris Fortran Restructurer
– Lawrence
- 1996
|
|
4
|
The Execution Time Profile as a Programming Tool
– Ingalls
- 1971
|
|
2
|
Improving the e#ectiveness of software prefetching with adaptive execution
– Saavedra, Park
- 1996
|
|
2
|
Portable loop-level parallelism for shared-memory multiprocessor architectures
– Voss
- 1997
|
|
1
|
Monitoring execution on the cdc 6000's
– Jasik
- 1971
|
|
1
|
On the design of a demand-based network-cputing system: The purdue university network computing hubs
– Kapadia, Fortes
- 1998
|