Recurrence analysis for effective array prefetching in Java']Java

被引:1
作者
Cahoon, B [1 ]
McKinley, KS [1 ]
机构
[1] Univ Texas, Dept Comp Sci, Austin, TX 78757 USA
关键词
memory optimization; array prefetching; static analysis;
D O I
10.1002/cpe.851
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Java is an attractive choice for numerical, as well as other, algorithms due to the software engineering benefits of object-oriented programming. Because numerical programs often use large arrays that do not fit in the cache, they suffer from poor memory performance. To hide memory latency, we describe a new unified compile-time analysis for software prefetching arrays and linked structures in Java. Our previous work used data-flaw analysis to discover linked data structure accesses. We generalize our prior approach to identify loop induction variables as well, which we call recurrence analysis. Our algorithm schedules prefetches for all array references that contain induction variables. We evaluate our technique using a simulator of an out-of-ordei superscalar processor running a set of array-based Java programs. Across all of our programs, prefetching reduces execution time by a geometric mean of 23%, and the largest improvement is 58%. We also evaluate prefetching on a PowerPC processor, and we show that prefetching reduces execution time by a geometric mean of 17%. Because our analysis is much simpler and quicker than previous techniques, it is suitable for including in a just-in-time compiler. Traditional software prefetching algorithms for C and Fortran use locality analysis and sophisticated loop transformations. We further show that the additional loop transformations and careful scheduling of prefetches from previous work are not always necessary for modern architectures and Java programs. Copyright (c) 2005 John Wiley & Sons, Ltd.
引用
收藏
页码:589 / 616
页数:28
相关论文
共 36 条
[1]  
AHO A, 1986, PRINCIPLES TECHNIQUE
[2]   AN OVERVIEW OF THE PTRAN ANALYSIS SYSTEM FOR MULTIPROCESSING [J].
ALLEN, F ;
BURKE, M ;
CHARLES, P ;
CYTRON, R ;
FERRANTE, J .
JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 1988, 5 (05) :617-640
[3]  
AMMARGUELLAT Z, 1990, P ACM SIGPLAN C PROG, P283
[4]  
[Anonymous], 1991, P ACM IEEE C SUP SUP
[5]  
Artigas P. V., 2000, Conference Proceedings of the 2000 International Conference on Supercomputing, P1, DOI 10.1145/335231.335232
[6]  
Bernstein D., 1995, Parallel Architectures and Compilation Techniques. Proceedings of the IFIP WG10.3 Working Conference. PACT'95, P19
[7]  
Bull JM, 2000, CONCURRENCY-PRACT EX, V12, P375, DOI 10.1002/1096-9128(200005)12:6<375::AID-CPE480>3.0.CO
[8]  
2-M
[9]   Data flow analysis for software prefetching linked data structures in Java']Java [J].
Cahoon, B ;
McKinley, KS .
2001 INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PROCEEDINGS, 2001, :280-291
[10]  
CALLAHAN D, 1991, P 4 INT C ARCH SUPP, P40