skip to main content
research-article
Free access

Memory models: a case for rethinking parallel languages and hardware

Published: 01 August 2010 Publication History

Abstract

Solving the memory model problem will require an ambitious and cross-disciplinary research direction.

References

[1]
Adve, S.V. Designing Memory Consistency Models for Shared-Memory Multiprocessors. PhD thesis. University of Wisconsin-Madison, 1993.
[2]
Adve, S.V. and Gharachorloo, K. Shared memory consistency models: A tutorial. IEEE Computer 29, 12 (1996), 66--76.
[3]
Adve, S.V. and Hill, M.D. Weak ordering---A new definition. In Proceedings of the 17th Intl. Symp. Computer Architecture, 1990, 2--14.
[4]
Allen, M.D., Sridharan, S. and Sohi, G.S. Serialization sets: A dynamic dependence-based parallel execution model. In Proceedings of the Symp. on Principles and Practice of Parallel Programming, 2009.
[5]
Berger, E.D., Yang, T., Liu, T. and Novark, G. Grace: Safe multithreaded programming for C/C++. In Proceedings of the Intl. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, 2009.
[6]
Blundell, C. Martin, M.M.K. and Wenisch, T. Invisifence: Performance-transparent memory ordering in conventional multiprocessors. In Proceedings of the Intl. Symp. on Computer Architecture, 2009.
[7]
Bocchino, R. et al. Parallel programming must be deterministic by default. In Proceedings of the 1st Workshop on Hot Topics in Parallelism, 2009.
[8]
Bocchino. R. et al. A type and effect system for Deterministic Parallel Java. In Proceedings of the Intl. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, 2009.
[9]
Boehm, H.-J., Threads cannot be implemented as a library. In Proceedings of the Conf. on Programming Language Design and Implementation, 2005.
[10]
Boehm, H.-J. Reordering constraints for pthread-style locks. In Proceedings of the 12th Symp. Principles and Practice of Parallel Programming, 2007, 173--182.
[11]
Boehm, H.-J. Threads basics. July 2009; http://www.hpl.hp.com/personal/Hans_Boehm/threadsintro.html.
[12]
Boehm, H.-J. and Adve, S.V. Foundations of the C++ concurrency memory model. In Proceedings of the Conf. on Programming Language Design and Implementation, 2008, 68--78.
[13]
Boyapati, C., Lee, R., and Rinard, M. Ownership types for safe programming: Preventing data races and deadlocks. In Proceedings of the Intl. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, 2002.
[14]
Ceze, L et al. BulkSC: Bulk Enforcement of Sequential Consistency. In Proceedings of the Intl. Symp. on Computer Architecture, 2007.
[15]
Choi, B. et al. DeNovo: Rethinking Hardware for Disciplined Parallelism. In Proceedings of the 2nd Workshop on Hot Topics in Parallelism, June 2010.
[16]
Devietti, J. et al. DMP: Deterministic shared memory processing. In Proceedings of the Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (Mar. 2009), 85--96.
[17]
Elmas, T., Qadeer, S. and Tasiran, S. Goldilocks: A race and transaction-aware Java runtime. In Proceedings of the ACM Conference on Programming Language Design and Implementation, 2007, 245--255.
[18]
Flanagan, C. and Freund, S. FastTrack: Efficient and precise dynamic race detection. In Proceedings of the Conf. on Programming Language Design and Implementation, 2009.
[19]
Frigo, M., Leiserson, C.E. and Randall, K.H. The implementation of the Cilk-5 multithreaded language. In Proceedings of the ACM Conference on Programming Language Design and Implementation, 1998, 212--223.
[20]
Gharachorloo, K. Memory consistency models for shared-memory multiprocessors. Ph.D. thesis, 1996, Stanford University, Stanford, CA.
[21]
Gharachorloo, K., Gupta, A. and Hennessy, J. Two techniques to enhance the performance of memory consistency models. In Proceedings of the Intl. Conf. on Parallel Processing, 1991, I355--I364.
[22]
IEEE and The Open Group. IEEE Standard 1003.1-2001. 2001.
[23]
Intel. Intel Itanium Architecture: Software Developer's Manual, Jan 2006.
[24]
ISO/IEC JTC1/SC22/WG21. ISO/IEC 14882, Programming languages - C++ (final committee draft) 2010; http://www.open-std.org/jtcl/sc22/wg21/docs/papers/2010/n3092.pdf.
[25]
Reinders, J. Intel Threading Building Blocks: Outfitting C++ for Multi-core Parallelism. O'Reilly, 2007.
[26]
Lamport, L. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers C-28, 9 (1979), 690--691.
[27]
Lucia, B. et al. Conflict exceptions: Simplifying concurrent language semantics with precise hardware exceptions for data-races. In Proceedings of the International Symposium on Computer Architecture, 2010.
[28]
Lusk, E. and Yelick, E. Languages for high-productivity computing: The DARPA HPCS language project. Parallel Processing Letters 17, 1 (2007) 89--102.
[29]
Manson, J., Pugh, W. and Adve, S.V. The Java memory model. In Proceedings of the Symp. on Principles of Programming Languages, 2005.
[30]
Musuvathi, M. and Qadeer, S. Iterative context bounding for systematic testing of multithreaded programs. In Proceedings of the ACM Conference on Programming Language Design and Implementation, 2007, 446--455.
[31]
Olszewski, M., Ansel, J., and Amarasinghe, S. Kendo: Efficient deterministic multithreading in software. In Proceedings Intl. Conf. on Architectural Support for Programming Languages and Operating Systems. Mar. 2009.
[32]
Pugh, W. The Java memory model is fatally flawed. Concurrency-Practice and Experience 12, 6 (2000), 445--455.
[33]
Pugh, W. and the JSR 133 Expert Group. The Java memory model (July 2009); http://www.cs.umd.edu/~pugh/java/memoryModel/.
[34]
Rinard, M.C. and Lam, M.S. The design, implementation, and evaluation of Jade. ACM Transactions on Programming Languages and Systems 20, 3 (1998), 483--545.
[35]
Sen, K. Race directed random testing of concurrent programs. In Conf. on Programming Language Design and Implementation, 2008.
[36]
Sevcik, J. and Aspinall, D. On validity of program transformations in the Java memory model. In Proceedings of the European Conference on Object-Oriented Programming, 2008, 27--51.
[37]
Shasha, D and Snir, M. Efficient and correct execution of parallel programs that share memory. ACM Transactions on Programming Languages and Systems 10, 2 (Apr. 1998), 282--312.
[38]
Shpeisman, T. et al. Enforcing isolation and ordering in STM. In Proceedings of the ACM Conference on Programming Language Design and Implementation, 2007.
[39]
The OpenMP ARB. OpenMP application programming interface: Version 3.0. May 2008; http://www.openmp.org/mp-documents/spec30.pdf.
[40]
United States Department of Defense. Reference Manual for the Ada Programming Language: ANSI/MIL-STD-1815A-1983 Standard 1003.1-2001. Springer, 1983.
[41]
Vakilian, M. et al. Inferring method effect summaries for nested heap regions. In Proceedings of the 24th Intl. Conf. on Automated Software Engineering, 2009.

