2019
DOI: 10.1007/978-3-030-29400-7_3
|View full text |Cite
|
Sign up to set email alerts
|

Multi-valued Expression Analysis for Collective Checking

Abstract: Determining if a parallel program behaves as expected on any execution is challenging due to non-deterministic executions. Static analyses help to detect all execution paths that can be executed concurrently by identifying multi-valued expressions, i.e. expressions evaluated differently among processes. This can be used to find collective errors in parallel programs. In this paper, we propose a new method that combines a control-flow analysis with a multi-valued expressions detection to find such errors. We im… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
5
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
2
1
1

Relationship

1
3

Authors

Journals

citations
Cited by 4 publications
(5 citation statements)
references
References 32 publications
0
5
0
Order By: Relevance
“…Our software stack is built with LLVM-15 and we used an Eviden OpenMPI implementation of MPI, built in its 4.1.5.2 version. For the experiments, we use RMA-Analyzer integrated in PARCOACH [7], a tool dedicated to the detection of deadlocks caused by an improper use of collective calls in parallel applications. The performance analysis is done with MUST-RMA v1.9.0, available on github 1 .…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…Our software stack is built with LLVM-15 and we used an Eviden OpenMPI implementation of MPI, built in its 4.1.5.2 version. For the experiments, we use RMA-Analyzer integrated in PARCOACH [7], a tool dedicated to the detection of deadlocks caused by an improper use of collective calls in parallel applications. The performance analysis is done with MUST-RMA v1.9.0, available on github 1 .…”
Section: Resultsmentioning
confidence: 99%
“…In this example, the node corresponding to the MPI_Put, ([2...12], 𝑅𝑀𝐴_π‘…π‘’π‘Žπ‘‘) is inserted in the left subtree of the node ([4], πΏπ‘œπ‘π‘Žπ‘™_π‘…π‘’π‘Žπ‘‘). Then, when searching for the intersecting accesses with new access ([7], πΏπ‘œπ‘π‘Žπ‘™_π‘Š π‘Ÿπ‘–π‘‘π‘’), a new access is inserted in the BST. The algorithm works as follow: when a new access 𝑛𝑒𝑀_π‘Žπ‘π‘ is inserted in the BST, if this 𝑛𝑒𝑀_π‘Žπ‘π‘ is intersecting with another access 𝐡𝑆𝑇 _π‘Žπ‘π‘ already present in the BST, three new accesses representing the parts of the intersection of the two…”
mentioning
confidence: 99%
“…This trade-off allows the best of both approches. PARCOACH [2], [3] uses this method to find collectives mismatch. It raises warnings for potential errors with debugging information like the conditionals responsible for them.…”
Section: Related Workmentioning
confidence: 99%
“…After the matching is done, a basic data-flow analysis is performed to find statements that can lead to race conditions inside each overlapping window. Collective mismatch detection is performed by PARCOACH using the algorithm presented in [1] and extended in [3].…”
Section: Static Detection Of Mpi Nonblocking and Persistent Communication Misusesmentioning
confidence: 99%
See 1 more Smart Citation