skip to main content
research-article

ACDC: towards a universal mutator for benchmarking heap management systems

Published:20 June 2013Publication History
Skip Abstract Section

Abstract

We present ACDC, an open-source benchmark that may be configured to emulate explicit single- and multi-threaded memory allocation, sharing, access, and deallocation behavior to expose virtually any relevant allocator performance differences. ACDC mimics periodic memory allocation and deallocation (AC) as well as persistent memory (DC). Memory may be allocated thread-locally and shared among multiple threads to study multicore scalability and even false sharing. Memory may be deallocated by threads other than the allocating threads to study blowup memory fragmentation. Memory may be accessed and deallocated sequentially in allocation order or in tree-like traversals to expose allocator deficiencies in exploiting spatial locality. We demonstrate ACDC's capabilities with seven state-of-the-art allocators for C/C++ in an empirical study which also reveals interesting performance differences between the allocators.

References

  1. CITI Projects: Linux scalability, 1999. URL http://www.citi.umich.edu/projects/linux-scalability/.Google ScholarGoogle Scholar
  2. MicroQuill Inc., 2013. URL http://www.microquill.com/.Google ScholarGoogle Scholar
  3. D. A. Barrett and B. G. Zorn. Using lifetime predictors to improve memory allocation performance. In Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation, PLDI '93, pages 187--196, New York, USA, 1993. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. E. D. Berger. The Hoard Memory Allocator Documentation: Frequently Asked Questions, 2004. URL http://people.cs.umass.edu/ emery/hoard/hoard-documentation.html#IDAOZYP.Google ScholarGoogle Scholar
  5. E. D. Berger, K. S. McKinley, R. D. Blumofe, and P. R. Wilson. Hoard: A Scalable Memory Allocator for Multithreaded Applications. SIGPLAN Not., 35 (11): 117--128, Nov. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Bonwick and J. Adams. Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources. In Proceedings of the 2001 USENIX Annual Technical Conference, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Evans. A Scalable Concurrent malloc(3) Implementation for FreeBSD. In The Technical BSD Conference, BSDCan '06, Apr. 2006.Google ScholarGoogle Scholar
  8. J. Evans. Scalable memory allocation using jemalloc, 2011. URL https://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919.Google ScholarGoogle Scholar
  9. W. Gloger. Wolfram Gloger's malloc homepage, 2006. URL http://www.malloc.de/en/.Google ScholarGoogle Scholar
  10. Google, Inc. Google Performance Tools, 2012. URL http://code.google.com/p/gperftools/wiki/GooglePerformanceTools.Google ScholarGoogle Scholar
  11. B. Hayes. Using key object opportunism to collect old objects. In Conference proceedings on Object-oriented programming systems, languages, and applications, OOPSLA '91, pages 33--46, New York, USA, 1991. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Intel, Inc. Thread Building Blocks, 2013. URL http://threadingbuildingblocks.org/.Google ScholarGoogle Scholar
  13. P.-A. Larson and M. Krishnan. Memory allocation for long-running server applications. In Proceedings of the 1st international symposium on Memory management, ISMM '98, pages 176--185, New York, USA, 1998. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Lea. A Memory Allocator, 2000. URL http://g.oswego.edu/dl/html/malloc.html.Google ScholarGoogle Scholar
  15. C. Lever and D. Boreham. malloc() performance in a multithreaded Linux environment. In Proceedings of the FREENIX Track of the 2000 USENIX Annual Technical Conference, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lockless, Inc. The Lockless Memory Allocator, 2013. URL http://locklessinc.com/.Google ScholarGoogle Scholar
  17. M. M. Michael. Scalable lock-free dynamic memory allocation. In Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation, PLDI '04, pages 35--46, New York, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Schneider, C. D. Antonopoulos, and D. S. Nikolopoulos. Scalable locality-conscious multithreaded memory allocation. In Proceedings of the 5th international symposium on Memory management, ISMM '06, pages 84--94, New York, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Standard Performance Evaluation Corporation. Specjvm2008, 2013. URL http://www.spec.org/jvm2008/.Google ScholarGoogle Scholar
  20. R. C. Weisner. How Memory Allocation Affects Performance in Multithreaded Programs, 2012. URL http://www.oracle.com/technetwork/articles/servers-storage-dev/mem-alloc-1557798.html.Google ScholarGoogle Scholar
  21. B. Zorn and D. Grunwald. Empirical measurements of six allocation-intensive C programs. SIGPLAN Not., 27 (12): 71--80, Dec. 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. ACDC: towards a universal mutator for benchmarking heap management systems

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 48, Issue 11
    ISMM '13
    November 2013
    128 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2555670
    Issue’s Table of Contents
    • cover image ACM Conferences
      ISMM '13: Proceedings of the 2013 international symposium on memory management
      June 2013
      140 pages
      ISBN:9781450321006
      DOI:10.1145/2491894

    Copyright © 2013 ACM

    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: 20 June 2013

    Check for updates

    Qualifiers

    • research-article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader