ACM Home Page
Please provide us with feedback. Feedback
Intermediately executed code is the key to find refactorings that improve temporal data locality
Full text PdfPdf (1.41 MB)
Source Conference On Computing Frontiers archive
Proceedings of the 3rd conference on Computing frontiers table of contents
Ischia, Italy
SESSION: Special session on cache optimization table of contents
Pages: 373 - 382  
Year of Publication: 2006
ISBN:1-59593-302-6
Authors
Kristof Beyls  Ghent University, Gent, Belgium
Erik H. D'Hollander  Ghent University, Gent, Belgium
Sponsor
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 36,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1128022.1128071
What is a DOI?

ABSTRACT

The growing speed gap between memory and processor makes an efficient use of the cache ever more important to reach high performance. One of the most important ways to improve cache behavior is to increase the data locality. While many cache analysis tools have been developed, most of them only indicate the locations in the code where cache misses occur. Often, optimizing the program, even after pinpointing the cache bottlenecks in the source code, remains hard with these tools.In this paper, we present two related tools that not only pinpoint the locations of cache misses, but also suggest source code refactorings which improve temporal locality and thereby eliminate the majority of the cache misses. In both tools, the key to find the appropriate refactorings is an analysis of the code executed between a data use and the next use of the same data, which we call the Intermediately Executed Code (IEC). The first tool, the Reuse Distance VISualizer (RDVIS), performs a clustering on the IECs, which reduces the amount of work to find required refactorings. The second tool, SLO (short for "Suggestions for Locality Optimizations"), suggests a number of refactorings by analyzing the call graph and loop structure of the IEC. Using these tools, we have pinpointed the most important optimizations for a number of SPEC2000 programs, resulting in an average speedup of 2.3 on a number of different platforms.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
C. Bastoul and P. Feautrier. Improving data locality by chunking. In Compiler Construction, LNCS 2622, pages 320--335, 2003.
 
4
5
 
6
 
7
K. Beyls, E. H. D'Hollander, and F. Vandeputte. RDVIS: A tool that visualizes the causes of low locality and hints program optimizations. In ICCS, volume 3515 of LNCS, pages 166--173, 2005.
8
9
10
 
11
 
12
 
13
 
14
H. Han, G. Rivera, and C.-W. Tseng. Software support for improving locality in scientific codes. In CPC, January 2000.
 
15
16
17
 
18
19
 
20
 
21
22
 
23
 
24
 
25
B. Quaing, J. Tao, and W. Karl. Yaco: A user conducted visualization tool for supporting cache optimization. In Proceedings of HPCC 2005, volume 3726 of Lecture Notes in Computer Science, pages 694--703, 2005.
26
 
27
 
28
 
29
J. Weidendorfer, M. Kowarschik, and C. Trinitis. A tool suite for simulation based analysis of memory access behavior. In ICCS, volume 3038 of LNCS, pages 440--447, 2004.
30
 
31
 
32
33

Collaborative Colleagues:
Kristof Beyls: colleagues
Erik H. D'Hollander: colleagues