Exploiting heterogeneous parallelism on a multithreaded multiprocessor

This paper describes an integrated architecture, compiler, runtime, and operating system solution to exploiting heterogeneous parallelism. The architecture is a pipelined multi-threaded multiprocessor, enabling the execution of very fine (multiple operations within an instruction) to very coarse (multiple jobs) parallel activities. The compiler and runtime focus on managing parallelism within a job, while the operating system focuses on managing parallelism across jobs. By considering the entire system in the design, we were able to smoothly interface its four components. While each component is primarily responsible for managing its own level of parallel activity, feedback mechanisms between components enable resource allocation and usage to be dynamically updated. This dynamic adaptation to changing requirements and available resources fosters both high utilization of the machine and the efficient expression and execution of parallelism.

[1]  David A. Padua,et al.  Compiler Generated Synchronization for Do Loops , 1986, ICPP.

[2]  David E. Culler,et al.  Resource requirements of dataflow programs , 1988, [1988] The 15th Annual International Symposium on Computer Architecture. Conference Proceedings.

[3]  Donald Yeung,et al.  THE MIT ALEWIFE MACHINE: A LARGE-SCALE DISTRIBUTED-MEMORY MULTIPROCESSOR , 1991 .

[4]  Brian N. Bershad,et al.  An Open Environment for Building Parallel Programming Systems , 1988, PPOPP/PPEALS.

[5]  Allan Porterfield,et al.  The Tera computer system , 1990 .

[6]  Nicholas Carriero,et al.  Linda and Friends , 1986, Computer.

[7]  Arvind,et al.  A critique of multiprocessing von Neumann style , 1983, ISCA '83.

[8]  B J Smith,et al.  A pipelined, shared resource MIMD computer , 1986 .

[9]  Manoj Kumar Effect of storage allocation/reclamation methods on parallelism and storage requirements , 1987, ISCA '87.

[10]  Edward F. Miller,et al.  A Multiple-Stream Registerless Shared-Resource Processor , 1974, IEEE Transactions on Computers.

[11]  David E. Culler,et al.  Fine-grain parallelism with minimal hardware support: a compiler-controlled threaded abstract machine , 1991, ASPLOS IV.

[12]  Robert H. Halstead,et al.  MASA: a multithreaded processor architecture for parallel symbolic computing , 1988, [1988] The 15th Annual International Symposium on Computer Architecture. Conference Proceedings.

[13]  Brian N. Bershad,et al.  An Open Environment for Building Parallel Programming Systems , 1988, PPOPP/PPEALS.

[14]  Burton J. Smith,et al.  The Horizon supercomputing system: architecture and software , 1988, Proceedings. SUPERCOMPUTING '88.

[15]  Arvind,et al.  T: a multithreaded massively parallel architecture , 1992, ISCA '92.

[16]  David E. Culler,et al.  Fine-grain parallelism with minimal hardware support: a compiler-controlled threaded abstract machine , 1991, ASPLOS IV.

[17]  David Callahan,et al.  A future-based parallel language for a general-purpose highly-parallel computer , 1990 .