Verification of Parallel Applications
Loading...
Files
Downloads
2
Date issued
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoká škola báňská - Technická univerzita Ostrava
Location
ÚK/Sklad diplomových prací
Signature
201900125
Abstract
This thesis focuses on verification of parallel applications. In particular, applications written in MPI (Message Passing Interface). The text is divided into two parts. The first part describes an implementation of state space verification into the publicly available tool Kaira developed at the Faculty of Electrical Engineering and Computer Science at the Technical University of Ostrava. Kaira is a development environment with various tools for creating parallel applications for distributed memory environments (with the usage of MPI). The implemented verification algorithm is based on standard partial order reduction methods with a particular improvement to handle Kaira specific needs. Specifically, the improvement optimizes verification of systems with transition priorities that are integral to Kaira. The first part of the thesis also contains a description of the parallelization of the verification algorithm. The parallelization is based on a new approach that is tailored to common applications developed in Kaira -- applications usually make computation over given data that can be large. Data are a part of states, hence we should avoid their exchanging among processes. The proposed algorithm reduces it by trying to exchange only the states hashes (states are exchanged only in unnecessary cases in order to achieve good load balancing). The effectiveness of the implemented verification method including scaling of the parallel algorithm is demonstrated on benchmarks utilizing up to 512 processes.
The second part of the thesis describes verification of MPI applications. In particular, an algorithm deals with a non-deterministic behavior that is permitted by the MPI standard. It is allowed to implement some data exchanging functions according to two communication modes -- \emph{eager} or \emph{rendezvous}. It is up to MPI which mode is chosen and the user cannot test it. A correctly written application has to count with the both options since a synchronization in the rendezvous mode can cause a deadlock. The second part of this thesis describes an algorithm that allows verification of an application only with regards to the eager mode, and detects deadlocks introduced by a synchronization that may be missed.
Description
Subject(s)
verification, state space reduction, MPI, parallel verification, non-deterministic synchronization of MPI