A library-based approach to portable, parallel, object-oriented programming: interface, implementation, and application

The use of parallel platforms, despite their increasing availability, remains largely restricted to well-structured, numeric applications. We address the issue of facilitating the use of parallel platforms on unstructured problems through object-oriented design techniques and the actor model of concurrent computation. We present a multi-level approach to expressing parallelism for unstructured applications: a high-level interface based on the actor model of concurrent object-oriented programming and a low-level interface which provides an object-oriented interface to system services across a wide range of parallel architectures. The high- and low-level interfaces are implemented as part of the ProperCAD II C++ class library which supports shared memory, message-passing, and and hybrid architectures. We demonstrate our approach through a detailed examination of the parallelization process for an existing unstructured serial application, viz. a state-of-the-art VLSI computer-aided design application. We compare and contrast the library-based actor approach to other method for expressing parallelism in C++ on a number of applications and kernels.<<ETX>>

[1]  Prithviraj Banerjee,et al.  ProperCAD: a portable object-oriented parallel environment for VLSI CAD , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[2]  Cherri M. Pancake,et al.  Do parallel languages respond to the needs of scientific programmers? , 1990, Computer.

[3]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[4]  Janak H. Patel,et al.  ProperHITEC: A Portable, Parallel, Object-Oriented Approach to Sequential Test Generation , 1994, 31st Design Automation Conference.

[5]  Janak H. Patel,et al.  HITEC: a test generation package for sequential circuits , 1991, Proceedings of the European Conference on Design Automation..

[6]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[7]  Andrew A. Chien,et al.  Concurrent Aggregates: Supporting Modularity in Massively Parallel Programs , 1993 .

[8]  Bjarne Stroustrup,et al.  The Design and Evolution of C , 1994 .

[9]  K. Mani Chandy,et al.  Compositional C++: Compositional Parallel Programming , 1992, LCPC.

[10]  V. Karamcheti,et al.  Concert-efficient runtime support for concurrent object-oriented programming languages on stock hardware , 1993, Supercomputing '93.

[11]  G. Agha An overview of actor languages , 1986, OOPWORK '86.

[12]  John A. Chandy,et al.  Parallel algorithms for logic synthesis using the MIS approach , 1995, Proceedings of 9th International Parallel Processing Symposium.

[13]  Gul Agha An overview of actor languages , 1986 .

[14]  Laxmikant V. Kalé,et al.  Supporting Machine Independent Programming on Diverse Parallel Architectures , 1991, ICPP.

[15]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[16]  Sungho Kim,et al.  ProperPLACE: a portable parallel algorithm for standard cell placement , 1994, Proceedings of 8th International Parallel Processing Symposium.