Parallel programming frameworks rapidly evolve to meet the performance demands of High Performance Computing (HPC) applications and the concurrent evolution of supercomputing class system architectures. To meet this demand, standards and specifications that outline the semantics and required capabilities of parallel programming models are being developed by committees of government and industry experts and then implemented by third parties. OpenMP and MPI are particularly prominent examples of such programming models and specifications, and are in common use in the HPC world. Comprehensive testing is required to be sure that any given implementation adheres to the published standard. The type and degree of testing depends on the goals of the developers. In particular, commercial implementations developed by companies for specialized applications (like HPC) will have much more stringent requirements than those for general applications. This thesis describes the development of test suites targeted toward a subset of OpenMP and MPI features, namely processor affinity and thread safety, as implemented in Cray compilers and libraries. These tests, the focus of which were robustness, re-usability, and detailed error output, contributed to software quality for the wide range of applications for which Cray compilers are used, and continue to help Cray ensure correctness in their OpenMP and MPI implementations as their compilers and libraries continue to evolve.
OpenMP, MPI, Parallel Programming, High Performance Computing, Software Testing
Level of Degree
Department of Computer Science
First Committee Member (Chair)
Second Committee Member
Klemme, Beverly. "Software Testing of Parallel Programming Frameworks." (2016). https://digitalrepository.unm.edu/cs_etds/54