Uniparallel execution and its uses

作者: Kaushik Veeraraghavan , Jason N. Flinn

DOI:

关键词:

摘要: We introduce uniparallelism: a new style of execution that allows multithreaded applications to benefit from the simplicity uniprocessor while scaling performance with increasing processors. A uniparallel consists thread-parallel execution, where each thread runs on its own processor, and an epoch-parallel multiple time intervals (epochs) program run concurrently. The all threads given epoch single processor; this enables use techniques are effective uniprocessor. To scale cores, ahead generates speculative checkpoints which start future epochs. If these match state produced by at end epoch, speculation is committed output externalized; if they mismatch, recovery can be safely initiated as no has been externalized. We uniparallelism build two novel systems: DoublePlay Frost. benefits efficiency logging (as in constrained only infrequent context-switches need logged recreate order shared-memory accesses), allowing it outperform prior systems guarantee deterministic replay commodity multiprocessors. While traditional methods detect data races analyzing events executed program, Frost introduces new, substantially faster method called outcome-based race detection effects comparing replicas for divergences. Unlike DoublePlay, complementary schedules, set schedules crafted ensure diverge occurs make very likely harmful cause detects divergences outputs memory states epoch. Upon detecting divergence, analyzes replica outcomes diagnose bug selects appropriate strategy masks failure.

参考文章(105)
Kirk Olynyk, John Erickson, Sebastian Burckhardt, Madanlal Musuvathi, Effective data-race detection for the kernel operating systems design and implementation. pp. 151- 162 ,(2010) , 10.5555/1924943.1924954
Srikanth Kandula, Yuanyuan Zhou, Sudarshan M. Srinivasan, Christopher R. Andrews, Flashback: a lightweight extension for rollback and deterministic replay for software debugging usenix annual technical conference. pp. 3- 3 ,(2004)
Fay Chang, Keir Faser, Operating System I/O Speculation: How Two Invocations Are Faster Than One usenix annual technical conference. pp. 325- 338 ,(2003)
E. Pozniansky, A. Schuster, Efficient on-the-fly data race detection in multithreaded C++ programs international parallel and distributed processing symposium. pp. 287- ,(2003) , 10.1109/IPDPS.2003.1213513
Koushik Sen, Gul Agha, A Race-Detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs Lecture Notes in Computer Science. pp. 166- 182 ,(2006) , 10.1007/978-3-540-70889-6_13
George W. Dunlap, Peter M. Chen, Samuel T. King, Debugging operating systems with time-traveling virtual machines usenix annual technical conference. pp. 1- 1 ,(2005)
Tal Garfinkel, Peter M. Chen, Jim Chow, Decoupling dynamic program analysis from execution in virtual environments usenix annual technical conference. pp. 1- 14 ,(2008)
Sam Toueg, Keith Marzullo, Navin Budhiraja, Fred B. Schneider, The primary-backup approach Distributed systems (2nd Ed.). pp. 199- 216 ,(1993)
Horatiu Jula, George Candea, Cristian Zamfir, Daniel Tralamazza, Deadlock immunity: enabling systems to defend against deadlocks operating systems design and implementation. pp. 295- 308 ,(2008) , 10.5555/1855741.1855762
Leblanc, Mellor-Crummey, Debugging Parallel Programs with Instant Replay IEEE Transactions on Computers. ,vol. 36, pp. 471- 482 ,(1987) , 10.1109/TC.1987.1676929