Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
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.
C. J. Cheney. A non-recursive list compacting algorithm. CACM, 13(11):677–678, November 1970.
J. Crammond. A garbage collection algorithm for shared memory parallel processors. Int. Journal of Parallel Programming, 17(6):497–522, 1988.
H. Embrechts, D. Roose, and P. Wambacq. Component labelling on a MIMD multiprocessor. prepublished report, Dept. of Comp. Sci., Katholieke Universiteit Leuven, Belgium, 1990.
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.
R. Halstead. Implementation of multilisp: Lisp on a multiprocessor. Proceedings ACM symp. LISP and Functional Programming, pages 9–17, 1984.
P. H. Hartel. A comparison of three garbage collection algorithms. Structured programming, 11(3):117–127, 1990.
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 1991
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.
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.
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.
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.
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.
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.
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.
Q. F. Stout. Supporting divide-and-conquer algorithms for image processing. J. Parallel and Distributed Computing, 4(1):95–115, February 1987.
W. G. Vree. Design considerations for a parallel reduction machine. PhD thesis, Dept. of Comp. Sys, Univ. of Amsterdam, December 1989.
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.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Langendoen, K.G., Muller, H.L., Vree, W.G. (1992). Memory management for parallel tasks in shared memory. In: Bekkers, Y., Cohen, J. (eds) Memory Management. IWMM 1992. Lecture Notes in Computer Science, vol 637. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017189
Download citation
DOI: https://doi.org/10.1007/BFb0017189
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55940-5
Online ISBN: 978-3-540-47315-2
eBook Packages: Springer Book Archive