Runtime verification with minimal intrusion through parallelism

Runtime verification is a monitoring technique to gain assurance about well-being of a program at run time. Most existing approaches use sequential monitors; i.e., when the state of the program with respect to an event of interest changes, the monitor interrupts the program execution, evaluates a set of logical properties, and finally resumes the program execution. In this paper, we propose a GPU-based method for design and implementation of monitors that enjoy two levels of parallelism: the monitor (1) works along with the program in parallel, and (2) evaluates a set of properties in a parallel fashion as well. Our parallel monitoring algorithms effectively exploit the many-core platform available in the GPU. In addition to parallel processing, our approach benefits from a true separation of monitoring and functional concerns, as it isolates the monitor in the GPU. Thus, our monitoring approach incurs minimal intrusion, as executing monitoring tasks take place in a different computing hardware from execution of the program under inspection. Our method is fully implemented for parametric and non-parametric 3-valued linear temporal logic. Our experimental results show significant reduction in monitoring overhead, monitoring interference, and power consumption due to leveraging the GPU technology. In particular, we observe that our parallel verification algorithms are indeed scalable.

[1]  Matthew Arnold,et al.  A concurrent dynamic analysis framework for multicore hardware , 2009, OOPSLA 2009.

[2]  Martin Leucker,et al.  Runtime Verification for LTL and TLTL , 2011, TSEM.

[3]  Dongyun Jin,et al.  MAKING RUNTIME MONITORING OF PARAMETRIC PROPERTIES PRACTICAL , 2012 .

[4]  Felix Klaedtke,et al.  Scalable Offline Monitoring , 2014, RV.

[5]  Grigore Rosu,et al.  Efficient monitoring of parametric context-free patterns , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[6]  Steve Goddard,et al.  Predictable Runtime Monitoring , 2009, 2009 21st Euromicro Conference on Real-Time Systems.

[7]  Mathieu Klein,et al.  MapReduce for Parallel Trace Validation of LTL Properties , 2012, RV.

[8]  Jan Holub,et al.  On Parallel Implementations of Deterministic Finite Automata , 2009, CIAA.

[9]  Sebastian Fischmeister,et al.  Sampling-Based Runtime Verification , 2011, FM.

[10]  Grigore Rosu,et al.  Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems , 2008, 2008 Real-Time Systems Symposium.

[11]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[12]  Amir Pnueli,et al.  PSL Model Checking and Run-Time Verification Via Testers , 2006, FM.

[13]  Gurindar S. Sohi,et al.  A programmable co-processor for profiling , 2001, Proceedings HPCA Seventh International Symposium on High-Performance Computer Architecture.

[14]  Yi Zhang,et al.  RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties , 2014, RV.

[15]  Leonardo Mariani,et al.  Run-Time Verification , 2004, Model-Based Testing of Reactive Systems.

[16]  Dimitra Giannakopoulou,et al.  Automata-based verification of temporal properties on running programs , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[17]  Johann Schumann,et al.  Iowa State University From the SelectedWorks of Kristin Yvonne Rozier 2014 Runtime Observer Pairs and Bayesian Network Reasoners On-board FPGAs : Flight-Certifiable System Health Management for Embedded Systems , 2017 .

[18]  Sebastian Fischmeister,et al.  RiTHM: a tool for enabling time-triggered runtime verification for C programs , 2013, ESEC/FSE 2013.

[19]  Radu Grosu,et al.  Aspect-Oriented Instrumentation with GCC , 2010, RV.

[20]  Eric Bodden Efficient hybrid typestate analysis by determining continuation-equivalent states , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[21]  Eric Bodden,et al.  Clara: A Framework for Partially Evaluating Finite-State Runtime Monitors Ahead of Time , 2010, RV.

[22]  Grigore Rosu,et al.  Java-MOP: A Monitoring Oriented Programming Environment for Java , 2005, TACAS.

[23]  Radu Grosu,et al.  Software monitoring with controllable overhead , 2010, International Journal on Software Tools for Technology Transfer.

[24]  Radu Grosu,et al.  Aspect-Oriented Instrumentation with GCC Appears in the Proceedings of the First International Conference on Runtime Verification (RV 2010) , 2010 .

[25]  Serdar Tasiran,et al.  Rethinking Runtime Verification on Hundreds of Cores: Challenges and Opportunities , 2011 .

[26]  Orna Kupferman,et al.  Model Checking of Safety Properties , 1999, CAV.

[27]  Sebastian Fischmeister,et al.  Time-triggered runtime verification , 2013, Formal Methods Syst. Des..