Implementation of the Pipeline Parallel Programming Technique as an HLPCUsage, Usefulness and Performance

  1. Rossainz-Lopez, Mario 1
  2. Capel-Tuñon, Manuel I. 2
  3. Carrasco-Limón, Odón 1
  4. Hernández-Polo, Fernando 1
  5. Sánchez-Rinza, Bárbara 1
  1. 1 Benemérita Universidad Autónoma de Puebla
    info

    Benemérita Universidad Autónoma de Puebla

    Heróica Puebla de Zaragoza, México

    ROR https://ror.org/03p2z7827

  2. 2 Universidad de Granada
    info

    Universidad de Granada

    Granada, España

    ROR https://ror.org/04njjy449

Revista:
Annals of Multicore and GPU Programming: AMGP

ISSN: 2341-3158

Año de publicación: 2017

Volumen: 4

Número: 1

Páginas: 9-22

Tipo: Artículo

Otras publicaciones en: Annals of Multicore and GPU Programming: AMGP

Resumen

This article presents the pipeline communication/interaction pattern for concurrent, parallel and distributed systems as a high-level parallel composition (HLPC) and discusses its usefulness for deriving parallel versions of sequential algorithms. In particular, we provide examples of the parallel solution for the following problems: adding numbers, sorting numbers and solving a system of linear equations. An approach based on structured parallelism and the parallel object concept is used to solve these problems. In its generic pattern, the pipeline pattern is shown as an HLPC that deploys three types of parallel objects (a manager, various stages and a collector) which are interconnected to form the pipeline processing structure. We also use a method to systematically create the HLPC pipeline and solve this type of problem. Each pipeline instance must be able to handle predefined synchronization restrictions between processes (maximum parallelism, mutual exclusion and synchronization of the producer-consumer type, the use of synchronous, asynchronous and future asynchronous communication, etc.). Finally, the article presents the performance of pipeline HLPC-based implementations of parallel algorithms for solving the problems raised in the paper by using exclusive CPUs.

Referencias bibliográficas

  • Corradi, A, Leonardo, L., Zambonelli, F.: Experiences toward an Object-Oriented Approach to Structured Parallel Programming. DEIS technical report no. DEIS-LIA-95-007. (1995).
  • Brinch Hansen: Model Programs for Computational Science, A programming methodology for multicomputers. Concurrency, Practice and Experience, Volume 5, Number 5. (1993).
  • Darlington, et al.: Parallel Programming Using Skeleton Functions. Proceedings PARLE’93, Munich (1993).
  • Rossainz, M., Capel, M.: A Parallel Programming Methodology using Communication Patterns named CPANS or Composition of Parallel Object.20TH European Modeling \& Simulation. Italy (2008).
  • Rossainz, M., Capel M.: Design and implementation of communication patterns using parallel objects. International Journal of Simulation and Process Modelling. Volume 12, No.1, Pp: 69-91. ISSN: 1740-2131, (2017).
  • Robbins, K. A., Robbins S.: UNIX Programación Práctica. Guía para la concurrencia, la comunicación y los multihilos. Prentice Hall. (1999).
  • Roosta, Séller: Parallel Processing and Parallel Algorithms. Theory and Computation. Springer (1999).
  • Wilkinson B., Allen M: Parallel Programming. Techniques and Applications Using Networked Workstations and Parallel Computers”. Prentice-Hall. U.S.A. (1999).
  • Corradi A., Leonardi L.: PO Constraints as tools to synchronize active objects. Pp: 42-53. Journal Object Oriented Programming 10. (1991).
  • Danelutto, M.; Orlando, S; et al.: Parallel Programming Models Based on Restricted Computation Structure Approach. Technical Report-Dpt. Informatica. Universitá de Pisa (1999).
  • Rossainz M., Pineda I., Dominguez P.: Análisis y Definición del Modelo de las Composiciones Paralelas de Alto Nivel llamadas CPANs. Modelos Matemáticos y TIC: Teoría y Aplicaciones. Dirección de Fomento Editorial. ISBN 987-607-487-834-9. Pp. 1-19. México. (2014).
  • Almeida F., Giménez D., Mantas J.M., Vidal A.M.: Introducción a la Programación Paralela". Paraninfo CENAGE Learning. (2008).
  • Blelloch, Guy E.: Programming Parallel Algorithms. Comunications of the ACM, Vol. 39, No. 3 (1996)
  • Butenhof, D. R. “Programming with POSIX Threads”. Addison Wesley. 1997.
  • Arjomandi E., OFarrell W.G., Wilson G. V.: An Object-Oriented Communication Mechanism for Parallel Systems. Conference on Object-Oriented Technologies. Toronto, Ontario, Canada, 1996. USENIX http://www.usenix.org