用户名: 密码: 验证码:
Detection of High-Level Synchronization Anomalies in Parallel Programs
详细信息    查看全文
  • 作者:Ali Jannesari (1) (2)

    1. German Research School for Simulation Sciences
    ; Aachen ; Germany
    2. RWTH Aachen University
    ; Aachen ; Germany
  • 关键词:Data race detection ; Parallel programs ; Dynamic analysis ; Correlated variables ; High ; level data races
  • 刊名:International Journal of Parallel Programming
  • 出版年:2015
  • 出版时间:August 2015
  • 年:2015
  • 卷:43
  • 期:4
  • 页码:656-678
  • 全文大小:1,493 KB
  • 参考文献:1. Lu, S., Park, S., Seo, E., Zhou, Y.: Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: ASPLOS XIII: Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York, NY, USA, pp. 329鈥?39 (2008). doi:10.1145/1346281.1346323
    2. Netzer, RHB, Miller, BP (1992) What are race conditions? Some issues and formalizations. ACM Lett. Program. Lang. Syst. 1: pp. 74-88 CrossRef
    3. Raza, A.: A review of race detection mechanisms. In: Grigoriev, D., Harrison, J., Hirsch, E.A. (eds.) CSR, Vol. 3967 of Lecture Notes in Computer Science. Springer, Berlin, pp. 534鈥?43 (2006)
    4. Savage, S, Burrows, M, Nelson, G, Sobalvarro, P, Anderson, T (1997) Eraser : a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15: pp. 391-411 CrossRef
    5. Dinning, A, Schonberg, E (1991) Detecting access anomalies in programs with critical sections. SIGPLAN Not. 26: pp. 85-96 CrossRef
    6. Jannesari, A, Tichy, WF (2013) Library-independent data race detection. IEEE Trans. Parallel Distrib. Syst. PP: pp. 1-13
    7. Jannesari, A., Tichy, W.: Identifying ad-hoc synchronization for enhanced race detection. In: 2010 IEEE International Symposium on Parallel Distributed Processing (IPDPS), pp. 1鈥?0 (2010). doi:10.1109/IPDPS.2010.5470343
    8. Jannesari, A., Bao, K., Pankratius, V., Tichy, W. F., Helgrind+: an efficient dynamic race detector. In: Parallel and Distributed Processing Symposium, International 0, pp. 1鈥?3 (2009). doi:10.1109/IPDPS.2009.5160998
    9. Jannesari, A., Tichy, W.F.: On-the-fly race detection in multi-threaded programs. In: PADTAD 鈥?8: Proceedings of the 6th Workshop on Parallel and Distributed Systems, ACM, New York, NY, USA, pp. 1鈥?0 (2008). doi:10.1145/1390841.1390847
    10. Harrow, J.J.: Runtime checking of multithreaded applications with visual threads. In: Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification, pp. 331鈥?42. Springer, London (2000). http://citeseer.ist.psu.edu/harrow00runtime.html
    11. Pozniansky, E, Schuster, A (2007) Multirace: efficient on-the-fly data race detection in multithreaded c++ programs: research articles. Concurr. Comput. Pract. Exp. 19: pp. 327-340 CrossRef
    12. Yu, Y, Rodeheffer, T, Chen, W (2005) Racetrack: efficient detection of data race conditions via adaptive tracking. SIGOPS Oper. Syst. Rev. 39: pp. 221-234 CrossRef
    13. Hammer, C., Dolby, J., Vaziri, M., Tip, F.: Dynamic detection of atomic-set-serializability violations. In: ICSE 鈥?8: Proceedings of the 30th International Conference on Software Engineering, ACM, New York, NY, USA, pp. 231鈥?40 (2008) doi:10.1145/1368088.1368120
    14. Vaziri, M., Tip, F., Dolby, J.: Associating synchronization constraints with data in an object-oriented language. In: POPL 鈥?6: Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM, New York, NY, USA, pp. 334鈥?45 (2006). doi:10.1145/1111037.1111067
    15. Bernstein, PA, Hadzilacos, V, Goodman, N (1987) Concurrency Control and Recovery in Database Systems. Addison-Wesley, Reading
    16. Lu, S., Park, S., Hu, C., Ma, X., Jiang, W., Li, Z., Popa, R.A., Zhou, Y.: Muvi: automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs. In: SOSP 鈥?7: Proceedings of Twenty-first ACM SIGOPS Symposium on Operating Systems Principles, ACM, New York, NY, USA, pp. 103鈥?16 (2007). doi:10.1145/1294261.1294272
    17. Xu, M, Bod铆k, R, Hill, MD (2005) A serializability violation detector for shared-memory server programs. SIGPLAN Not. 40: pp. 1-14 CrossRef
    18. Collins, J.D.,Tullsen, D.M., Wang, H.: Control flow optimization via dynamic reconvergence prediction. In: MICRO 37: Proceedings of the 37th Annual IEEE/ACM International Symposium on Microarchitecture, IEEE Computer Society, Washington, DC, USA, pp. 129鈥?40 (2004). doi:10.1109/MICRO.2004.13
    19. Lamport, L (1978) Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21: pp. 558-565 CrossRef
    20. Nethercote, N, Seward, J (2007) Valgrind: a framework for heavyweight dynamic binary instrumentation. SIGPLAN Not. 42: pp. 89-100 CrossRef
    21. Nethercote, N., Seward, J.: Valgrind: a program supervision framework. http://valgrind.org/
    22. Butenhof, DR (1997) Programming with POSIX Threads. Professional Computing Series. Addison-Wesley, Reading
    23. Apache http server project, http://www.apache.org/
    24. Data-race-test: a test suite for data race detectors. data-race-test/" class="a-plus-plus">http://code.google.com/p/data-race-test/
    25. Butler, N.: Petridish: Multi-threading for performance in c#. http://www.codeproject.com/Articles/26453/PetriDish-Multi-threading-for-performance-in-C
    26. Reichl, D.: Keepass password safe. http://keepass.info/
    27. Smart thread pool. http://smartthreadpool.codeplex.com/
    28. Microsoft, Code gallery for parallel programs. http://code.msdn.microsoft.com/Samples-for-Parallel-b4b76364
    29. Intel inspector xe 2013. http://software.intel.com/en-us/intel-inspector-xe
    30. Kim, M., Kim, H., Luk, C.-K.: Sd3: A scalable approach to dynamic data-dependence profiling. In: Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 鈥?3, IEEE Computer Society, Washington, DC, USA, pp. 535鈥?46 (2010). doi:10.1109/MICRO.2010.49
    31. Li, Z., Jannesari, A., Wolf, F.: Discovery of potential parallelism in sequential programs. In: Proceedings of the 42nd International Conference on Parallel Processing. PSTI 鈥?3, Washington, DC, USA, IEEE Computer Society, pp. 1004鈥?013 (2013)
  • 刊物类别:Computer Science
  • 刊物主题:Theory of Computation
    Processor Architectures
    Software Engineering, Programming and Operating Systems
  • 出版者:Springer Netherlands
  • ISSN:1573-7640
文摘
In parallel programs concurrency bugs are often caused by unsynchronized accesses to shared memory locations, which are called data races. In order to support programmers in writing correct parallel programs, it is therefore highly desired to have tools on hand that automatically detect such data races. Today, most of these tools only consider unsynchronized read and write operations on a single memory location. Concurrency bugs that involve multiple accesses on a set of correlated variables may be completely missed. Tools may overwhelm programmers with data races on various memory locations, without noticing that the locations are correlated. In this paper, we propose a novel approach to data race detection that automatically infers sets of correlated variables and logical operations by analyzing data and control dependencies. We develop an algorithm that is inspired by lockset analysis and combine it with happens-before analysis to provide the first hybrid, dynamic race detector for correlated variables. We implemented our approach on top of the Valgrind, a framework for dynamic binary instrumentation. Our evaluation confirmed that we can catch data races missed by existing detectors and provide additional information for effective bug fixing.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700