Skip to main content

Allocating Memory in a Lock-Free Manner

  • Conference paper
Algorithms – ESA 2005 (ESA 2005)

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

Included in the following conference series:

Abstract

The potential of multiprocessor systems is often not fully realized by their system services. Certain synchronization methods, such as lock-based ones, may limit the parallelism. It is significant to see the impact of wait/lock-free synchronization design in key services for multiprocessor systems, such as the memory allocation service. Efficient, scalable memory allocators for multithreaded applications on multiprocessors is a significant goal of recent research projects.

We propose a lock-free memory allocator, to enhance the parallelism in the system. Its architecture is inspired by Hoard, a successful concurrent memory allocator, with a modular, scalable design that preserves scalability and helps avoiding false-sharing and heap blowup. Within our e.ort on designing appropriate lock-free algorithms to construct this system, we propose a new non-blocking data structure called flat-sets, supporting conventional “internal” operations as well as “inter-object” operations, for moving items between flat-sets.

We implemented the memory allocator in a set of multiprocessor systems (UMA Sun Enterprise 450 and ccNUMA Origin 3800) and studied its behaviour. The results show that the good properties of Hoard w.r.t. false-sharing and heap-blowup are preserved, while the scalability properties are enhanced even further with the help of lock-free synchronization.

This work was supported by computational resources provided by the Swedish National Supercomputer Centre (NSC).

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Berger, E.D.: Memory Management for High-Performance Applications. PhD thesis, The University of Texas at Austin, Department of Computer Sciences (2002)

    Google Scholar 

  2. Berger, E., McKinley, K., Blumofe, R., Wilson, P.: Hoard: A scalable memory allocator for multithreaded applications. In: ASPLOS-IX: 9th Int. Conf. on Architectural Support for Programming Languages and Operating Systems, pp. 117–128 (2000)

    Google Scholar 

  3. Barnes, G.: A method for implementing lock-free shared data structures. In: Proc. of the 5th Annual ACM Symp. on Parallel Algorithms and Architectures, SIGACT and SIGARCH, pp. 261–270 (1993) (Extended abstract)

    Google Scholar 

  4. Greenwald, M., Cheriton, D.R.: The synergy between non-blocking synchronization and operating system structure. In: Operating Systems Design and Implementation, pp. 123–136 (1996)

    Google Scholar 

  5. Herlihy, M.: Wait-free synchronization. ACM Transaction on Programming and Systems 11, 124–149 (1991)

    Article  Google Scholar 

  6. Rinard, M.C.: Effective fine-grain synchronization for automatically parallelized programs using optimistic synchronization primitives. ACM Transactions on Computer Systems 17, 337–371 (1999)

    Article  Google Scholar 

  7. Dice, D., Garthwaite, A.: Mostly lock-free malloc. In: ISMM 2002 Proc. of the 3rd Int. Symp. on Memory Management. ACM SIGPLAN Notices, pp. 163–174. ACM Press, New York (2002)

    Chapter  Google Scholar 

  8. Massalin, H., Pu, C.: A lock-free multiprocessor OS kernel. Technical Report CUCS-005-91 (1991)

    Google Scholar 

  9. Herlihy, M.P., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12, 463–492 (1990)

    Article  Google Scholar 

  10. Hoepman, J.H., Papatriantafilou, M., Tsigas, P.: Self-stabilization of wait-free shared memory objects. Journal of Parallel and Distributed Computing 62, 766–791 (2002)

    Article  Google Scholar 

  11. Tsigas, P., Zhang, Y.: Evaluating the performance of non-blocking synchronisation on shared-memory multiprocessors. In: Proc. of the ACM SIGMETRICS 2001/Performance 2001, pp. 320–321. ACM Press, New York (2001)

    Google Scholar 

  12. Tsigas, P., Zhang, Y.: Integrating non-blocking synchronisation in parallel applications: Performance advantages and methodologies. In: Proc. of the 3rd ACM Workshop on Software and Performance (WOSP 2002), pp. 55–67. ACM Press, New York (2002)

    Chapter  Google Scholar 

  13. Sundell, H., Tsigas, P.: NOBLE: A non-blocking inter-process communication library. In: Proc. of the 6th Workshop on Languages, Compilers and Run-time Systems for Scalable Computers. LNCS. Springer, Heidelberg (2002)

    Google Scholar 

  14. Valois, J.D.: Lock-free linked lists using compare-and-swap. In: Proc. of the 14th Annual ACM Symp. on Principles of Distributed Computing (PODC 1995), pp. 214–222. ACM, New York (1995)

    Chapter  Google Scholar 

  15. Tsigas, P., Zhang, Y.: A simple, fast and scalable non-blocking concurrent fifo queue for shared memory multiprocessor systems. In: Proc. of the 13th annual ACM symp. on Parallel algorithms and architectures, pp. 134–143. ACM Press, New York (2001)

    Google Scholar 

  16. Michael, M.M.: Safe memory reclamation for dynamic lock-free objects using atomic reads and writes. In: Proc. of the 21st annual symp. on Principles of distributed computing, pp. 21–30. ACM Press, New York (2002)

    Chapter  Google Scholar 

  17. Harris, T.L.: A pragmatic implementation of non-blocking linked lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  18. Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: Proc. of the 14th Annual ACM Symp. on Parallel Algorithms and Architectures (SPAA 2002), pp. 73–82. ACM Press, New York (2002)

    Google Scholar 

  19. Michael, M.M.: Practical lock-free and wait-free LL/SC/VL implementations using 64-bit CAS. In: Guerraoui, R. (ed.) DISC 2004. LNCS, vol. 3274, pp. 144–158. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  20. Gidenstam, A., Papatriantafilou, M., Tsigas, P.: Allocating memory in a lock-free manner. Technical Report 2004-04, Computing Science, Chalmers University of technology (2004)

    Google Scholar 

  21. IBM: IBM System 370 Extended Architecture, Principles of Operation (1983); Publication No. SA22-7085

    Google Scholar 

  22. Larson, P.P.-Å., Krishnan, M.: Memory allocation for long-running server applications. In: ISMM 1998 Proc. of the 1st Int. Symp. on Memory Management. ACM SIGPLAN Notices, pp. 176–185. ACM Press, New York (1998)

    Chapter  Google Scholar 

  23. Michael, M.: Scalable lock-free dynamic memory allocation. In: Proc. of SIGPLAN 2004 Conf. on Programming Languages Design and Implementation. ACM SIGPLAN Notices. ACM Press, New York (2004)

    Google Scholar 

  24. Massalin, H.: Synthesis: An Efficient Implementation of Fundamental Operating System Services. PhD thesis, Columbia University (1992)

    Google Scholar 

  25. Greenwald, M.B.: Non-blocking synchronization and system design. PhD thesis, Stanford University (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gidenstam, A., Papatriantafilou, M., Tsigas, P. (2005). Allocating Memory in a Lock-Free Manner. In: Brodal, G.S., Leonardi, S. (eds) Algorithms – ESA 2005. ESA 2005. Lecture Notes in Computer Science, vol 3669. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561071_31

Download citation

  • DOI: https://doi.org/10.1007/11561071_31

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-29118-3

  • Online ISBN: 978-3-540-31951-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics