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

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)181
  • Downloads (Last 6 weeks)23
Reflects downloads up to 06 Nov 2024

Other Metrics

Citations

Cited By

View all

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

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media