Memory management for parallel tasks in shared memory

  • K. G. Langendoen
  • H. L. Muller
  • W. G. Vree
Parallelism I
Part of the Lecture Notes in Computer Science book series (LNCS, volume 637)


Three memory management strategics for sl arcd-memory multiprocessors that support two-space copying garbage collection are presented. These strategies exploit the fork-join task structure of the divide-and-conquer paradigm by equipping each task with a private heap that can be locally collected independently of other processors and tasks. The memory management strategies use a virtual address space to allocate private heaps such that the efficient copying collectors do not need to be adapted to handle physically scattered heaps. When the allocation strategies run out of the virtual address space, an expensive compaction operation has to be performed. Results from a detailed simulation, however, show that this happens so infrequently that the costs are negligible in practice.


Garbage Collection Physical Memory Virtual Memory Garbage Collector Benchmark Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AEL88]
    A. Appel, J. Ellis, and K. Li. Real-time concurrent collection on stock multiprocessors. Proceedings conf. on Programming Language Design and Implementation, pages 11–20, 1988.Google Scholar
  2. [Che70]
    C. J. Cheney. A non-recursive list compacting algorithm. CACM, 13(11):677–678, November 1970.Google Scholar
  3. [Cra88]
    J. Crammond. A garbage collection algorithm for shared memory parallel processors. Int. Journal of Parallel Programming, 17(6):497–522, 1988.CrossRefGoogle Scholar
  4. [ERW90]
    H. Embrechts, D. Roose, and P. Wambacq. Component labelling on a MIMD multiprocessor. prepublished report, Dept. of Comp. Sci., Katholieke Universiteit Leuven, Belgium, 1990.Google Scholar
  5. [Gla92]
    J. Glas. The parallelization of branch and bound algorithms in a functional programming language. Master's thesis, Dept. of Comp. Sys, Univ. of Amsterdam, April 1992.Google Scholar
  6. [Hal84]
    R. Halstead. Implementation of multilisp: Lisp on a multiprocessor. Proceedings ACM symp. LISP and Functional Programming, pages 9–17, 1984.Google Scholar
  7. [Har90]
    P. H. Hartel. A comparison of three garbage collection algorithms. Structured programming, 11(3):117–127, 1990.Google Scholar
  8. [HGW91]
    P. H. Hartel, H. W. Glaser, and J. M. Wild. Compilation of functional languages using flow graph analysis. Technical report CSTR 91-03, Dept. of Electr. and Comp. Sci, Univ. of Southampton, UK, January 1991Google Scholar
  9. [HV92]
    P. H. Hartel and W. G. Vree. Arrays in a lazy functional language — a case study: the fast Fourier transform. Technical report CS-92-02, Dept. of Comp. Sys, Univ. of Amsterdam, May 1992.Google Scholar
  10. [LH83]
    Henry Liebermann and Carl Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 23(6):419–429, 1983.CrossRefGoogle Scholar
  11. [LH92]
    K. G. Langendoen and P. H. Hartel. FCG: a code generator for lazy functional languages. Technical report CS-92-03, Dept. of Comp. Sys, Univ. of Amsterdam, May 1992.Google Scholar
  12. [LV91a]
    K. G. Langendoen and W. G. Vree. Eight queens divided: An experience in parallel functional programming. In R. Dietrich J. Darlington, editor, Declarative programming, pages 101–115, Sasbachwalden, West Germany, November 1991. Springer Verlag.Google Scholar
  13. [LV91b]
    K. G. Langendoen and W. G. Vree. FRATS: a parallel reduction strategy for shared memory. In M. Wirsing J. Maluszynski, editor, 3rd Programming language implementation and logic programming, LNCS 528, pages 99–110, Passau, West Germany, August 1991. Springer Verlag.Google Scholar
  14. [Mar91]
    L. Maranget. GAML: a parallel implementation of lazy ML. In R. J. M. Hughes, editor, 5th Functional programming languages and computer architecture, LNCS 523, pages 102–123, Cambridge, Massachusetts, September 1991. Springer Verlag.Google Scholar
  15. [MLH92]
    H. L. Muller, K. G. Langendoen, and L. O. Hertzberger. MiG: Simulating parallel functional programs on hierarchical cache architectures. Technical report CS-92-04, Dept. of Comp. Sys, Univ. of Amsterdam, June 1992.Google Scholar
  16. [Sto87]
    Q. F. Stout. Supporting divide-and-conquer algorithms for image processing. J. Parallel and Distributed Computing, 4(1):95–115, February 1987.CrossRefGoogle Scholar
  17. [Vre89]
    W. G. Vree. Design considerations for a parallel reduction machine. PhD thesis, Dept. of Comp. Sys, Univ. of Amsterdam, December 1989.Google Scholar
  18. [Vre90]
    W.G. Vree. Implementation of parallel graph reduction by explicit annotation and program transformation. Mathematical Foundations of Computer Science 1990, LNCS 452, pages 135–151, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • K. G. Langendoen
    • 1
  • H. L. Muller
    • 1
  • W. G. Vree
    • 1
  1. 1.University of AmsterdamSJ AmsterdamThe Netherlands

Personalised recommendations