A Survey of Parallel Programming Models and Tools in the Multi and Many-Core Era
In this paper, the authors present a survey of the different parallel programming models and tools available today with special consideration to their suitability for high performance computing. Thus, they review the shared and distributed memory approaches, as well as the current heterogeneous parallel programming model. In addition, they 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 paper is completed by considering languages with specific parallel support and the distributed programming paradigm.