• DocumentCode
    1414057
  • Title

    A Survey of Parallel Programming Models and Tools in the Multi and Many-Core Era

  • Author

    Diaz, Javier ; Munoz-Caro, C. ; Nino, A.

  • Author_Institution
    Pervasive Technol. Inst., Indiana Univ., Bloomington, IN, USA
  • Volume
    23
  • Issue
    8
  • fYear
    2012
  • Firstpage
    1369
  • Lastpage
    1386
  • Abstract
    In this work, we present a survey of the different parallel programming models and tools available today with special consideration to their suitability for high-performance computing. Thus, we review the shared and distributed memory approaches, as well as the current heterogeneous parallel programming model. In addition, we analyze how the partitioned global address space (PGAS) and hybrid parallel programming models are used to combine the advantages of shared and distributed memory systems. The work is completed by considering languages with specific parallel support and the distributed programming paradigm. In all cases, we present characteristics, strengths, and weaknesses. The study shows that the availability of multi-core CPUs has given new impulse to the shared memory parallel programming approach. In addition, we find that hybrid parallel programming is the current way of harnessing the capabilities of computer clusters with multi-core nodes. On the other hand, heterogeneous programming is found to be an increasingly popular paradigm, as a consequence of the availability of multi-core CPUs+GPUs systems. The use of open industry standards like OpenMP, MPI, or OpenCL, as opposed to proprietary solutions, seems to be the way to uniformize and extend the use of parallel programming models.
  • Keywords
    distributed memory systems; parallel programming; shared memory systems; MPI; OpenCL; OpenMP; computer clusters; distributed memory approach; distributed memory systems; heterogeneous parallel programming model; high-performance computing; hybrid parallel programming model; multicore CPUs+GPUs systems; multicore nodes; open industry standards; partitioned global address space; shared memory approach; shared memory parallel programming; Computational modeling; Graphics processing unit; Instruction sets; Message systems; Multicore processing; Parallel programming; Parallelism and concurrency; distributed programming; heterogeneous (hybrid) systems.;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/TPDS.2011.308
  • Filename
    6122018