Abstract
In recent years, OpenACC has been used in many supercomputers and attracted many non-computer science specialists for parallelizing their programs in different scientific fields, including weather forecasting and simulations. OpenACC is a high-level programming model that supports parallelism and is easy to learn to use by adding high-level directives without considering too many low-level details. Testing parallel programs is a difficult task, made even harder if using programming models, especially if they have been badly programmed. If so, it will be challenging to detect their runtime errors as well as their causes, whether the error is from the user source code or from the programming model directives. Even when these errors are detected and the source code modified, we cannot guarantee that the errors have been corrected or are still hidden. There are many tools and studies that have investigated several programming models for identifying and detecting related errors. However, OpenACC has not been targeted clearly in any testing tool or previous studies, even though OpenACC has many benefits and features that could lead to increasing use in achieving parallel systems with less effort. In this paper, we enhance ACC_TEST with the ability to test OpenACC-based programs and detect runtime errors by using hybrid-testing techniques that enhance error coverage occurring in OpenACC as well as overheads and testing time.
Highlights
OpenACC has been increasingly used in many supercomputers, including Summit [1], which is the top supercomputer in the world
We studied more than 50 testing tools [12] and classified them according to the used testing techniques, the targeted programming models, and the runtime errors
We evaluate ACC_TEST’s ability to detect each type of OpenACC error fully or partially, where full detection means that our used approach can detect this error, while partial detection means that ACC_TEST can detect some cases, while other cases need to be tested during runtime or investigated with more than static testing
Summary
OpenACC has been increasingly used in many supercomputers, including Summit [1], which is the top supercomputer in the world. It will be challenging to detect their runtime errors as well as their causes as to whether the error comes from the user source code or from the programming model directives. As a part of our previous work [4]–[7], we proposed and created a parallel hybrid-testing tool named ACC_TEST that targeted programs built in a heterogeneous architecture and covering different errors. We aim to achieve hybrid-testing techniques for detecting errors in the dual-programming models MPI + OpenACC at the end of our project. We enhance ACC_TEST to test OpenACC-based programs and detect runtime errors by using hybrid-testing techniques. Our paper has been structured as the following: Sections 2 will discuss the literature review, including OpenACC overview and related work.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
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.