skip to main content
research-article
Free Access

Making parallel programs reliable with stable multithreading

Published:01 March 2014Publication History
Skip Abstract Section

Abstract

Stable multithreading dramatically simplifies the interleaving behaviors of parallel programs, offering new hope for making parallel programming easier.

References

  1. Asanovic, K., Bodik, R., Demmel, J., Keaveny, T., Keutzer, K., Kubiatowicz, J., Morgan, N., Patterson, D., Sen, K., Wawrzynek, J., Wessel, D., and Yelick, K. A view of the parallel computing landscape. Commun. ACM 52, 10 (Oct. 2009), 56--67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Aviram, A., Weng, S.-C., Hu, S., and Ford, B. Efficient system-enforced deterministic parallelism. Commun. ACM 55, 5 (May 2012), 111--119. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ball, T. and Rajamani, S.K. Automatically validating temporal safety properties of interfaces. In Proceedings of the Eighth International SPIN Workshop on Model Checking of Software (Toronto, May 19--20, 2001), 103--122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bergan, T., Anderson, O., Devietti, J., Ceze, L., and Grossman, D. CoreDet: A compiler and runtime system for deterministic multithreaded execution. In Proceedings of the 15th International Conference on Architecture Support for Programming Languages and Operating Systems (Pittsburgh, PA, Mar. 13--17). ACM Press, New York, 2010, 53--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Berger, E., Yang, T., Liu, T., Krishnan, D., and Novark, A. Grace: Safe and efficient concurrent programming. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (Orlando, FL, Oct. 25--29). ACM Press, New York, 2009, 81--96.Google ScholarGoogle Scholar
  6. Bessey, A., Block, K., Chelf, B., Chou, A., Fulton, B., Hallem, S., Henri-Gros, C., Kamsky, A., McPeak, S., and Engler, D. A few billion lines of code later: Using static analysis to find bugs in the real world. Commun. ACM 53, 2 (Feb. 2010), 66--75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bocchino, Jr., R.L., Adve, V.S., Dig, D., Adve, S.V., Heumann, S., Komuravelli, R., Overbey, J., Simmons, P., Sung, H., and Vakilian, M. A type and effect system for deterministic parallel Java. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (Orlando, FL, Oct. 25--29). ACM Press, New York, 2009, 97--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cantrill, B. and Bonwick, J. Real-world concurrency. Commun. ACM 51, 11 (Nov. 2008), 34--39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Clarke, E., Grumberg, O., and Peled, D. Model Checking. MIT Press, Cambridge, MA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cui, H., Wu, J., Tsai, C.-C., and Yang, J. Stable deterministic multithreading through schedule memorization. In Proceedings of the Ninth Symposium on Operating Systems Design and Implementation. USENIX Association, Berkeley, CA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cui, H., Wu, J., Gallagher, J., Guo, H., and Yang, J. Efficient deterministic multithreading through schedule relaxation. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles. ACM Press, New York, 2011, 337--351. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Devietti, J., Lucia, B., Ceze, L., and Oskin, M. DMP: Deterministic shared memory multiprocessing. In Proceedings of the 14th International Conference on Architecture Support for Programming Languages and Operating Systems (Washington, D.C., Mar. 7--11). ACM Press, New York, 2009, 85--96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Lee, E.A. The problem with threads. Computer 39, 5 (May 2006), 33--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Liu, T., Curtsinger, C., and Berger, E.D. DTHREADS: Efficient deterministic multithreading. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles (Cascais, Portugal, Oct. 23--26). ACM Press, New York, 2011, 327--336. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Lu, S., Park, S., Seo, E., and Zhou, Y. Learning from mistakes: A comprehensive study on real-world concurrency bug characteristics. In Proceedings of the 13th International Conference on Architecture Support for Programming Languages and Operating Systems (Seattle, Mar. 1--5). ACM Press, New York, 2008, 329--339. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Musuvathi, M., Qadeer, S., Ball, T., Basler, G., Nainar, P.A., and Neamtiu, I. Finding and reproducing Heisenbugs in concurrent programs. In Proceedings of the Eighth Symposium on Operating Systems Design and Implementation (San Diego, Dec. 8--10). USENIX Association, Berkeley, CA, 2008, 267--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Nethercote, N. and Seward, J. Valgrind: A framework for heavyweight dynamic binary instrumentation. In Proceedings of the ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (San Diego, June 11--13). ACM Press, New York, 2007, 89--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. O'Hanlon, C. A conversation with John Hennessy and David Patterson. Queue 4, 10 (Dec. 2006), 14--22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Olszewski, M., Ansel, J., and Amarasinghe, S. Kendo: Efficient deterministic multithreading in software. In Proceedings of the 14th International Conference on Architecture Support for Programming Languages and Operating Systems (Washington, D.C., Mar. 9--11). ACM Press, New York, 2009, 97--108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Shao, Z. Certified software. Commun. ACM 53, 12 (Dec. 2010), 56--66.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Wu, J., Cui, H., and Yang, J. Bypassing races in live applications with execution filters. In Proceedings of the Ninth Symposium on Operating Systems Design and Implementation (Vancouver, Canada, Oct. 4--6). USENIX Association, Berkeley, CA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Wu, J., Tang, Y., Hu, G., Cui, H., and Yang, J. Sound and precise analysis of parallel programs through schedule specialization. In Proceedings of the ACM SIGPLAN 2012 Conference on Programming Language Design and Implementation (Beijing, June 11--16). ACM Press, New York, 2012, 205--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Xiong, W., Park, S., Zhang, J., Zhou, Y., and Ma, Z. Ad hoc synchronization considered harmful. In Proceedings of the Ninth Symposium on Operating Systems Design and Implementation (Vancouver, Canada, Oct. 4--6). USENIX Association, Berkeley, CA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Yang, J., Cui, A., Stolfo, S., and Sethumadhavan, S. Concurrency attacks. In Proceedings of the Fourth USENIX Workshop on Hot Topics in Parallelism (Berkeley, CA, June 7--8). USENIX Association, Berkeley, CA, 2012, 15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Yang, J., Cui, H., and Wu, J. Determinism is overrated: What really makes multithreaded programs hard to get right and what can be done about it? In Proceedings of the Fifth USENIX Workshop on Hot Topics in Parallelism (San Jose, CA, June 24--25). USENIX Association, Berkeley, CA, 2013.Google ScholarGoogle Scholar

Index Terms

  1. Making parallel programs reliable with stable multithreading

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image Communications of the ACM
                Communications of the ACM  Volume 57, Issue 3
                March 2014
                99 pages
                ISSN:0001-0782
                EISSN:1557-7317
                DOI:10.1145/2566590
                • Editor:
                • Moshe Y. Vardi
                Issue’s Table of Contents

                Copyright © 2014 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 March 2014

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article
                • Popular
                • Refereed

              PDF Format

              View or Download as a PDF file.

              PDFChinese translation

              eReader

              View online with eReader.

              eReader

              HTML Format

              View this article in HTML Format .

              View HTML Format