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.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
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)
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)
Evans, J.: A scalable concurrent malloc (3) implementation for FreeBSD. In: BSDCan Conference, Ottawa, Canada (2006)
Ghemawat, S., Menage, P.: TCMalloc: thread-caching malloc (2009). http://goog-perftools.sourceforge.net/doc/tcmalloc.html. (read on 14 June 2018)
Gidenstam, A., Papatriantafilou, M., Tsigas, P.: NBmalloc: allocating memory in a lock-free manner. Algorithmica 58(2), 304–338 (2010)
Gloger, W.: Ptmalloc (2006). http://www.malloc.de/en. (read on 14 June 2018)
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)
Larson, P.Å., Krishnan, M.: Memory allocation for long-running server applications. In: ACM SIGPLAN Notices, vol. 34, no. 3, pp. 176–185 (1998)
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)
Lee, S., Johnson, T., Raman, E.: Feedback directed optimization of TCMalloc. In: Workshop on Memory Systems Performance and Correctness, p. 3. ACM (2014)
Lever, C., Boreham, D.: malloc() performance in a multithreaded Linux environment. In: USENIX Annual Technical Conference, pp. 301–311. USENIX (2000)
Michael, M.M.: Scalable lock-free dynamic memory allocation. ACM Sigplan Not. 39(6), 35–46 (2004)
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)