A Fine-Grained Parallel Memory Compaction Algorithm
โ Scribed by P. Weemeeuw; B. Demoen
- Publisher
- Elsevier Science
- Year
- 1994
- Tongue
- English
- Weight
- 942 KB
- Volume
- 20
- Category
- Article
- ISSN
- 0743-7315
No coin nor oath required. For personal study only.
โฆ Synopsis
Memory compaction is a technique for reclaiming cells containing garbage that are scattered over the memory space. More specifcally, the memory cells are rearranged, so that all usable cells appear in one compact mass at one end of the area, and the remaining space at the other end can be recycled by the program. During this process, references are updated to point to the new locations. This process happens in place; no extra memory is needed. In addition to this, a sliding compaction algorithm preserves the relative order of the useful memory calls. Morris's algorithm is such a well known sequential algorithm. In this paper, we present a program scheme that is a generalization of Morris's algorithm, and that allows for parallel execution. Our scheme can be fine tuned for a particular implementation, taking into account the characteristics of the memory area and the hardware. The algorithm is space efficient, and runs in a time linear to the size of the memory area (the actual parameters are determined by the properties of the data to be compacted). As the algorithm is very fine grained, it has a nearly linear speedup, except in some uncommon cases. The memory area need not be contiguous, but must be globally accessible. 1994 Academic Press, Inc.
๐ SIMILAR VOLUMES
A coarse-grain parallel program typically has one thread (task) per processor, whereas a finegrain program has one thread for each independent unit of work. Although there are several advantages to fine-grain parallelism, conventional wisdom is that coarse-grain parallelism is more efficient. This p
Migration is a fundamental mechanism for achieving load balancing and locality of references in parallel and distributed applications. This paper presents the migration mechanisms implemented in the Parallel Objects (PO) programming environment, which assumes a fine granularity in allocation and rea
Ray tracing is a well known technique to generate life-like images. Unfortunately, ray tracing complex scenes can require large amounts of CPU time and memory storage. Distributed memory parallel computers with large memory capacities and high processing speeds are ideal candidates to perform ray tr