The development of microprocessors design has been shifting to multi-core architectures. Therefore, it is expected that parallelism will play a significant role in future generations of applications. Throughout the years, there has been a myriad number of parallel programming models proposed. In choosing a parallel programming model, not only the performance aspect is important, but also qualitative the aspect of how well parallelism is abstracted to developers. A model with a well abstraction of parallelism leads to a higher application-development productivity. In this paper, we propose seven criteria to qualitatively evaluate parallel programming models. Our focus is on how parallelism is abstracted and presented to application developers. As a case study, we use these criteria to investigate six well-known parallel programming models in the HPC community.
In their survey on the parallel programming models, Kasim, March, Zhang, and See (2008), described how parallelism is abstracted and presented to programmers, by investigating six parallel programming models used by the HPC community, namely, Pthreads, OpenMP, CUDA, MPI, UPC, and Fortress REF .
Survey on Parallel Programming Model
NPC
Computer Science