Skip to main content
Log in

Runtime verification with minimal intrusion through parallelism

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. http://www.khronos.org/opencl/.

  2. In practice, we implement the algorithm iteratively by splitting the program trace into the chunks and feeding them one-by-one to the algorithm. In this case, the output of the current iteration \(\lambda (q_{ result })\) together with tuple \(\mathcal {I}\) becomes the input for the next algorithm iteration. However, for the sake of simplicity, in the formal description we abstract the notion of the chunk and treat the whole program trace as one input.

  3. To access the tool, please visit http://uwaterloo.ca/embedded-software-group/projects/rithm.

  4. A video clip of the actual experiment is available at http://www.youtube.com/watch?v=Db2MifLmap0%26feature=youtu.be .

References

  1. Barre B, Klein M, Soucy-Boivin M, Ollivier PA, Hallé S (2012) MapReduce for parallel trace validation of LTL properties. In: Proceedings of the 3rd international conference on runtime verification (RV), pp 184–198

  2. Basin DA, Caronni G, Ereth S, Harvan M, Klaedtke F, Mantel H (2014) Scalable offline monitoring. In: Proceedings of the 14th international conference on runtime verification (RV), pp 31–47

  3. Bauer A, Leucker M, Schallhart C (2011) Runtime verification for LTL and TLTL. ACM Trans Softw Eng Methodol (TOSEM) 20(4):14:1–14:64

    Article  Google Scholar 

  4. Bodden E (2005) J-lo-a tool for runtime-checking temporal assertions. Master’s thesis, RWTH Aachen university

  5. Bodden E (2010) Efficient hybrid typestate analysis by determining continuation-equivalent states. In: International conference on software engineering (ICSE), pp 5–14

  6. Bodden E, Lam P, Laurie L (2010) Clara: a framework for partially evaluating finite-state runtime monitors ahead of time. In: Rosu G, Sokolsky O (eds) Runtime verification (RV), pp 183–197

  7. Bonakdarpour B, Smolka S (eds) (2014) Proceedings of the 14th international conference on runtime verification (RV)

  8. Bonakdarpour B, Navabpour S, Fischmeister S (2011) Sampling-based runtime verification. In: Butler M, Schulte W (eds) Formal methods (FM), pp 88–102

  9. Bonakdarpour B, Navabpour S, Fischmeister S (2013) Time-triggered runtime verification. Form Methods Syst Des (FMSD) 43(1):29–60

    Article  MATH  Google Scholar 

  10. Chen F, Roşu G (2005) Java-MOP: a monitoring oriented programming environment for java. In: Tools and Algorithms for the construction and analysis of systems (TACAS), pp 546–550

  11. Colin S, Mariani L (2005) Run-time verification. Springer, New York (LNCS 3472, chap 18)

  12. Dwyer MB, Avrunin GS, Corbett JC (1999) Patterns in property specifications for finite-state verification. In: International conference on software engineering (ICSE), pp 411–420

  13. Elmas T, Okur S, Tasiran S (2011) Rethinking runtime verification on hundreds of cores: challenges and opportunities. Tech. Rep. UCB/EECS-2011-74. EECS Department, University of California, Berkeley

  14. Geist J, Rozier KY, Schumann J (2014) Runtime observer pairs and bayesian network reasoners on-board fpgas: flight-certifiable system health management for embedded systems. In: Proceedings of the 14th international conference on runtime verification (RV), pp 215–230

  15. Giannakopoulou D, Havelund K (2001) Automata-based verification of temporal properties on running programs. In: Automated software engineering (ASE), pp 412–416

  16. Ha J, Arnold M, Blackburn SM, McKinley KS (2009) A concurrent dynamic analysis framework for multicore hardware. In: Object-oriented programming, systems, languages, and applications (OOPSLA), pp 155–174

  17. Holub J, Stekr S (2009) On parallel implementations of deterministic finite automata. In: Implementation and application of automata (CIAA), pp 54–64

  18. Huang X, Seyster J, Callanan S, Dixit K, Grosu R, Smolka SA, Stoller SD, Zadok E (2012) Software monitoring with controllable overhead. Softw Tools Technol Transf (STTT) 14(3):327–347

    Article  Google Scholar 

  19. Jin D (2012) Making runtime monitoring of parametric properties practical. PhD thesis, University of Illinois

  20. Kupferman O, Vardi MY (1999) Model checking of safety properties. In: Computer aided verification (CAV), pp 172–183

  21. Legay A, Bensalem S (eds) (2013) Proceedings of the fourth international conference on runtime verification (RV)

  22. Luo Q, Zhang Y, Lee C, Jin D, Meredith PN, erb nu T, Ro u G (2014) Rv-monitor: efficient parametric runtime verification with simultaneous properties. In: Bonakdarpour B, Smolka S (eds) Runtime verification, Lecture notes in computer science, vol 8734, Springer International Publishing, pp 285–300, doi:10.1007/978-3-319-11164-3_24

  23. Meredith P, Jin D, Chen F, Roşu G (2010) Efficient monitoring of parametric context-free patterns. J Autom Softw Eng 17(2):149–180

    Article  Google Scholar 

  24. Navabpour S, Joshi Y, Wu CWW, Berkovich S, Medhat R, Bonakdarpour B, Fischmeister S (2013) RiTHM: a tool for enabling time-triggered runtime verification for c programs. In: ACM international conference on foundations of software engineering (FSE), pp 603–606

  25. Pellizzoni R, Meredith P, Caccamo M, Rosu G (2008) Hardware runtime monitoring for dependable COTS-based real-time embedded systems. In: Real-time systems symposium, pp 481–491

  26. Pnueli A, Zaks A (2006) PSL model checking and run-time verification via testers. In: Symposium on formal methods (FM), pp 573–586

  27. RTCA DO-178B (1992) Software considerations in airborne systems and equipment certification. Radio Technical Commission for Aeronautics (RTCA)

  28. Seyster J, Dixit K, Huang X, Grosu R, Havelund K, Smolka SA, Stoller SD, Zadok E (2010) Aspect-oriented instrumentation with GCC. In: Rosu G, Sokolsky O (eds) Runtime verification (RV), pp 405–420

  29. Zhu H, Dwyer MB, Goddard S (2009) Predictable runtime monitoring. In: Euromicro conference on real-time systems (ECRTS), pp 173–183

  30. Zilles CB, Sohi GS (2001) A programmable co-processor for profiling. In: High performance computer architecture (HPCA), pp 241–253

Download references

Acknowledgments

This research was supported in part by NSERC DG 418396-2012, NSERC Strategic Grant 430575-2012, NSERC DG 357121-2008, ORF-RE03-045, ORF-RE04-036, ORF-RE04-039, CFI 20314, CMC, and the industrial partners associated with these projects.

Conflict of interest

The authors declare that they have no conflict of interest.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Borzoo Bonakdarpour.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Berkovich, S., Bonakdarpour, B. & Fischmeister, S. Runtime verification with minimal intrusion through parallelism. Form Methods Syst Des 46, 317–348 (2015). https://doi.org/10.1007/s10703-015-0226-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-015-0226-3

Keywords

Navigation