Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1757112.1757143guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Custom memory allocation for free

Published: 02 November 2006 Publication History

Abstract

We present a novel and efficient container-centric memory allocator, named Defero, which allows a container to guide the allocation of its elements. The guidance is supported by the semantic-rich context of containers in which a new element is inserted. Defero allocates based on two attributes: size and location. Our policy of allocating a new object close to a related object often results in significantly increased memory reference locality. Defero has been integrated to work seamlessly with the C++ Standard Template Library (STL) containers. The communication between containers and the memory allocator is very simple and insures portability. STL container modification is the only needed code change to achieve custom memory allocation. We present experimental results that show the performance improvements that can be obtained by using Defero as a custom allocator for STL applications. We have applied our memory allocator to the molecular dynamics and compiler applications and obtained significant performance improvements over using the standard GNU STL allocator. With our approach custom memory allocation has been achieved without any modification of the actual applications, i.e., without additional programming efforts.

References

[1]
Barret, D., Zorn, B.:. Using Lifetime Predictors to Improve Memory Allocation Performance. ACM SIGPLAN PLDI, Albuquerque, NM, 1993.
[2]
Berger, E., Zorn, B., McKinley, K.: Reconsidering Custom Memory Allocation. ACM OOP-SLA, Seattle, WA, 2002.
[3]
Berger, E., Zorn, B., McKinley, K.: Composing High-Performance Memory Allocators. ACM SIGPLAN PLDI, Snowbird, UT, 2001.
[4]
Calder, B., Krintz, C., John, S., Austin, T.: Cache-Conscious Data Placement. ACM ASP-LOS, San Jose, CA, 1998.
[5]
Chilimbi, T., Davidson, B., Larus, J.: Cache-conscious structure definition. ACM SIGPLAN PLDI, Atlanta, GA, 1999.
[6]
Chilimbi, T., Hill, M., Larus, J.: Cache-conscious structure layout. ACM SIGPLAN PLDI, Atlanta, GA, 1999.
[7]
Ding, C., Kennedy, K.: Improving cache performance in dynamic applications through data and computation reorganization at run time. ACM SIGPLAN PLDI, Atlanta, GA, 1999.
[8]
Gay, D., Aiken, A.: Memory Management with Explicit Regions. ACM SIGPLAN PLDI, Montreal, Canada, 1998.
[9]
Grunwald, D., Zorn, B.: CustoMalloc: Efficient Synthesized Memory Allocators. Technical Report CU-CS-602-92, Dept. of Computer Science, Univ. of Colorado, Boulder, CO 1992.
[10]
Grunwald, D., Zorn, B., Henderson, R.: Improving the Cache Locality of Memory Allocation. ACM SIGPLAN PLDI, Albuquerque, NM 1993.
[11]
Huang, X., Blackburn, S., McKinley, K., Moss, J., Wang, Z., Cheng, P.: The garbage collection advantage: improving program locality. ACM OOPSLA, Vancouver, BC, Canada 2004.
[12]
nternational Standard ISO/IEC 14882. 1998. Programming Languages C++. 1st edn.
[13]
Lattner, C., Adve, V. Automatic Pool Allocation: improving performance by controlling Data Structure Layout in the Heap. ACM SIGPLAN PLDI, Chicago, IL 2005.
[14]
Lea, D.: Some storage management techniques for container classes. The C++ Report http://g.oswego.edu/pub/papers/C++Report89.txt 1990.
[15]
Lea, D.: A memory allocator. Unix/Mail, Hanser Verlag http://gee.cs.oswego.edu/dl/html/ malloc.html 1996.
[16]
Seidl, M., Zorn, B.: Segregating Heap Objects by Reference Behavior and Lifetime. ACM SIGPLAN PLDI, San Jose, CA, 1998.
[17]
SGI: SGI STL Allocator Design. http://www.sgi.com/tech/stl/alloc.html
[18]
Shuf, Y., Gupta, M., Franke, H., Appel, A., Singh, J.: Creating and Preserving Locality of Java Applications at Allocation and Garbage Collection Times. ACM OOPSLA, Seattle, WA, 2002.
[19]
Standish, T.: Data Structures Techniques. Addison-Wesley Press 1980.
[20]
Tofte, M., Talpin, J.: Region-Based Memory Management. Symposium on Principles of Programming Languages, Portland, OR 1994.
[21]
Truong, D., Bodin, F., Seznec, A.: Improving cache behavior of dynamically allocated data structures. Int. C. on Parallel Architectures and Compilation Techniques, Paris, 1998.
[22]
W. Blume, et. al. Advanced Program Restructuring for High-Performance Computers with Polaris. IEEE Computer, 2912:78-82, 1996.
[23]
Vo, K.: Vmalloc: A General and Efficient Memory Allocator. Software Practice Experience, 263, 1996, 357-374.
[24]
Weinstock, C.: Dynamic Storage Allocation Techniques. Doctoral dissertation, Carnegie-Mellon University, Pittsburgh, April 1976.
[25]
Wilson, P., Johnstone, M., Neely, M., Boles, D.: Dynamic storage allocation: A survey and critical review. Int. Workshop on Memory Management, Kinross, UK, 1995.
[26]
Wolf, M., Lam, M.: A Data Locality Optimizing Algorithm. ACMSIGPLAN PLDI, Toronto, Canada, 1991.
[27]
Wolfe, M.: Iteration Space Tiling for Memory Hierarchies. SIAM Conf. on Parallel Processing for Scientific Computing, Los Angeles, CA, 1987.

Cited By

View all
  • (2009)Two memory allocators that use hints to improve localityProceedings of the 2009 international symposium on Memory management10.1145/1542431.1542447(109-118)Online publication date: 19-Jun-2009
  • (2009)PerflintProceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO.2009.36(265-274)Online publication date: 22-Mar-2009

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
LCPC'06: Proceedings of the 19th international conference on Languages and compilers for parallel computing
November 2006
365 pages
ISBN:9783540725206
  • Editors:
  • George Almási,
  • Calin Cascaval,
  • Peng Wu

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 02 November 2006

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2009)Two memory allocators that use hints to improve localityProceedings of the 2009 international symposium on Memory management10.1145/1542431.1542447(109-118)Online publication date: 19-Jun-2009
  • (2009)PerflintProceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO.2009.36(265-274)Online publication date: 22-Mar-2009

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media