A Parallel Hybrid Testing Technique for Tri-Programming Model-Based Software Systems
Source abstract
Abstract
Recently, researchers have shown increasing interest in combining more than one programming model into systems running on high performance computing systems (HPCs) to achieve exascale by applying parallelism at multiple levels. Combining different programming paradigms, such as Message Passing Interface (MPI), Open Multiple Processing (OpenMP), and Open Accelerators (OpenACC), can increase computation speed and improve performance. During the integration of multiple models, the probability of runtime errors increases, making their detection difficult, especially in the absence of testing techniques that can detect these errors. Numerous studies have been conducted to identify these errors, but no technique exists for detecting errors in three-level programming models. Despite the increasing research that integrates the three programming models, MPI, OpenMP, and OpenACC, a testing technology to detect runtime errors, such as deadlocks and race conditions, which can arise from this integration has not been developed. Therefore, this paper begins with a definition and explanation of runtime errors that result from integrating the three programming models that compilers cannot detect. For the first time, this paper presents a classification of operational errors that can result from the integration of the three models. This paper also proposes a parallel hybrid testing technique for detecting runtime errors in systems built in the C++ programming language that uses the triple programming models MPI, OpenMP, and OpenACC. This hybrid technology combines static technology and dynamic technology, given that some errors can be detected using static techniques, whereas others can be detected using dynamic technology. The hybrid technique can detect more errors because it combines two distinct technologies. The proposed static technology detects a wide range of error types in less time, whereas a portion of the potential errors that may or may not occur depending on the operating environment are left to the dynamic technology, which completes the validation.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Software System Performance and Reliability · Software Testing and Debugging Techniques · Parallel Computing and Optimization Techniques
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (48)
Show source-provided references
1. OpenACC errors classification and static detection techniques10.1109/ACCESS.2019.2935498 ↗
2. Chandra · Parallel Programming in OpenMP · 2000
3. A CUDA-based GPU engine for gprmax: Open source FDTD electromagnetic simulation software10.1016/j.cpc.2018.11.007 ↗
4. A. Munshi, B. Gaster, T. Mattson and D. Ginsburg, “An introduction to OpenCL,” in OpenCL Programming Guide, 1st ed., Upper Saddle River N.J.: Addison-Wesley, pp. 3–5, 2011.
5. Practical parallelization of scientific applications with OpenMP, OpenACC and MPI10.1016/j.jpdc.2021.05.017 ↗
6. MPI-SV: A symbolic verifier for mpi programs
7. Hybrid MPI/OpenMP/OpenACC implementations for the solution of convection-diffusion equations with the HOPMOC method
8. Scalability of an eulerian-lagrangian large-eddy simulation solver with hybrid MPI/OpenMP parallelisation10.1016/j.compfluid.2018.10.013 ↗
9. OpenMP and MPI implementations of an elasto-viscoplastic fast Fourier transform-based micromechanical solver for fast crystal plasticity modeling10.1016/j.advengsoft.2018.09.010 ↗
10. A hybrid MPI/OpenMP parallelization of means algorithms accelerated using the triangle inequality10.1109/ACCESS.2019.2907885 ↗
11. Accelerating an MPI lattice boltzmann code using OpenACC
12. Accelerating spark-based applications with MPI and OpenACC10.1155/2021/9943289 ↗
13. Acceleration of three-dimensional tokamak magnetohydrodynamical code with graphics processing unit and OpenACC heterogeneous parallel programming
14. Accelerating a C++ CFD code with OpenACC
15. Comparing high performance computing accelerator programming models
16. A pattern-based comparison of OpenACC and OpenMP for accelerator computing
17. CCAMP: OpenMP and OpenACC interoperable framework
18. Achieving portability and performance through OpenACC
19. A comprehensive comparison and analysis of OpenACC and OpenMP 4.5 for NVIDIA GPUs
20. Comparative study on edge detection algorithms using OpenACC and OpenMPI on multicore systems
21. MPI runtime error detection with MUST: Advances in deadlock detection10.1155/2013/314971 ↗
22. MPI-SV: A symbolic verifier for MPI programs
23. Symbolic analysis of concurrency errors in openmp programs
24. OmpVerify: Polyhedral analysis for the OpenMP programmer
25. An extended polyhedral model for SPMD programs and its use in static data race detection
26. Using polyhedral analysis to verify openmp applications are data race free
27. Siegel · Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) · 2007 · 4757 · 13
28. Combining static and dynamic validation of MPI collective communications10.1177/1094342014552204 ↗
29. Deadlock detection in MPI programs10.1002/cpe.701 ↗
30. Detecting thread-safety violations in hybrid OpenMP/MPI programs
31. Application level fault recovery: Using fault-tolerant open MPI in a PDE solver
32. Parallel image processing based on CUDA
33. ACC_TEST: Hybrid testing approach for OpenACC-based programs10.1109/ACCESS.2020.2991009 ↗
34. Parallel hybrid testing techniques for the dual-programming models-based programs10.3390/sym12091555 ↗
35. MPIRace-check: Detection of message races in MPI programs
36. ISP: A tool for model checking MPI programs
37. Gmrace: Detecting data races in gpu programs via a low-overhead scheme10.1109/TPDS.2013.44 ↗
38. Comparing model checking and static program analysis: A case study in error detection approaches
39. Symbolic analysis of concurrency errors in openmp programs
40. MPI-CHECK: A tool for checking fortran 90 MPI programs
41. MPI application development using the analysis tool MARMOT
42. A precise predictive analysis for discovering communication deadlocks in MPI programs
43. Detecting race conditions in one-sided communication of MPI programs
44. MPIRace-check v 1.0: A tool for detecting message races in MPI parallel programs
45. Adat: An adaptable dynamic analysis tool for race detection in OpenMP programs
46. Dynamic data race detection for openmp programs
47. Static nonconcurrency analysis of OpenMP programs
48. Ompracer: A scalable and precise static race detector for OpenMP programs