Authors: Mario Rossainz López; Manuel I. Capel
Addresses: Faculty of Computer Science, Autonomous University of Puebla, San Claudio Avenue and South 14th Street, San Manuel, Puebla, Puebla, 72000, Mexico ' Software Engineering Department, College of Informatics and Telecommunications, University of Granada, ETSIIT, Daniel Saucedo Aranda s/n, Granada, 18071, Spain
Abstract: Within an environment of parallel objects, an approach of structured parallel programming with the paradigm of object-orientation is presented here. The proposal includes a programming method based on high level parallel compositions or HLPCs (CPANs in Spanish). C++ classes and CPANs are syntactically alike and differ in concurrency mechanisms. Different parallel programming patterns, synchronisation operations and new constructs like futures have been discussed throughout the paper. To achieve software-reusability, a series of predefined patterns that use object-oriented programming concepts have been presented. Concurrency related constraints on process synchronisation are set by only resorting to maxpar, mutex, sync primitives in the application code. By means of the method application, the implementation of commonly used parallel communication patterns is explained to finally present a library of classes for C++ applications that use POSIX threads.
Keywords: CPANs; high level parallel composition; HLPC; parallel objects; communication patterns; structured parallel programming; concurrent/PO-oriented programming; high performance computing; HPC; parallel programming patterns; object-oriented programming; OOP; software reusability; software reuse; process synchronisation.
International Journal of Simulation and Process Modelling, 2017 Vol.12 No.1, pp.69 - 91
Accepted: 21 Apr 2016
Published online: 12 Mar 2017 *