Systematic and scalable testing of concurrent programs

作者: Jiri Simsa , Garth Gibson , Randy Bryant

DOI:

关键词: Scheduling (computing)ScalabilitySoftware engineeringReal-time computingSpace explorationConcurrencyConcurrent computingSystematic testingSoftwareComputer scienceSpeedup

摘要: The challenge this thesis addresses is to speed up the development of concurrent programs by increasing efficiency with which can be tested and consequently evolved. goal generate methods tools that help software engineers increase confidence in correct operation their programs. To achieve goal, advocates testing using a systematic approach capable enumerating possible executions program. The practicality demonstrated presenting novel infrastructure repeatedly executes program test, controlling order events happen so different behaviors explored across test executions. By doing so, circumvents limitations traditional ad-hoc testing, relies on chance discover concurrency errors. However, idea alone does not quite solve problem testing. combinatorial nature number ways execute causes an explosion interleavings these events, referred as state space explosion. To address problem, studies techniques for quantifying extent explores several directions mitigating explosion: parallel exploration, restricted runtime scheduling, abstraction reduction. In course its research pushes practical limits orders magnitude, scaling real-world unprecedented complexity.

参考文章(145)
Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo, Junfeng Yang, Efficient deterministic multithreading through schedule relaxation Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles - SOSP '11. pp. 337- 351 ,(2011) , 10.1145/2043556.2043588
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan, Chord Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications - SIGCOMM '01. ,vol. 31, pp. 149- 160 ,(2001) , 10.1145/383059.383071
Tom Bergan, Owen Anderson, Joseph Devietti, Luis Ceze, Dan Grossman, CoreDet: a compiler and runtime system for deterministic multithreaded execution architectural support for programming languages and operating systems. ,vol. 38, pp. 53- 64 ,(2010) , 10.1145/1735971.1736029
Soyeon Park, Shan Lu, Yuanyuan Zhou, CTrigger Proceeding of the 14th international conference on Architectural support for programming languages and operating systems - ASPLOS '09. ,vol. 37, pp. 25- 36 ,(2009) , 10.1145/1508244.1508249
Bronis R. de Supinski, Jeffrey S. Vetter, Dynamic Software Testing of MPI Applications with Umpire conference on high performance computing (supercomputing). pp. 51- 51 ,(2000) , 10.5555/370049.370462
Scott Shenker, Ali Ghodsi, Matei Zaharia, Andy Konwinski, Anthony D. Joseph, Benjamin Hindman, Ion Stoica, Randy Katz, Mesos: a platform for fine-grained resource sharing in the data center networked systems design and implementation. pp. 295- 308 ,(2011) , 10.5555/1972457.1972488
Gerard J Holzmann, William Slattery Lieberman, Design and validation of computer protocols ,(1991)
Cormac Flanagan, Stephen N. Freund, FastTrack Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation - PLDI '09. ,vol. 44, pp. 121- 133 ,(2009) , 10.1145/1542476.1542490
Antony Rowstron, Peter Druschel, Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems Lecture Notes in Computer Science. ,vol. 2218, pp. 329- 350 ,(2001) , 10.1007/3-540-45518-3_18
Matthew B. Dwyer, Sebastian Elbaum, Suzette Person, Rahul Purandare, Parallel Randomized State-Space Search international conference on software engineering. pp. 3- 12 ,(2007) , 10.1109/ICSE.2007.62