Portable run-time support for dynamic object-oriented parallel processing

Mentat is an object-oriented parallel processing system designed to simplify the task of writing portable parallel programs for parallel machines and workstation networks. The Mentat compiler and run-time system work together to automatically manage the communication and synchronization between objects. The run-time system marshals member function arguments, schedules objects on processors, and dynamically constructs and executes large-grain data dependence graphs. In this article we present the Mentat run-time system. We focus on three aspects—the software architecture, including the interface to the compiler and the structure and interaction of the principle components of the run-time system; the run-time overhead on a component-by-component basis for two platforms, a Sun SparcStation 2 and an Intel Paragon; and an analysis of the minimum granularity required for application programs to overcome the run-time overhead.

[1]  Andrew S. Grimshaw,et al.  Dynamic, object-oriented parallel processing , 1993, IEEE Parallel & Distributed Technology: Systems & Applications.

[2]  Jack Dongarra,et al.  HeNCE: graphical development tools for network-based concurrent computing , 1992, Proceedings Scalable High Performance Computing Conference SHPCC-92..

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

[4]  Joel H. Saltz,et al.  Principles of runtime support for parallel processors , 1988, ICS '88.

[5]  Andrew S. Grimshaw,et al.  Parallel Object-Oriented Computation Applied to a Finite Element Problem , 1993, Sci. Program..

[6]  Jean-Marc Jézéquel,et al.  Design of a Parallel Object-Oriented Linear Algebra Library , 2010 .

[7]  K. Mani Chandy,et al.  Integrating Task and Data Parallelism in UC , 1995, ICPP.

[8]  Andrew S. Grimshaw The Mentat Computation Model Data-Driven Support for Object-Oriented Parallel Processing , 1993 .

[9]  James R. Larus C**: A Large-Grain, Object-Oriented, Data-Parallel Programming Language , 1992, LCPC.

[10]  Jenq Kuen Lee,et al.  Object oriented parallel programming: experiments and results , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[11]  Ken Kennedy,et al.  Fortran D Language Specification , 1990 .

[12]  Philip J. Hatcher,et al.  Data-Parallel Programming on MIMD Computers , 1991, IEEE Trans. Parallel Distributed Syst..

[13]  Monica S. Lam,et al.  Coarse-grain parallel programming in Jade , 1991, PPOPP '91.

[14]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[15]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[16]  Edward D. Lazowska,et al.  Adaptive load sharing in homogeneous distributed systems , 1986, IEEE Transactions on Software Engineering.

[17]  Harry Berryman,et al.  Distributed Memory Compiler Design for Sparse Problems , 1995, IEEE Trans. Computers.

[18]  Samuel T. Chanson,et al.  Distributed, object-based programming systems , 1991, CSUR.

[19]  Andrew S. Grimshaw,et al.  Easy-to-use object-oriented parallel processing with Mentat , 1993, Computer.

[20]  R. A. Elliot,et al.  Optical remote sensing of the atmosphere. , 1985, Applied optics.

[21]  A. S. Grimshaw,et al.  The Mentat Run-Time System: Support for Medium Grain Parallel Computation , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[22]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[23]  E. A. West,et al.  No pain and gain! - experiences with Mentat on a biological application , 1993, Concurr. Pract. Exp..

[24]  A. S. Grimshaw Meta-Systems: An Approach Combining Parallel Processing and Heterogeneous Distributed Computing Systems , 1992, Proceedings. Workshop on Heterogeneous Processing.

[25]  Vason P. Srini,et al.  An Architectural Comparison of Dataflow Systems , 1986, Computer.

[26]  Andrew S. Grimshaw,et al.  Network partitioning of data parallel computations , 1994, Proceedings of 3rd IEEE International Symposium on High Performance Distributed Computing.

[27]  Anthony P. Reeves,et al.  High performance computing on a cluster of workstations , 1992, Proceedings of the First International Symposium on High-Performance Distributed Computing. (HPDC-1).

[28]  Dennis Gannon,et al.  Distributed pC++ Basic Ideas for an Object Parallel Language , 1993, Sci. Program..

[29]  Arthur H. Veen,et al.  Dataflow machine architecture , 1986, CSUR.

[30]  Michael J. Quinn,et al.  Data-parallel programming on a network of heterogeneous workstations , 1993, Concurr. Pract. Exp..

[31]  A. Grimshaw The Mentat Computation Model-Data-Driven Support for Dynamic Object-Oriented Parallel Processing 1 , 1993 .

[32]  Keshav Pingali,et al.  Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming , 1997, PPoPP 1997.

[33]  L EagerDerek,et al.  Adaptive load sharing in homogeneous distributed systems , 1986 .

[34]  Andrew S. Grimshaw,et al.  Metasystems: An Approach Combining Parallel Processing and Heterogeneous Distributed Computing Systems , 1994, J. Parallel Distributed Comput..

[35]  Anna Hác Load balancing in distributed systems: a summary , 1989, PERV.

[36]  James C. Browne,et al.  Experimental Evaluation of a Reusability-Oriented Parallel Programming Environment , 1990, IEEE Trans. Software Eng..

[37]  Steven A. Moyer,et al.  Performance of the IPSC/860 Node Architecture , 1991 .

[38]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[39]  Ephraim P. Glinert,et al.  Pict: An Interactive Graphical Programming Environment , 1984, Computer.

[40]  David B. Loveman High performance Fortran , 1993, IEEE Parallel & Distributed Technology: Systems & Applications.

[41]  W. T. Strayer,et al.  MMPS: Portable Message Passing Support for Parallel Computing , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[42]  A. S. Grimshaw,et al.  FALCON: A distributed scheduler for MIMD architectures , 1991 .

[43]  A. S. Grimshaw,et al.  Braid: integrating task and data parallelism , 1995, Proceedings Frontiers '95. The Fifth Symposium on the Frontiers of Massively Parallel Computation.

[44]  Bob Beck,et al.  Shared-memory parallel programming in C++ , 1990, IEEE Software.

[45]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[46]  Nicholas Carriero,et al.  Linda in Heterogeneous Computing Environments , 1992, Proceedings. Workshop on Heterogeneous Processing.

[47]  Thomas L. Casavant,et al.  A Taxonomy of Scheduling in General-Purpose Distributed Computing Systems , 1988, IEEE Trans. Software Eng..

[48]  Tilak Agerwala,et al.  Data Flow Systems: Guest Editors' Introduction , 1982, Computer.

[49]  James H. Patterson,et al.  Portable Programs for Parallel Processors , 1987 .

[50]  Brian N. Bershad,et al.  PRESTO: A system for object‐oriented parallel programming , 1988, Softw. Pract. Exp..

[51]  Bjarne Stroustrup What Is Object-Oriented Programming? , 1988, IEEE Softw..

[52]  Robert G. Babb,et al.  Parallel Processing with Large-Grain Data Flow Techniques , 1984, Computer.

[53]  Laxmikant V. Kalé,et al.  Chare Kernel - a Runtime Support System for Parallel Computations , 1991, J. Parallel Distributed Comput..