skip to main content
research-article
Free access

Making parallel programs reliable with stable multithreading

Published: 01 March 2014 Publication History

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.
[2]
Aviram, A., Weng, S.-C., Hu, S., and Ford, B. Efficient system-enforced deterministic parallelism. Commun. ACM 55, 5 (May 2012), 111--119.
[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.
[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.
[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.
[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.
[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.
[8]
Cantrill, B. and Bonwick, J. Real-world concurrency. Commun. ACM 51, 11 (Nov. 2008), 34--39.
[9]
Clarke, E., Grumberg, O., and Peled, D. Model Checking. MIT Press, Cambridge, MA, 1999.
[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.
[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.
[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.
[13]
Lee, E.A. The problem with threads. Computer 39, 5 (May 2006), 33--42.
[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.
[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.
[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.
[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.
[18]
O'Hanlon, C. A conversation with John Hennessy and David Patterson. Queue 4, 10 (Dec. 2006), 14--22.
[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.
[20]
Shao, Z. Certified software. Commun. ACM 53, 12 (Dec. 2010), 56--66.
[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.
[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.
[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.
[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.
[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.

Cited By

View all
  • (2024)A Comprehensive Study of Systems Challenges in Visual Simultaneous Localization and Mapping SystemsACM Transactions on Embedded Computing Systems10.1145/367731724:1(1-31)Online publication date: 3-Aug-2024
  • (2022)Understanding and Reaching the Performance Limit of Schedule Tuning on Stable Synchronization DeterminismProceedings of the International Conference on Parallel Architectures and Compilation Techniques10.1145/3559009.3569669(223-238)Online publication date: 8-Oct-2022
  • (2022)The usage of cybernetic in complex software systems and its application to the deterministic multithreadingConcurrency and Computation: Practice and Experience10.1002/cpe.737534:28Online publication date: 31-Oct-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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: 01 March 2014
Published in CACM Volume 57, Issue 3

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Popular
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)388
  • Downloads (Last 6 weeks)58
Reflects downloads up to 01 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)A Comprehensive Study of Systems Challenges in Visual Simultaneous Localization and Mapping SystemsACM Transactions on Embedded Computing Systems10.1145/367731724:1(1-31)Online publication date: 3-Aug-2024
  • (2022)Understanding and Reaching the Performance Limit of Schedule Tuning on Stable Synchronization DeterminismProceedings of the International Conference on Parallel Architectures and Compilation Techniques10.1145/3559009.3569669(223-238)Online publication date: 8-Oct-2022
  • (2022)The usage of cybernetic in complex software systems and its application to the deterministic multithreadingConcurrency and Computation: Practice and Experience10.1002/cpe.737534:28Online publication date: 31-Oct-2022
  • (2021)Stability in Software Engineering: Survey of the State-of-the-Art and Research DirectionsIEEE Transactions on Software Engineering10.1109/TSE.2019.292561647:7(1468-1510)Online publication date: 16-Jul-2021
  • (2020)JSKernel: Fortifying JavaScript against Web Concurrency Attacks via a Kernel-Like Structure2020 50th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN48063.2020.00026(64-75)Online publication date: Jun-2020
  • (2019)Can parallelization save the (computing) world?Advances in Science, Technology and Engineering Systems Journal10.25046/aj0401144:1Online publication date: 2019
  • (2019)Rapid Sharing of Multimedia Contents in Android Devices using Multithreaded Execution Model2019 IEEE 4th Advanced Information Technology, Electronic and Automation Control Conference (IAEAC)10.1109/IAEAC47372.2019.8997896(1107-1110)Online publication date: Dec-2019
  • (2018)Replay without recording of production bugs for service oriented applicationsProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3238186(452-463)Online publication date: 3-Sep-2018
  • (2018)A Heuristic Method of Detecting Data Inconsistency Based on Petri Nets2018 IEEE International Conference on Systems, Man, and Cybernetics (SMC)10.1109/SMC.2018.00045(202-208)Online publication date: 7-Oct-2018
  • (2018)Introducing the explicitly many-processor approachParallel Computing10.1016/j.parco.2018.03.00175(28-40)Online publication date: Jul-2018
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDFChinese translation

eReader

View online with eReader.

eReader

Digital Edition

View this article in digital edition.

Digital Edition

Magazine Site

View this article on the magazine site (external)

Magazine Site

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media