Small-scale shared-memory multiprocessors are commonly used in a workgroup environment where multiple applications, both parallel and sequential, are executed concurrently while sharing the processors and other system resources. To utilize the processors efficiently, an effective allocation strategy is required. In this paper, we use performance data obtained from an SGI multiprocessor to evaluate several processor allocation strategies when running two parallel programs simultaneously. We examine gang scheduling (coscheduling), static space-sharing (space partitioning), and a dynamic allocation scheme called loop-level process control (LLPC) with three different dynamic allocation heuristics. We use regression analysis to quantify the measured data and thereby explore the relationship between the degree of parallelism of the application, specific system parameters (such as the size of the system), the processor allocation strategy, and the resulting performance. This study shows that dynamically partitioning the system using LLPC or similar heuristics provides better performance for applications with a high degree of parallelism than either gang scheduling or static space-sharing.
Bibliographical noteFunding Information:
1This work was performed while Kelvin Yue was with the Department of Computer Science at the University of Minnesota and was supported in part by the National Science Foundation under Grant MIP-9221900 and equipment grant CDA-9414015. A version of this work was presented at the International Conference on Parallel Processing in August, 1996.
- Processor allocation; multiprogramming; shared-memory multiprocessors; performance measurement.