Multiprogramming on multiprocessors

Many solutions have been proposed to the problem of multiprogramming a multiprocessor. However, each has limited applicability or fails to address an important source of overhead. In addition, there has been little experimental comparison of the various solutions in the presence of applications with varying degrees of parallelism and synchronization. The authors explore the tradeoffs between three different approaches to multiprogramming a multiprocessor: time-slicing, coscheduling, and dynamic hardware partitions. They implemented applications that vary in the degree of parallelism, and the frequency and type of synchronization. They show that in most cases coscheduling is preferable to time-slicing. They also show that although there are cases where coscheduling is beneficial, dynamic hardware partitions do no worse, and will often do better. They conclude that under most circumstances, hardware partitioning is the best strategy for multiprogramming a multiprocessor, no matter how much parallelism applications employ or how frequently synchronization occurs.<<ETX>>

[1]  John K. Ousterhout,et al.  Scheduling Techniques for Concurrent Systems , 1982, ICDCS.

[2]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[3]  Virgil D. Gligor,et al.  A Comparative Analysis of Multiprocessor Scheduling Algorithms , 1987, ICDCS.

[4]  Virgil D. Gligor,et al.  Properties of Multiprocessor Scheduling Algorithms , 1987, International Conference on Parallel Processing.

[5]  Nian-Feng Tzeng,et al.  Distributing Hot-Spot Addressing in Large-Scale Multiprocessors , 1987, IEEE Transactions on Computers.

[6]  Robert H. Thomas,et al.  The Uniform System: An approach to runtime support for large scale shared memory parallel processors , 1988, ICPP.

[7]  Edward D. Lazowska,et al.  The limited performance benefits of migrating active processes for load sharing , 1988, SIGMETRICS '88.

[8]  Charles L. Seitz,et al.  Multicomputers: message-passing concurrent computers , 1988, Computer.

[9]  Richard P. Gabriel,et al.  Qlisp: parallel processing in Lisp , 1989, IEEE Software.

[10]  Michael L. Scott,et al.  Evolution of an Operating System for Large-Scale Shared-Memory Multiprocessors , 1989 .

[11]  Anoop Gupta,et al.  Process control and scheduling issues for multiprogrammed shared-memory multiprocessors , 1989, SOSP '89.

[12]  Michael L. Scott,et al.  Multi-model parallel programming in psyche , 1990, PPOPP '90.

[13]  John Zahorjan,et al.  Processor scheduling in shared memory multiprocessors , 1990, SIGMETRICS '90.

[14]  Larry Rudolph,et al.  Distributed hierarchical control for parallel processing , 1990, Computer.

[15]  David L. Black Scheduling support for concurrency and parallelism in the Mach operating system , 1990, Computer.

[16]  Mary K. Vernon,et al.  Issues in multiprogrammed multiprocessor scheduling , 1990 .

[17]  Mark S. Squillante Issues in Shared-Memory Multipro-cessor Scheduling: A Performance Evaluation , 1990 .

[18]  Anoop Gupta,et al.  The impact of operating system scheduling policies and synchronization methods of performance of parallel applications , 1991, SIGMETRICS '91.

[19]  Evangelos P. Markatos,et al.  The effects of multiprogramming on barrier synchronization , 1991, Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing.

[20]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[21]  Mark S. Squillante,et al.  Using Processor-Cache Affinity Information in Shared-Memory Multiprocessor Scheduling , 1993, IEEE Trans. Parallel Distributed Syst..

[22]  Raj Vaswani,et al.  A dynamic processor allocation policy for multiprogrammed shared-memory multiprocessors , 1993, TOCS.