Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

On-the-fly structure splitting for heap objects

Published: 26 January 2012 Publication History

Abstract

With the advent of multicore systems, the gap between processor speed and memory latency has grown worse because of their complex interconnect. Sophisticated techniques are needed more than ever to improve an application's spatial and temporal locality. This paper describes an optimization that aims to improve heap data layout by structure-splitting. It also provides runtime address checking by piggybacking on the existing page protection mechanism to guarantee the correctness of such optimization that has eluded many previous attempts due to safety concerns. The technique can be applied to both sequential and parallel programs at either compile time or runtime. However, we focus primarily on sequential programs (i.e., single-threaded programs) at runtime in this paper. Experimental results show that some benchmarks in SPEC 2000 and 2006 can achieve a speedup of up to 142.8%.

References

[1]
Abadi, M., Harris, T., and Mehrara, M. 2009. Transactional memory with strong atomicity using off-the-shelf memory protection hardware. In PPoPP '09: Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. ACM, New York, NY, 185--196.
[2]
Bodík, R., Gupta, R., and Sarkar, V. 2000. Abcd: eliminating array bounds checks on demand. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. (PLDI '00). ACM, New York, NY, 321--333.
[3]
Calder, B., Krintz, C., John, S., and Austin, T. 1998. Cache-conscious data placement. In ASPLOS-VIII: Proceedings of the 8th International Conference on Architectural Support for Programming Languages and Operating Systems. New York, NY, 139--149.
[4]
Chilimbi, T. M., Davidson, B., and Larus, J. R. 1999a. Cache-conscious structure definition. In PLDI '99: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York, NY, 13--24.
[5]
Chilimbi, T. M., Hill, M. D., and Larus, J. R. 1999b. Cache-conscious structure layout. In PLDI '99: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York, NY, 1--12.
[6]
Curial, S., Zhao, P., Amaral, J. N., Gao, Y., Cui, S., Silvera, R., and Archambault, R. 2008. Mpads: memory-pooling-assisted data splitting. In ISMM '08: Proceedings of the 7th International Symposium on Memory Management. ACM, New York, NY, 101--110.
[7]
Ding, C. and Kennedy, K. 1999. Improving cache performance in dynamic applications through data and computation reorganization at run time. In PLDI '99: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York, NY, 229--241.
[8]
Gupta, R. 1990. A fresh look at optimizing array bound checking. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '90). ACM, New York, NY, 272--282.
[9]
Gupta, R. 1993. Optimizing array bound checks using flow analysis. ACM Lett. Program. Lang. Syst. 2, 135--150.
[10]
Hagog, M. and Tice, C. 2005. Cache aware data layout reorganization optimization in gcc. In GCC Summit.
[11]
Huang, X., Blackburn, S. M., McKinley, K. S., Moss, J. E. B., Wang, Z., and Cheng, P. 2004. The garbage collection advantage: improving program locality. In OOPSLA '04: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, New York, NY, 69--80.
[12]
Hundt, R., Mannarswamy, S., and Chakrabarti, D. 2006. Practical structure layout optimization and advice. In CGO '06: Proceedings of the International Symposium on Code Generation and Optimization. 233--244.
[13]
Kistler, T. and Franz, M. 2000. Automated data-member layout of heap objects to improve memory-hierarchy performance. ACM Trans. Program. Lang. Syst. 22, 3, 490--505.
[14]
Lattner, C. and Adve, V. 2005. Automatic pool allocation: improving performance by controlling data structure layout in the heap. In PLDI '05: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York, NY, 129--142.
[15]
Lin, J. and Yew, P.-C. 2010. A compiler framework for general memory layout optimizations targeting structures. In INTERACT-14: Proceedings of the Workshop on Interaction between Compilers and Computer Architecture. ACM, New York, NY, 1--8.
[16]
Rabbah, R. M. and Palem, K. V. 2003. Data remapping for design space optimization of embedded memory systems. ACM Trans. Embed. Comput. Syst. 2, 2, 186--218.
[17]
Rajamani, S., Ramalingam, G., Ranganath, V. P., and Vaswani, K. 2009. Isolator: dynamically ensuring isolation in comcurrent programs. In ASPLOS '09: Proceeding of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York, NY, 181--192.
[18]
Rubin, S., Bodík, R., and Chilimbi, T. 2002. An efficient profile-analysis framework for data-layout optimizations. In POPL'02: Proceedings of the 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, NY, 140--153.
[19]
Thomas, G. B. and Reps, T. 2004. Analyzing memory accesses in x86 binary executables. In Compiler Construction. 5--23.
[20]
Truong, D. N., Bodin, F., and Seznec, A. 1998. Improving cache behavior of dynamically allocated data structures. In PACT '98: Proceedings of the International Conference on Parallel Architectures and Compilation Techniques. 322.
[21]
Wang, Z., Wu, C., and Yew, P.-C. 2010. On improving heap memory layout by dynamic pool allocation. In CGO '10: Proceedings of the 8th Annual IEEE/ACM International Symposium on Code Generation and Optimization. ACM, New York, NY, 92--100.
[22]
Zhao, P., Cui, S., Gao, Y., Silvera, R., and Amaral, J. N. 2007. Forma: A framework for safe automatic array reshaping. ACM Trans. Program. Lang. Syst. 30, 1, 2.
[23]
Zhao, Q., Rabbah, R., and Wong, W.-F. 2005. Dynamic memory optimization using pool allocation and prefetching. SIGARCH Comput. Archit. News 33, 5, 27--32.

Cited By

View all
  • (2024)Getting a Handle on Unmanaged MemoryProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651326(448-463)Online publication date: 27-Apr-2024
  • (2023)SoK: Human-centered Phishing SusceptibilityACM Transactions on Privacy and Security10.1145/357579726:3(1-27)Online publication date: 14-Apr-2023
  • (2023)Balancing Security and Privacy in Genomic Range QueriesACM Transactions on Privacy and Security10.1145/357579626:3(1-28)Online publication date: 13-Mar-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Architecture and Code Optimization
ACM Transactions on Architecture and Code Optimization  Volume 8, Issue 4
Special Issue on High-Performance Embedded Architectures and Compilers
January 2012
765 pages
ISSN:1544-3566
EISSN:1544-3973
DOI:10.1145/2086696
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 January 2012
Accepted: 01 December 2011
Revised: 01 October 2011
Received: 01 July 2011
Published in TACO Volume 8, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Data layout
  2. runtime
  3. safety
  4. structure splitting

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)169
  • Downloads (Last 6 weeks)14
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Getting a Handle on Unmanaged MemoryProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651326(448-463)Online publication date: 27-Apr-2024
  • (2023)SoK: Human-centered Phishing SusceptibilityACM Transactions on Privacy and Security10.1145/357579726:3(1-27)Online publication date: 14-Apr-2023
  • (2023)Balancing Security and Privacy in Genomic Range QueriesACM Transactions on Privacy and Security10.1145/357579626:3(1-28)Online publication date: 13-Mar-2023
  • (2023)Assessing Cyber Risk in Cyber-Physical Systems Using the ATT&CK FrameworkACM Transactions on Privacy and Security10.1145/357173326:2(1-33)Online publication date: 13-Mar-2023
  • (2022)My Health Sensor, My Classifier – Adapting a Trained Classifier to Unlabeled End-User DataACM Transactions on Computing for Healthcare10.1145/35597673:4(1-24)Online publication date: 3-Nov-2022
  • (2022)Passive and Context-Aware In-Home Vital Signs Monitoring Using Co-Located UWB-Depth Sensor FusionACM Transactions on Computing for Healthcare10.1145/35499413:4(1-31)Online publication date: 3-Nov-2022
  • (2022)NHS Number Open Source Software: Implications for Digital Health Regulation and DevelopmentACM Transactions on Computing for Healthcare10.1145/35383823:4(1-26)Online publication date: 3-Nov-2022
  • (2022)Online Application Guidance for Heterogeneous Memory SystemsACM Transactions on Architecture and Code Optimization10.1145/353385519:3(1-27)Online publication date: 6-Jul-2022
  • (2022)Structure Peeling Based on Link Time Optimization in the GCC compiler2022 3rd International Conference on Information Science, Parallel and Distributed Systems (ISPDS)10.1109/ISPDS56360.2022.9874019(317-322)Online publication date: 22-Jul-2022
  • (2022)STAFF: A Model for Structure Layout Optimization2022 7th International Conference on Computer and Communication Systems (ICCCS)10.1109/ICCCS55155.2022.9846314(115-122)Online publication date: 22-Apr-2022
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media