5 research outputs found
Automatic Data Dependence Analysis by Deductive Verification
In the realm of High-Performance Computing (HPC), the parallelization of programs holds significant importance. However, the correctness of parallelization hinges on the reliable exclusion of certain data dependences, such as read-after-write dependences, where a read access follows a write access on a given memory location. It is imperative that data dependence analyses are not only correct but also as precise as possible to seize every opportunity for parallelization.
While various static, dynamic, and hybrid analysis approaches have been proposed within the HPC community, none have been based on program logic and deductive verification, despite the significant advantages this approach offers, including soundness, precision, and modularity.
In this thesis, we present an automatic, sound, and highly precise approach to generate data dependences based on deductive verification. We define a program logic based on precise semantics for data dependences. As loops are usually the main source of parallelization in HPC applications, we equip our approach with an automatic loop invariant generation technique in the same program logic. To achieve full automation, we incorporate predicate abstraction tailored to the needs of data dependence analysis. To retain as much precision as possible, we generalize logic-based symbolic execution to compute abstract data dependence predicates.
We provide a prototype demonstrating that fully automatic data dependence analysis based on deductive verification is feasible and is a promising alternative to the dependence analyses commonly used in HPC. Implementing our approach for Java atop a deductive verification tool, we conducted evaluations demonstrating its ability to analyze data dependences highly precisely for representative code extracted from HPC applications
Automated model extraction: From non-deterministic C code to active objects
The C programming language is well-known to have a large amount of underspecified behavior that often results in non-determinism even of sequential programs. In many application areas, not necessarily safety-critical ones, this is highly undesirable. A number of approaches and tools that statically analyze such behavior have been suggested, but they suffer from a high number of false positives and negatives. We present a novel model-based approach to analyzing non-determinism that works by automatic extraction of a faithful model of a given C program in a concurrent active object language. The extracted model renders any non-deterministic behavior of the C program in terms of explicit concurrency. This opens the door to global, semantic analyses. We give a fully formal account of the model extraction process and present an experimental evaluation of its implementation in the model extraction tool C2ABS
Automatic Loop Invariant Generation for Data Dependence Analysis
Parallelization of programs relies on sound and precise analysis of data dependences in the code, specifically, when dealing with loops. State-of-art tools are based on dynamic profiling and static analysis. They tend to over- and, occasionally, to under-approximate dependences. The former misses parallelization opportunities, the latter can change the behavior of the parallelized program. In this paper we present a sound and highly precise approach to generate data dependences based on deductive verification. The central technique is to infer a specific form of loop invariant tailored to express dependences. To achieve full automation, we adapt predicate abstraction in a suitable manner. To retain as much precision as possible, we generalized logic-based symbolic execution to compute abstract dependence predicates. We implemented our approach for Java on top of a deductive verification tool. The evaluation shows that our approach can generate highly precise data dependences for representative code taken from HPC applications
Proceedings of the PhD Symposium at iFM’19on Formal Methods: Algorithms, Tools and Applications (PhD-iFM’19)
Preface:
This research report contains the proceedings of the PhD Symposium at iFM’19 on Formal Methods: Algorithms, Tools and Applications (PhD-iFM’19), which was held on 3 December, 2019 at Western Norway University of Applied Sciences, Bergen, Norway. The program of the symposium consisted of an invited talk by Andreas Griesmayer (ARM, Cambridge, UK) and 11 short presentations. Each short presentation received advices and feedbacks from a senior researcher. Among the 11 short presentations, 5 submitted their contributions in the form of extended abstracts, which were included in this report
Proceedings of the PhD Symposium at iFM’19on Formal Methods: Algorithms, Tools and Applications (PhD-iFM’19)
Preface:
This research report contains the proceedings of the PhD Symposium at iFM’19 on Formal Methods: Algorithms, Tools and Applications (PhD-iFM’19), which was held on 3 December, 2019 at Western Norway University of Applied Sciences, Bergen, Norway. The program of the symposium consisted of an invited talk by Andreas Griesmayer (ARM, Cambridge, UK) and 11 short presentations. Each short presentation received advices and feedbacks from a senior researcher. Among the 11 short presentations, 5 submitted their contributions in the form of extended abstracts, which were included in this report