The Community for Technology Leaders
RSS Icon
Issue No.12 - Dec. (2013 vol.24)
pp: 2407-2417
Yan Cai , City University of Hong Kong, Hong Kong
W.K. Chan , City University of Hong Kong , Hong Kong
Many happened-before-based detectors for debugging multithreaded programs implement vector clocks to incrementally track the casual relations among synchronization events produced by concurrent threads and generate trace logs. They update the vector clocks via vector-based comparison and content assignment in every case. We observe that many such tracking comparison and assignment operations are removable in part or in whole, which if identified and used properly, have the potential to reduce the log traces thus produced. This paper presents our analysis to identify such removable tracking operations and shows how they could be used to reduce log traces. We implement our analysis result as a technique entitled LOFT. We evaluate LOFT on the well-studied PARSEC benchmarking suite and five large-scale real-world applications. The main experimental result shows that on average, LOFT identifies 63.9 percent of all synchronization operations incurred by the existing approach as removable and does not compromise the efficiency of the latter.
Synchronization, Message systems, Algorithm design and analysis, Concurrent computing, Detectors,synchronization, Redundant operation optimization, threads
Yan Cai, W.K. Chan, "Lock Trace Reduction for Multithreaded Programs", IEEE Transactions on Parallel & Distributed Systems, vol.24, no. 12, pp. 2407-2417, Dec. 2013, doi:10.1109/TPDS.2013.13
[1] Apache Httpd 2.3.8, http:/, 2013.
[2] Chromium 18.0.1025.151, http:/, 2013.
[3] Firefox 14.0.1, http://www.mozilla.orgfirefox, 2013.
[4] MySQL 5.0.92, http:/, 2013.
[5] Thunderbird 14.0, http://www.mozilla.orgthunderbird, 2013.
[6] R. Agarwal, L. Wang, and S.D. Stoller, "Detecting Potential Deadlocks with Static Analysis and Run-Time Monitoring," Proc. First Haifa Int'l Conf. Hardware and Software, Verification and Testing, pp. 191-207, 2006.
[7] G. Altekar and I. Stoica, "ODR: Output-Deterministic Replay for Multicore Debugging," Proc. ACM SIGOPS 22nd Symp. Operating Systems Principles (SOSP), pp. 193-206, 2009.
[8] S. Bhansali, W.-K. Chen, S. de Jong, A. Edwards, R. Murray, M. Drinić, D. Mihoˇcka, and J. Chau, "Framework for Instruction-Level Tracing and Analysis of Program Executions," Proc. Second Int'l Conf. Virtual Execution Environments (VEE), pp. 154-163, 2006.
[9] C. Bienia, S. Kumar, J.P. Singh, and K. Li, "The PARSEC Benchmark Suite: Characterization and Architectural Implications," Proc. 17th Int'l Conf. Parallel Architectures and Compilation Techniques (PACT), pp. 72-81, 2008.
[10] M.D. Bond, K.E. Coons, and K.S. Mckinley, "PACER: Proportional Detection of Data Races," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI), pp. 255-268, 2010.
[11] N. Barrow-Williams, C. Fensch, and S. Moore, "A Communication Characterization of SPLASH-2 and PARSEC," Proc. IEEE Int'l Symp. Workload Characterization (IISWC), pp. 86-97, 2009.
[12] Y. Cai and W.K. Chan, "LOFT: Redundant Synchronization Event Removal for Data Race Detection," Proc. IEEE 22nd Int'l Symp. Software Reliability Eng. (ISSRE), pp. 160-169, 2011.
[13] Y. Cai and W.K. Chan, "MagicFuzzer: Scalable Deadlock Detection for Large-Scale Applications," Proc. Int'l Conf. Software Eng. (ICSE), pp. 606-616, 2012.
[14] K.M. Chandy and L. Lamport, "Distributed Snapshots: Determining Global States of Distributed Systems," ACM Trans. Computer Systems, vol. 3, no. 1, pp. 63-75, 1985.
[15] G. Contreras and M. Martonosi, "Characterizing and Improving the Performance of Intel Threading Building Blocks," Proc. Int'l Conf. Parallel Architectures and Compilation Techniques (PACT), pp. 57-66, 2008.
[16] C. Flanagan and S.N. Freund, "FastTrack: Efficient and Precise Dynamic Race Detection," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI), pp. 121-133, 2009.
[17] C. Flanagan and S.N. Freund, "The RoadRunner Dynamic Analysis Framework for Concurrent Programs," Proc. Ninth ACM SIGPLAN-SIGSOFT Workshop Program Analysis for Software Tools and Eng. (PASTE), pp. 1-8, 2010.
[18] C. Flanagan, S.N. Freund, and J. Yi, "Velodrome: A Sound and Complete Dynamic Atomicity Checker for Multithreaded Programs," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI), pp. 293-303, 2008.
[19] D. Geels, G. Altekar, S. Shenker, and I. Stoica, "Replay Debugging for Distributed Applications," Proc. Ann. Conf. USENIX Ann. Technical Conf., pp. 289-300, 2006.
[20] J. Huang and C. Zhang, "An Efficient Static Trace Simplification Technique for Debugging Concurrent Programs," Proc. 18th Int'l Conf. Static Analysis (SAS), pp. 163-179, 2011.
[21] A. Jannesari, K. Bao, V. Pankratius, and W.F. Tichy, "Helgrind+: An Efficient Dynamic Race Detector," Proc. IEEE Int'l Symp Parallel and Distributed Processing (IPDPS), pp. 1-13, 2009.
[22] H. Jula, D. Tralamazza, C. Zamfir, and G. Candea, "Deadlock Immunity: Enabling Systems to Defend Against Deadlocks," Proc. Eighth USENIX Conf. Operating Systems Design and Implementation (OSDI), pp. 295-308, 2008.
[23] Z.F. Lai, S.C. Cheung, and W.K. Chan, "Detecting Atomic-Set Serializability Violations for Concurrent Programs through Active Randomized Testing," Proc. ACM/IEEE 32nd Int'l Conf. Software Eng. (ICSE), pp. 235-244, 2010.
[24] K.H. Lee, Y.H. Zheng, N. Sumner, and X.Y. Zhang, "Toward Generating Reducible Replay Logs," Proc. 32nd ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI), pp. 246-257, 2011.
[25] S. Lu, S. Park, E. Seo, and Y.Y. Zhou, "Learning from Mistakes: A Comprehensive Study on Real World Concurrency Bug Characteristics," Proc. 13th Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS), pp. 329-339, 2008.
[26] C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V.J. Reddi, and K. Hazelwood, "Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI), pp. 191-200, 2005.
[27] L. Lamport, "Time, Clocks, and the Ordering of Events in a Distributed System," Comm. ACM, vol. 21, no. 7, pp. 558-565, 1978.
[28] D. Marino, M. Musuvathi, and S. Narayanasamy, "LiteRace: Effective Sampling for Lightweight Data-Race Detection," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI), pp. 134-143, 2009.
[29] F. Mattern, "Vitual Time and Global States of Distributed Systems," Proc. Workshop Parallel and Distributed Algorithm, pp. 215-226, 1988.
[30] E. Pozniansky and A. Schuster, "Efficient On-the-Fly Data Race Detection in Multithreaded C++ Programs," Proc. Ninth ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPoPP), pp. 179-190, 2003.
[31] S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson, "Eraser: A Dynamic Data Race Detector for Multithreaded Programs," ACM Trans. Computer Systems, vol. 15, no. 4, pp. 391-411, 1997.
[32] K. Serebryany and T. Iskhodzhanov, "Threadsanitizer - Data Race Detection in Practice," Proc. Workshop Binary Instrumentation and Applications (WBIA), pp. 62-71, 2009.
[33] T.W. Sheng, N. Vachharajani, S. Eranian, R. Hundt, W.G. Chen, and W.M. Zheng, "RACEZ: A Lightweight and Non-Invasive Race Detection Tool for Production Applications," Proc. 33rd Int'l Conf. Software Eng. (ICSE), pp. 401-410, 2011.
[34] S. Tallam, C. Tian, R. Gupta, and X.Y. Zhang, "Enabling Tracing of Long-Running Multithreaded Programs via Dynamic Execution Reduction," Proc. Int'l Symp. Software Testing and Analysis (ISSTA), pp. 207-218, 2007.
[35] X.W. Xie and J.L. Xue, "ACCULOCK: Accurate and Efficient Detection of Data Races," Proc. IEEE/ACM Ninth Ann. Int'l Symp. Code Generation and Optimization (CGO), pp. 201-212, 2011.
[36] S. Yoo and M. Harman, "Regression Testing Minimization, Selection and Prioritization: A Survey," Software Testing, Verification and Reliability, to be published.
[37] Y. Yu, T. Rodeheffer, and W. Chen, "RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking," Proc. 20th ACM Symp. Operating Systems Principles (SOSP), pp. 221-234, 2005.
[38] K. Zhai, B.N. Xu, W.K. Chan, and T.H. Tse, "CARISMA: A Context-Sensitive Approach to Race-Condition Sample-Instance Selection for Multithreaded Applications," Proc. Int'l Symp. Software Testing and Analysis (ISSTA), pp. 221-231, 2012.
64 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool