Exploiting Inherent Task-Based Parallelism in Object-Oriented Programming

While object-oriented programming (OOP) and parallelism originated as separate areas, there have been many attempts to bring those paradigms together. Few of them, though, meet the challenge of programming for parallel architectures and distributed platforms: offering good development expressiveness while not hindering application performance. This work presents the introduction of OOP in a parallel programming model for Java applications which targets productivity. In this model, one can develop a Java application in a totally sequential fashion, without using any new library or language construct, thus favouring programmability. We show how this model offers a good trade-off between ease of programming and runtime performance. A comparison with other approaches is provided, evaluating the key aspects of the model and discussing some results for a set of the NAS parallel benchmarks.

[1]  A. A. Radenski,et al.  Object-Oriented Programming and Parallelism , 2002 .

[2]  Guy E. Blelloch,et al.  A practical comparison of N-body algorithms , 1994, Parallel Algorithms.

[3]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[4]  Jesús Labarta,et al.  ClusterSs: a task-based programming model for clusters , 2011, HPDC '11.

[5]  David Flanagan,et al.  Java in a Nutshell , 1996 .

[6]  Ian T. Foster,et al.  Globus: a Metacomputing Infrastructure Toolkit , 1997, Int. J. High Perform. Comput. Appl..

[7]  Juan Touriño,et al.  NPB-MPJ: NAS Parallel Benchmarks Implementation for Message-Passing in Java , 2009, 2009 17th Euromicro International Conference on Parallel, Distributed and Network-based Processing.

[8]  Rosa M. Badia,et al.  COMP Superscalar: Bringing GRID Superscalar and GCM Together , 2008, 2008 Eighth IEEE International Symposium on Cluster Computing and the Grid (CCGRID).

[9]  David H. Bailey,et al.  The Nas Parallel Benchmarks , 1991, Int. J. High Perform. Comput. Appl..

[10]  Denis Caromel,et al.  Towards Seamless Computing and Metacomputing in Java , 1998, Concurr. Pract. Exp..

[11]  Edward F. Walker,et al.  Asynchronous remote operation execution in distributed systems , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[12]  Atanas Radenski Object-Oriented Programming and Parallelism: Introduction , 1996, Inf. Sci..

[13]  Michael Philippsen,et al.  A survey of concurrent object-oriented languages , 2000, Concurr. Pract. Exp..

[14]  Krishna M. Kavi,et al.  Parallelism in object-oriented languages: a survey , 1992, IEEE Software.

[15]  Jacques Cohen,et al.  Concurrent object-oriented programming , 1993, CACM.