Content area

Abstract

The growing adoption of supercomputers across various scientific disciplines, particularly by researchers without a background in computer science, has intensified the demand for parallel applications. These applications are typically developed using a combination of programming models within languages such as C, C++, and Fortran. However, modern multi-core processors and accelerators necessitate fine-grained control to achieve effective parallelism, complicating the development process. To address this, developers commonly utilize high-level programming models such as Open Multi-Processing (OpenMP), Open Accelerators (OpenACCs), Message Passing Interface (MPI), and Compute Unified Device Architecture (CUDA). These models may be used independently or combined into dual- or tri-model applications to leverage their complementary strengths. However, integrating multiple models introduces subtle and difficult-to-detect runtime errors such as data races, deadlocks, and livelocks that often elude conventional compilers. This complexity is exacerbated in applications that simultaneously incorporate MPI, OpenMP, and CUDA, where the origin of runtime errors, whether from individual models, user logic, or their interactions, becomes ambiguous. Moreover, existing tools are inadequate for detecting such errors in tri-model applications, leaving a critical gap in development support. To address this gap, the present study introduces a static analysis tool designed specifically for tri-model applications combining MPI, OpenMP, and CUDA in C++-based environments. The tool analyzes source code to identify both actual and potential runtime errors prior to execution. Central to this approach is the introduction of error dependency graphs, a novel mechanism for systematically representing and analyzing error correlations in hybrid applications. By offering both error classification and comprehensive static detection, the proposed tool enhances error visibility and reduces manual testing effort. This contributes significantly to the development of more robust parallel applications for high-performance computing (HPC) and future exascale systems.

Details

1009240
Business indexing term
Title
Error Classification and Static Detection Methods in Tri-Programming Models: MPI, OpenMP, and CUDA
Author
Altalhi, Saeed Musaad 1   VIAFID ORCID Logo  ; Eassa Fathy Elbouraey 2   VIAFID ORCID Logo  ; Sharaf, Sanaa Abdullah 2   VIAFID ORCID Logo  ; Alghamdi, Ahmed Mohammed 3   VIAFID ORCID Logo  ; Almarhabi, Khalid Ali 4   VIAFID ORCID Logo  ; Khalid Rana Ahmad Bilal 5   VIAFID ORCID Logo 

 Department of Computer Science, Faculty of Computing, and Information Technology, King Abdulaziz University, Jeddah 21589, Saudi Arabia, Department of Computer Science and Artificial Intelligence, Umm Al-Qura University, Makkah 21955, Saudi Arabia 
 Department of Computer Science, Faculty of Computing, and Information Technology, King Abdulaziz University, Jeddah 21589, Saudi Arabia 
 Department of Software Engineering, College of Computer Science and Engineering, University of Jeddah, Jeddah 21493, Saudi Arabia 
 Department of Computer Science, College of Computing at Alqunfudah, Umm Al-Qura University, Makkah 21514, Saudi Arabia 
 College of Engineering and Physical Sciences, Aston University, Aston Triangle, Birmingham B4 7ET, UK 
Publication title
Computers; Basel
Volume
14
Issue
5
First page
164
Publication year
2025
Publication date
2025
Publisher
MDPI AG
Place of publication
Basel
Country of publication
Switzerland
Publication subject
e-ISSN
2073431X
Source type
Scholarly Journal
Language of publication
English
Document type
Journal Article
Publication history
 
 
Online publication date
2025-04-28
Milestone dates
2025-03-21 (Received); 2025-04-23 (Accepted)
Publication history
 
 
   First posting date
28 Apr 2025
ProQuest document ID
3211933330
Document URL
https://www.proquest.com/scholarly-journals/error-classification-static-detection-methods-tri/docview/3211933330/se-2?accountid=208611
Copyright
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
Last updated
2025-05-27
Database
ProQuest One Academic