Allocating memory in a lock-free manner
Paper i proceeding, 2005

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 effort 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 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.


Anders Gidenstam

Chalmers, Data- och informationsteknik, Datavetenskap

Marina Papatriantafilou

Chalmers, Data- och informationsteknik, Datavetenskap

Philippas Tsigas

Chalmers, Data- och informationsteknik, Datavetenskap

Proceedings of the 13th Annual European Symposium on Algorithms

329 -- 242-


Data- och informationsvetenskap

Mer information