ParoC++: a requirement-driven parallel object-oriented programming language

Adaptive utilization of resources in a highly heterogeneous computational environment such as the Grid is a difficult question. In this paper, we address an object-oriented approach to the solution using requirement-driven parallel objects. Each parallel object is a selfdescribed, shareable and passive object that resides in a separate memory address space. The allocation of the parallel object is driven by the constraints on the resource on which the object will live. A new parallel programming paradigm is presented in the context of ParoC++ a new parallel object-oriented programming environment for high performance distributed computing. ParoC++ extends C++ for supporting requirement-driven parallel objects and a runtime system that provides services to run ParoC++ programs in distributed environments. An industrial application on real-time image processing is used as a test case to the system. The experimental results show that the ParoC++ model is efficient and scalable and that it makes easier to adapt parallel applications to dynamic environments.

[1]  Ian T. Foster,et al.  The Anatomy of the Grid: Enabling Scalable Virtual Organizations , 2001, Int. J. High Perform. Comput. Appl..

[2]  Ami Marowka,et al.  The GRID: Blueprint for a New Computing Infrastructure , 2000, Parallel Distributed Comput. Pract..

[3]  Ian Foster,et al.  A quality of service architecture that combines resource reservation and application adaptation , 2000, 2000 Eighth International Workshop on Quality of Service. IWQoS 2000 (Cat. No.00EX400).

[4]  Franco Zambonelli,et al.  Parallel object allocation via user-specified directives: A case study in traffic simulation , 2001, Parallel Comput..

[5]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[6]  Dennis Gannon,et al.  PARDIS: A parallel approach to CORBA , 1997, Proceedings. The Sixth IEEE International Symposium on High Performance Distributed Computing (Cat. No.97TB100183).

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

[8]  Douglas C. Schmidt,et al.  Empirical Differences between COTS Middleware Scheduling Strategies , 2002, OTM.

[9]  Franco Zambonelli,et al.  HPO: a programming environment for object-oriented metacomputing , 1997, EUROMICRO 97. Proceedings of the 23rd EUROMICRO Conference: New Frontiers of Information Technology (Cat. No.97TB100167).

[10]  William E. Johnston,et al.  QoS as middleware: bandwidth reservation system design , 1999, Proceedings. The Eighth International Symposium on High Performance Distributed Computing (Cat. No.99TH8469).

[11]  Joel H. Saltz,et al.  Parallel Programming Using C++ , 1996 .

[12]  Thierry Priol,et al.  Cobra: A CORBA-compliant Programming Environment for High-Performance Computing , 1998, Euro-Par.