A Parallel Hybrid-Testing Tool Architecture for a Dual-Programming Model
Journal Title: International Journal of Advanced Computer Science & Applications - Year 2019, Vol 10, Issue 4
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.
Authors and Affiliations
Ahmed Mohammed Alghamdi, Fathy Elbouraey Eassa
Probabilistic Distributed Algorithm for Uniform Election in Triangular Grid Graphs
Probabilistic algorithms are designed to handle problems that do not admit deterministic effective solutions. In the case of the election problem, many algorithms are available and applicable under appropriate assumption...
A Framework for Improving the Performance of Ontology Matching Techniques in Semantic Web
Ontology matching is the process of finding correspondences between semantically related entities of different ontologies. We need to apply this process to solve the heterogeneity problems between different ontolog...
Facial Expression Recognition Using 3D Convolutional Neural Network
This paper is concerned with video-based facial expression recognition frequently used in conjunction with HRI (Human-Robot Interaction) that can naturally interact between human and robot. For this purpose, we design a...
Hybrid Texture based Classification of Breast Mammograms using Adaboost Classifier
Breast cancer is one of the most dangerous, leading and widespread cancers in the world especially in women. For breast analysis, digital mammography is the most suitable tool used to take mammograms for detection of can...
Comparing the Usability of M-Business and M-Government Software in Saudi Arabia
This study presents a usability assessment of mobile presence in the Kingdom of Saudi Arabia (KSA), with a particular focus on the variance between M-business and M-government presence. In fact, a general hypothesis was...