An object-oriented parallel programming language for distributed-memory parallel computing platforms

https://doi.org/10.1016/j.scico.2013.03.014Get rights and content
Under an Elsevier user license
open archive

Highlights

  • The PObC++ language implements the concept of Object-Oriented Parallel Programming (OOPP).

  • OOPP reconciles distributed-memory parallel programming with OO programming principles.

  • OOPP separates concerns about inter-object and inter-process communication.

  • OOPP makes it possible the encapsulation of distributed-memory parallel computations in objects.

  • Performance of PObC++ programs is almost similar to the performance of C++/MPI programs.

Abstract

In object-oriented programming (OOP) languages, the ability to encapsulate software concerns of the dominant decomposition in objects is the key to reaching high modularity and loss of complexity in large scale designs. However, distributed-memory parallelism tends to break modularity, encapsulation, and the functional independence of objects, since parallel computations cannot be encapsulated in individual objects, which reside in a single address space. For reconciling object-orientation and distributed-memory parallelism, this paper introduces OOPP (Object-Oriented Parallel Programming), a style of OOP where objects are distributed by default. As an extension of C++, a widespread language in HPC, the PObC++ language has been designed and prototyped, incorporating the ideas of OOPP.

Keywords

Object-oriented programming languages
Parallel programming languages
Parallel programming techniques
High performance computing

Cited by (0)