Abstract

High-Performance Computing (HPC) recently has become important in several sectors, including the scientific and manufacturing fields. The continuous growth in building more powerful super machines has become noticeable, and the Exascale supercomputer will be feasible in the next few years. As a result, building massively parallel systems becomes even more important to keep up with the upcoming Exascale-related technologies. For building such systems, a combination of programming models is needed to increase the system's parallelism, especially dual and tri-level programming models to increase parallelism in heterogeneous systems that include CPUs and GPUs. There are several combinations of the dual-programming model; one of them is MPI+ OpenACC. This combination has several features that increase the application’s parallelism concerning heterogeneous architecture and support different platforms with more performance, productivity, and programmability. However, building systems with different programming models are error-prone and difficult and are also hard to test. Also, testing parallel applications is already a difficult task because parallel errors are hard to detect due to the non-determined behavior of the parallel application. Integrating more than one programming model inside the same application makes even it more difficult to test because this integration could come with a new type of errors. Our main contribution is to identify and categorize OpenACC run-time errors and determine their causes with a brief explanation for the first time in research. Also, we proposed a solution for detecting run-time errors in application implemented in the dual-programming model. Our solution based on using hybrid testing techniques to discover real and potential run-time errors. Finally, to the best of our knowledge, there is no parallel testing tool built to test applications programmed by using the dual-programming model MPI + OpenACC or any tri-level programming model or even the OpenACC programming model to detect their run-time errors. Also, OpenACC errors have not been classified or identified before.

Highlights

  • In the past few years, building Exascale systems based on CPU/GPU heterogeneous architecture has become a hot research topic

  • We noted that OpenACC has several advantages and benefits and has been used widely in the past few years, but it has not targeted any testing tools covered in our study

  • We noticed that OpenACC has several advantages and benefits and has been used widely in the past few years by non-computer science specialists, but it has not targeted any testing tools covered in our study

Read more

Summary

Introduction

In the past few years, building Exascale systems based on CPU/GPU heterogeneous architecture has become a hot research topic. The current parallel programming languages are not satisfying the increasing need for creating parallel applications. Parallelism cannot be supported efficiently by the majority of traditional programming languages. Programming models, which are a group of directives and operations used to support parallelism, have been used to add parallelism to the traditional programming languages. There are several programming models with different features and used for various purposes. These programming models include the message passing programming model MPI [1] and the programming model that support the sharedmemory parallelism such as OpenMP [2]. There are programming models that support CPU/GPU heterogeneous systems. The programming models that support heterogeneous parallelism are CUDA [3] and OpenCL [4], as low-level programming models, and OpenACC [5] as a high-level heterogeneous programming model

Objectives
Discussion
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.