Designing Scalable Object Oriented Parallel Applications (Research Note)

The SCOOPP (Scalable Object Oriented Parallel Programming) system efficiently adapts, at run-time, an object oriented parallel application to any distributed memory system. It extracts as much parallelism as possible at compile time, and it removes excess of parallel tasks and messages through run-time packing. These object and call aggregation techniques are briefly presented. A design methodology was developed for three main types of scalable applications: pipeline, divide & conquer and farming. This paper reviews how the method can help programmers to design portable and efficient parallel applications. It details its application to a farming case study (image threshold) with measured performance data, and compares with programmer's tuned versions in a Pentium cluster.

[1]  Alberto José Proença,et al.  ParC++: a simple extension of C++ to parallel systems , 1998, Proceedings of the Sixth Euromicro Workshop on Parallel and Distributed Processing - PDP '98 -.

[2]  João Luís Sobral,et al.  A Run-Time System for Dynamic Grain Packing , 1999, Euro-Par.

[3]  Akinori Yonezawa,et al.  Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages , 1997, PLDI '97.

[4]  João Luís Sobral,et al.  Dynamic grain-size adaptation on object oriented parallel programming. The SCOOPP approach , 1999, Proceedings 13th International Parallel Processing Symposium and 10th Symposium on Parallel and Distributed Processing. IPPS/SPDP 1999.

[5]  Alberto José Proença,et al.  A Bayesian runtime load manager on a shared cluster , 2001, Proceedings First IEEE/ACM International Symposium on Cluster Computing and the Grid.

[6]  Andrew A. Chien,et al.  Runtime Mechanisms for Efficient Dynamic Multithreading , 1996, J. Parallel Distributed Comput..

[7]  Robert H. Halstead,et al.  Lazy task creation: a technique for increasing the granularity of parallel programs , 1990, LISP and Functional Programming.

[8]  J. Sobral,et al.  A SCOOPP Evaluation on Packing Parallel Objects in Run-Time , 2000, VECPAR.

[9]  Seth Copen Goldstein,et al.  Lazy Threads: Implementing a Fast Parallel Call , 1996, J. Parallel Distributed Comput..