Algorithms for parallel memory allocation

Dynamic storage allocation is a vital component of programming systems intended for multiprocessor architectures that support globally shared memory. Highly parallel algorithms for access to system data structures lie at the core of effective memory allocation strategies as well as solutions to other parallel systems problems. In this paper, we investigate four algorithms, all based on the first fit approach, that provide different granularities of parallel access to the allocator's data structures. These solutions employ a variety of design techniques including specialized locking protocols, the use of atomic fetch-and-Ф operations, and structural modifications. We describe experiments designed to compare the performance of these schemes. The results show that simple algorithms are appropriate when the expected number of concurrent requests per memory is low and the request pattern is not bursty. Algorithms that support finer granularity access while avoiding locking protocols are successful in a range of larger processor/memory ratios.

[1]  Ray Ford Concurrent algorithms for real-time memory management , 1988, IEEE Software.

[2]  Kevin P. McAuliffe,et al.  The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture , 1985, ICPP.

[3]  R. R. Oldehoeft,et al.  Parallel Dynamic Storage Allocation , 1985, ICPP.

[4]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[5]  Carla Schlatter Ellis Concurrent search and insertion in 2–3 trees , 2004, Acta Informatica.

[6]  H. T. Kung,et al.  Concurrent manipulation of binary search trees , 1980, TODS.

[7]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[8]  Carla Schlatter Ellis,et al.  Concurrency in linear hashing , 1987, TODS.

[9]  Richard E. Ladner,et al.  Concurrency control in a dynamic search structure , 1984, TODS.

[10]  Dennis Shasha,et al.  Concurrent search structure algorithms , 1988, TODS.

[11]  Richard E. Ladner,et al.  Concurrency control in a dynamic search structure , 1984 .

[12]  Allan Gottlieb,et al.  Coordinating parallel processors: a partial unification , 1981, CARN.

[13]  S. B. Yao,et al.  Efficient locking for concurrent operations on B-trees , 1981, TODS.

[14]  Carla Schlatter Ellis,et al.  Concurrent Search and Insertion in AVL Trees , 1980, IEEE Transactions on Computers.

[15]  Carla Schlatter Ellis,et al.  Concurrency in Extendible Hashing , 1988, Inf. Syst..

[16]  Chak-Kuen Wong,et al.  Quintary trees: a file structure for multidimensional datbase sytems , 1980, TODS.