TU Darmstadt / ULB / TUbiblio

Automatic Data Dependence Analysis by Deductive Verification

Heydari Tabar, Asmae (2024)
Automatic Data Dependence Analysis by Deductive Verification.
Technische Universität Darmstadt
doi: 10.26083/tuprints-00026722
Dissertation, Erstveröffentlichung, Verlagsversion

Kurzbeschreibung (Abstract)

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.

Typ des Eintrags: Dissertation
Erschienen: 2024
Autor(en): Heydari Tabar, Asmae
Art des Eintrags: Erstveröffentlichung
Titel: Automatic Data Dependence Analysis by Deductive Verification
Sprache: Englisch
Referenten: Hähnle, Prof. Dr. Reiner ; Rümmer, Prof. Dr. Philipp
Publikationsjahr: 6 August 2024
Ort: Darmstadt
Kollation: xxv, 164 Seiten
Datum der mündlichen Prüfung: 24 April 2024
DOI: 10.26083/tuprints-00026722
URL / URN: https://tuprints.ulb.tu-darmstadt.de/26722
Kurzbeschreibung (Abstract):

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.

Alternatives oder übersetztes Abstract:
Alternatives AbstractSprache

Im Bereich des High-Performance Computing (HPC) kommt der Parallelisierung von Programmen eine große Bedeutung zu. Die Richtigkeit der Parallelisierung hängt jedoch vom zuverlässigen Ausschluss bestimmter Datenabhängigkeiten ab, beispielsweise von Read-After-Write-Abhängigkeiten, bei denen ein Lesezugriff auf einen Schreibzugriff auf einen bestimmten Speicherort folgt. Es ist zwingend erforderlich, dass Datenabhängigkeitsanalysen nicht nur korrekt, sondern auch so präzise wie möglich sind, um jede Gelegenheit zur Parallelisierung zu nutzen.

Während in der HPC-Community verschiedene statische, dynamische und hybride Analyseansätze vorgeschlagen wurden, basierte keiner auf Programmlogik und deduktiver Verifizierung, trotz der erheblichen Vorteile, die dieser Ansatz bietet, einschließlich Korrektheit, Präzision und Modularität.

In dieser Arbeit stellen wir einen automatischen, korrekten und hochpräzisen Ansatz zur Generierung von Datenabhängigkeiten basierend auf deduktiver Verifizierung vor. Wir definieren eine Programmlogik basierend auf einer präzisen Semantik für Datenabhängigkeiten. Da Schleifen in der Regel die Hauptquelle der Parallelisierung in HPC-Anwendungen sind, statten wir unseren Ansatz mit einer automatischen Technik zur Erzeugung von Schleifeninvarianten in derselben Programmlogik aus. Um eine vollständige Automatisierung zu erreichen, integrieren wir eine Prädikatenabstraktion, die auf die Anforderungen der Datenabhängigkeitsanalyse zugeschnitten ist. Um so viel Präzision wie möglich beizubehalten, verallgemeinern wir die logikbasierte symbolische Ausführung, um abstrakte Datenabhängigkeitsprädikate zu berechnen.

Der vorgestellte Ansatz wurde protptypisch implementiert und zeigt, dass eine vollautomatische Datenabhängigkeitsanalyse auf Basis deduktiver Verifizierung machbar ist und eine vielversprechende Alternative zu den im HPC üblicherweise verwendeten Abhängigkeitsanalysen darstellt. Wir implementierten unseren Ansatz für Java auf einem deduktiven Verifizierungstool und führten Evaluierungen durch, die seine Fähigkeit demonstrierten, hochpräzise Datenabhängigkeiten für repräsentativen Code zu analysieren, der aus HPC-Anwendungen extrahiert wurde.

Deutsch
Status: Verlagsversion
URN: urn:nbn:de:tuda-tuprints-267225
Sachgruppe der Dewey Dezimalklassifikatin (DDC): 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Software Engineering
Hinterlegungsdatum: 06 Aug 2024 12:16
Letzte Änderung: 07 Aug 2024 09:58
PPN:
Referenten: Hähnle, Prof. Dr. Reiner ; Rümmer, Prof. Dr. Philipp
Datum der mündlichen Prüfung / Verteidigung / mdl. Prüfung: 24 April 2024
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen