Skip to main content

LRMalloc: A Modern and Competitive Lock-Free Dynamic Memory Allocator

  • Conference paper
  • First Online:
High Performance Computing for Computational Science – VECPAR 2018 (VECPAR 2018)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11333))

Included in the following conference series:

Abstract

This paper presents LRMalloc, a lock-free memory allocator that leverages lessons of modern memory allocators and combines them with a lock-free scheme. Current state-of-the-art memory allocators possess good performance but lack desirable lock-free properties, such as, priority inversion tolerance, kill-tolerance availability, and/or deadlock and livelock immunity. LRMalloc’s purpose is to show the feasibility of lock-free memory management algorithms, without sacrificing competitiveness in comparison to commonly used state-of-the-art memory allocators, especially for concurrent multithreaded applications.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Berger, E.D., McKinley, K.S., Blumofe, R.D., Wilson, P.R.: Hoard: a scalable memory allocator for multithreaded applications. In: ACM SIGARCH Computer Architecture News, vol. 28, pp. 117–128. ACM (2000)

    Google Scholar 

  2. Dechev, D., Pirkelbauer, P., Stroustrup, B.: Understanding and effectively preventing the ABA problem in descriptor-based lock-free designs. In: 13th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing, pp. 185–192. IEEE (2010)

    Google Scholar 

  3. Evans, J.: A scalable concurrent malloc (3) implementation for FreeBSD. In: BSDCan Conference, Ottawa, Canada (2006)

    Google Scholar 

  4. Ghemawat, S., Menage, P.: TCMalloc: thread-caching malloc (2009). http://goog-perftools.sourceforge.net/doc/tcmalloc.html. (read on 14 June 2018)

  5. Gidenstam, A., Papatriantafilou, M., Tsigas, P.: NBmalloc: allocating memory in a lock-free manner. Algorithmica 58(2), 304–338 (2010)

    Article  MathSciNet  Google Scholar 

  6. Gloger, W.: Ptmalloc (2006). http://www.malloc.de/en. (read on 14 June 2018)

  7. Hart, T.E., McKenney, P.E., Brown, A.D., Walpole, J.: Performance of memory reclamation for lockless synchronization. J. Parallel Distrib. Comput. 67(12), 1270–1285 (2007)

    Article  Google Scholar 

  8. Larson, P.Å., Krishnan, M.: Memory allocation for long-running server applications. In: ACM SIGPLAN Notices, vol. 34, no. 3, pp. 176–185 (1998)

    Google Scholar 

  9. Lea, D.: A memory allocator called Doug Lea’s Malloc or dlmalloc for short (1996). http://g.oswego.edu/dl/html/malloc.html. (read on 14 June 2018)

  10. Lee, S., Johnson, T., Raman, E.: Feedback directed optimization of TCMalloc. In: Workshop on Memory Systems Performance and Correctness, p. 3. ACM (2014)

    Google Scholar 

  11. Lever, C., Boreham, D.: malloc() performance in a multithreaded Linux environment. In: USENIX Annual Technical Conference, pp. 301–311. USENIX (2000)

    Google Scholar 

  12. Michael, M.M.: Scalable lock-free dynamic memory allocation. ACM Sigplan Not. 39(6), 35–46 (2004)

    Article  Google Scholar 

  13. Wilson, P.R., Johnstone, M.S., Neely, M., Boles, D.: Dynamic storage allocation: a survey and critical review. In: Baler, H.G. (ed.) IWMM 1995. LNCS, vol. 986, pp. 1–116. Springer, Heidelberg (1995). https://doi.org/10.1007/3-540-60368-9_19

    Chapter  Google Scholar 

Download references

Acknowledgements

We would like to thank the anonymous reviewers for their feedback and suggestions. Special thanks to Pedro Moreno for helpful technical discussion and ideas provided during the development of this research. This work is financed by the ERDF (European Regional Development Fund) through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, FCT (Portuguese Foundation for Science and Technology) within project POCI-01-0145-FEDER-016844.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ricardo Leite .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Leite, R., Rocha, R. (2019). LRMalloc: A Modern and Competitive Lock-Free Dynamic Memory Allocator. In: Senger, H., et al. High Performance Computing for Computational Science – VECPAR 2018. VECPAR 2018. Lecture Notes in Computer Science(), vol 11333. Springer, Cham. https://doi.org/10.1007/978-3-030-15996-2_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-15996-2_17

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-15995-5

  • Online ISBN: 978-3-030-15996-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics