Skip to main content
Log in

Algorithms for parallel memory allocation

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. D. Knuth, The Art of Computer Programming, Vol. 3: Sorting and Searching (1973).

  2. C. Ellis, Concurrent Search and Insertion in 2-3 Trees,Acta Informatica 14:63–86 (1980).

    Google Scholar 

  3. C. Ellis, Concurrency in Linear Hashing,ACM Trans. Database Systems 12(2):195–217 (1987).

    Google Scholar 

  4. C. Ellis, Concurrency in Extendible Hashing,Information Systems 13(1):97–109 (1988).

    Google Scholar 

  5. C. Ellis, Concurrent Search and Insertion in AVL Trees,IEEE Transactions on Computers C-29(9):811–817 (September 1980).

    Google Scholar 

  6. P. L. Lehman and S. B. Yao, Efficient Locking for Concurrent Operations on B-Trees,ACM Trans. Database Systems 6(4):650–670 (December 1981).

    Google Scholar 

  7. D. Shasha and N. Goodman, Concurrent Search Structure Algorithms,ACM Trans. Database Systems Vol 13, No. 1 (March 1988).

  8. H. Stone, Parallel Memory Allocation using the FETCH-AND-ADD Instruction, Technical Report RC 9674, IBM Thomas, J. Watson Research Center, (November 1982).

  9. A. Gottlieb and J. Wilson, Using the Buddy System for Concurrent Memory Allocation, Ultracomputer System Software Note 6, Courant Institute, New York University, (April 1981).

  10. A. Bigler, S. Allan and R. Oldehoeft, Parallel Dynamic Storage Allocation,Proceedings of Int'l Conf. on Parallel Processing, p. 272–275 (August 1985).

  11. R. Ford, Concurrent Algorithms for a Real Time Memory Management System,IEEE Software, p. 10–23 (September 1988).

  12. H. T. Kung and J. Robinson, On Optimistic Methods for Concurrency Control,ACM Trans. Database Systems 6(2):213–226 (June 1981).

    Google Scholar 

  13. A. Gottlieb and C. Kruskal, Coordinating Parallel Processors: A Partial Unification,Computer Architecture News 9(6):16–24 (October 1981).

    Google Scholar 

  14. Butterfly Parallel Processor Overview, Technical Report, BBN Laboratories, (June 1985).

  15. G. Pfister, W. Brentley, D. George, S. Harvey, W. Kleinfelder, K. McAuliffe, E. Melton, V. Norton and J. Weiss, The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture,Proc. of Int'l Conf. on Parallel Processing, St Charles Illinois, p. 764–771 (August 1985).

  16. Inside the Butterfly Plus, Technical Report, BBN Laboratories, (October 1987).

  17. The Uniform System Approach to Programming the Butterfly Parallel Processor, Technical Report # 6149, BBN Laboratories, (October 1985).

  18. H. T. Kung and P. L. Lehman, Concurrent Manipulation of Binary Search Trees,ACM Trans. Database Systems 5(3):339–353 (1980).

    Google Scholar 

  19. U. Manber and R. E. Ladner, Concurrency Control in a Dynamic Search Structure,ACM Trans. Database Systems 9(3):439–455 (September 1984).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This research was supported in part by the National Science Foundation under Grant Number DCR 8320136, DARPA/U.S. Army Engineer Topographic Laboratories under contract number DACA76-85-C-0001, and Unisys Corporation.

A preliminary version appeared in International Conference on Parallel Processing, August 1987.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ellis, C.S., Olson, T.J. Algorithms for parallel memory allocation. Int J Parallel Prog 17, 303–345 (1988). https://doi.org/10.1007/BF01407909

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01407909

Key Words

Navigation