MASc seminar - Shay Berkovich

Friday, January 4, 2013 11:00 am - 11:00 am EST (GMT -05:00)

Speaker

Shay Berkovich

Title

Parallel Run-Time Verification

Abstract

Run-time verification is a technique to reason about the program correctness. Given a set of desirable properties and the program trace from the inspected program as an input, the monitor module verifies that properties hold on this trace. As this process happens at a run time, one of the major drawbacks of run-time verification is the execution overhead caused by monitoring activity. In this thesis, we intend to minimize this overhead by presenting a collection of parallel verification algorithms. The algorithms verify properties correctness in a parallel fashion, decreasing the verification time by dispersion of computationally intensive calculations over multiple cores (first level of parallelism). We designed the algorithms with the intention to exploit a data-level parallelism, thus specifically suitable to run on Graphics Processing Units (GPUs), although can be utilized on multi-core platforms as well. Running the inspected program and the monitor module on separate platforms (second level of parallelism) results in several advantages: minimization of interference between the monitor and the program, faster processing for non-trivial computations, and even significant reduction in power consumption (when the monitor is running on GPU).

This work also aims to provide a solution to automated run-time verification of C programs by implementing the aforementioned set of algorithms in the monitoring tool called GPU-based online and offline Monitoring Framework (GooMF). The ultimate goal of GooMF is to supply developers with an easy-to-use and flexible verification API that requires minimal knowledge of formal languages and techniques.

Supervisor

Sebastian Fischmeister