Allocating memory in a lock-free manner

  • Authors:
  • Anders Gidenstam;Marina Papatriantafilou;Philippas Tsigas

  • Affiliations:
  • Department of Computer Science and Engineering, Chalmers University of Technology, Göteborg, Sweden;Department of Computer Science and Engineering, Chalmers University of Technology, Göteborg, Sweden;Department of Computer Science and Engineering, Chalmers University of Technology, Göteborg, Sweden

  • Venue:
  • ESA'05 Proceedings of the 13th annual European conference on Algorithms
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

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.