Cited By

View all
  • (2023)CELLO: Compiler-Assisted Efficient Load-Load Ordering in Data-Race-Free Regions2023 32nd International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT58117.2023.00009(1-13)Online publication date: 21-Oct-2023
  • (2021)Safe-by-default Concurrency for Modern Programming LanguagesACM Transactions on Programming Languages and Systems10.1145/346220643:3(1-50)Online publication date: 3-Sep-2021
  • (2020)SmartTrack: efficient predictive race detectionProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385993(747-762)Online publication date: 11-Jun-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Communications of the ACM
Communications of the ACM  Volume 53, Issue 8
August 2010
136 pages
ISSN:0001-0782
EISSN:1557-7317
DOI:10.1145/1787234
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 ACM 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 August 2010
Published in CACM Volume 53, Issue 8

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Popular
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)466
  • Downloads (Last 6 weeks)55
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)CELLO: Compiler-Assisted Efficient Load-Load Ordering in Data-Race-Free Regions2023 32nd International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT58117.2023.00009(1-13)Online publication date: 21-Oct-2023
  • (2021)Safe-by-default Concurrency for Modern Programming LanguagesACM Transactions on Programming Languages and Systems10.1145/346220643:3(1-50)Online publication date: 3-Sep-2021
  • (2020)SmartTrack: efficient predictive race detectionProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385993(747-762)Online publication date: 11-Jun-2020
  • (2020)Design-space evaluation for non-blocking synchronization in Ada: lock elision of protected objects, concurrent objects, and low-level atomicsJournal of Systems Architecture10.1016/j.sysarc.2020.101764110(101764)Online publication date: Nov-2020
  • (2019)Dependence-aware, unbounded sound predictive race detectionProceedings of the ACM on Programming Languages10.1145/33606053:OOPSLA(1-30)Online publication date: 10-Oct-2019
  • (2019)Rethinking Support for Region Conflict Exceptions2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS.2019.00116(1095-1106)Online publication date: May-2019
  • (2018)High-coverage, unbounded sound predictive race detectionACM SIGPLAN Notices10.1145/3296979.319238553:4(374-389)Online publication date: 11-Jun-2018
  • (2018)MemoDynProceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques10.1145/3243176.3243193(1-12)Online publication date: 1-Nov-2018
  • (2018)Revisiting network support for RDMAProceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication10.1145/3230543.3230557(313-326)Online publication date: 7-Aug-2018
  • (2018)Modular Labelled Sequent Calculi for Abstract Separation LogicsACM Transactions on Computational Logic10.1145/319738319:2(1-35)Online publication date: 28-Apr-2018
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

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