Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2602988.2602999acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

JDMM: a java memory model for non-cache-coherent memory architectures

Published: 12 June 2014 Publication History

Abstract

As the number of cores continuously grows, processor designers are considering non coherent memories as more scalable and energy efficient alternatives to the current coherent ones. The Java Memory Model (JMM) requires that all cores can access the Java heap. It guarantees sequential consistency for data-race-free programs and no out-of-thin-air values for non data-race-free programs. To implement the Java Memory Model over non-cache-coherent and distributed architectures Java Virtual Machines (JVMs) are most likely to employ software caching.
In this work, i) we provide a formalization of the Java Memory Model for non-cache-coherent and distributed memory architectures, ii) prove the adherence of our model with the Java Memory Model and iii) evaluate, regarding its compliance to the Java Memory Model, a state-of-the-art Java Virtual Machine implementation on a non-cache-coherent architecture.

References

[1]
G. Antoniu, L. Bouge, P. J. Hatcher, M. MacBeth, K. McGuigan, and R. Namyst. The Hyperion system: Compiling multithreaded Java bytecode for distributed execution. Parallel Computing, 27(10):1279--1297, 2001.
[2]
Y. Aridor, M. Factor, and A. Teperman. cJVM: A Single System Image of a JVM on a Cluster. In Proceedings of the 1999 International Conference on Parallel Processing, ICPP, pages 4--11. IEEE Computer Society, 1999.
[3]
D. Aspinall and J. Sevcík. Java Memory Model Examples: Good, Bad and Ugly. In 1st International Workshop on Verification and Analysis of Multi-threaded Java-like Programs, VAMP, 2007.
[4]
D. Aspinall and J. Sevcík. Formalising Java's Data Race Free Guarantee. In Proceedings of the 20th International Conference on Theorem Proving in Higher Order Logics, TPHOLs, pages 22--37. Springer Berlin Heidelberg, 2007.
[5]
N. P. Carter, A. Agrawal, S. Borkar, R. Cledat, H. David, D. Dunning, J. B. Fryman, I. Ganev, R. A. Golliver, R. C. Knauerhase, R. Lethin, B. Meister, A. K. Mishra,W. R. Pinfold, J. Teller, J. Torrellas, N. Vasilache, G. Venkatesh, and J. Xu. Runnemede: An architecture for Ubiquitous High-Performance Computing. In Proceedings of the 19th IEEE International Symposium on High Performance Computer Architecture, HPCA, pages 198--209. IEEE Computer Society, 2013.
[6]
P. Cenciarelli, A. Knapp, and E. Sibilio. The Java Memory Model: Operationally, Denotationally, Axiomatically. In Proceedings of the 16th European Symposium on Programming, ESOP, pages 331--346. Springer Berlin Heidelberg, 2007.
[7]
B. Choi, R. Komuravelli, H. Sung, R. Smolinski, N. Honarmand, S. V. Adve, V. S. Adve, N. P. Carter, and C.-T. Chou. DeNovo: Rethinking the Memory Hierarchy for Disciplined Parallelism. In Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques, PACT, pages 155--166, 2011.
[8]
M. Factor, A. Schuster, and K. Shagin. JavaSplit: a runtime for execution of monolithic Java programs on heterogenous collections of commodity workstations. In Proceedings of the International Conference on Cluster Computing, CLUSTER, pages 110--117, 2003.
[9]
J. Gosling, B. Joy, G. Steele, and G. Bracha. Java(TM) Language Specification, 3rd Edition. Addison-Wesley Professional, 2005.
[10]
J. Howard, S. Dighe, Y. Hoskote, S. Vangal, D. Finan, G. Ruhl, D. Jenkins, H. Wilson, N. Borkar, G. Schrom, F. Pailet, S. Jain, T. Jacob, S. Yada, S. Marella, P. Salihundam, V. Erraguntla, M. Konow, M. Riepen, G. Droege, J. Lindemann, M. Gries, T. Apel, K. Henriss,T. Lund-Larsen, S. Steibl, S. Borkar, V. De, R. Van der Wijngaart, and T. Mattson. A 48-Core IA-32 message-passing processor with DVFS in 45nm CMOS. In Proceedings of the International Solid-State Circuits Conference, ISSCC, pages 108--109, 2010.
[11]
M. Huisman and G. Petri. The Java Memory Model: a Formal Explanation. In 1st International Workshop on Verification and Analysis of Multi-threaded Java-like Programs, VAMP, pages 81--96, 2007.
[12]
R. Jagadeesan, C. Pitcher, and J. Riely. Generative operational semantics for relaxed memory models. In Proceedings of the 19th European Symposium on Programming, ESOP, pages 307--326. Springer, 2010.
[13]
S. Kaxiras and G. Keramidas. SARC Coherence: Scaling Directory Cache Coherence in Performance and Power. Micro, IEEE, 30(5):54-- 65, 2010.
[14]
L. Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558--565, 1978.
[15]
L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. Computers, IEEE Transactions on, C-28(9):690--691, 1979.
[16]
A. Lochbihler. Java and the Java Memory Model -- A Unified, Machine-Checked Formalisation. In Proceedings of the 21th European Symposium on Programming, ESOP, pages 497--517. Springer Berlin Heidelberg, 2012.
[17]
A. Lochbihler. Making the java memory model safe. ACM Transactions on Programming Languages and Systems, 35(4):1--65, 2014.
[18]
S. Lyberis. Myrmics: A Scalable Runtime System for Global Address Spaces. PhD thesis, 2013.
[19]
S. Lyberis, G. Kalokerinos, M. Lygerakis, V. Papaefstathiou, D. Tsaliagkos, M. Katevenis, D. Pnevmatikatos, and D. Nikolopoulos. Formic: Cost-efficient and scalable prototyping of manycore architectures. In Proceedings of the 20th Annual International Symposium on Field-Programmable Custom Computing Machines, FCCM, pages 61--64, 2012.
[20]
J. Manson. The Java Memory Model. PhD thesis, 2004.
[21]
J. Manson, W. Pugh, and S. V. Adve. The Java Memory Model. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL, pages 378--391, 2005.
[22]
J. Manson, W. Pugh, and S. V. Adve. The Java Memory Model, 2005. SPECIAL POPL ISSUE Submission.
[23]
R. McIlroy and J. Sventek. Hera-JVM: A Runtime System for Heterogeneous Multi-core Architectures. In Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA, pages 205--222, 2010.
[24]
S. Owens, S. Sarkar, and P. Sewell. A Better x86 Memory Model: x86-TSO. In Proceedings of the 22th International Conference on Theorem Proving in Higher Order Logics, TPHOLs, pages 391--407. Springer Berlin Heidelberg, 2009.
[25]
W. Puffitsch. Data Caching, Garbage Collection, and the Java Memory Model. In Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES, pages 90--99. ACM, 2009.
[26]
W. Pugh and J. Manson. Java Memory Model Causality Test Cases, 2004. On http://www.cs.umd.edu/aspugh/java/memoryModel/- CausalityTestCases.html.
[27]
J. Sevcík and D. Aspinall. On Validity of Program Transformations in the Java Memory Model. In Proceedings of the 22nd European Conference on Object-Oriented Programming, ECOOP, pages 27--51. Springer, 2008.
[28]
E. Torlak, M. Vaziri, and J. Dolby. MemSAT: Checking Axiomatic Specifications of Memory Models. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, pages 341--350. ACM, 2010.
[29]
R. Veldema, R. Bhoedjang, and H. Bal. Distributed Shared Memory Management for Java. In Proceedings of the 6th Annual Conference of the Advanced School for Computing and Imaging, ASCI, pages 256--264, 1999.
[30]
W. Yu and A. Cox. Java/DSM: A platform for heterogeneous computing. Concurrency: Practice and Experience, 9:1213--1224, 1997.
[31]
W. Zhu, C.-L.Wang, and F. C. M. Lau. JESSICA2: A Distributed Java Virtual Machine with Transparent Thread Migration Support. In Proceeding of the IEEE International Conference on Cluster Computing, CLUSTER, pages 381--388. IEEE Computer Society, 2002.
[32]
J. N. Zigman and R. Sankaranarayana. Designing a Distributed JVM on a Cluster. In Proceedings of the 17th High Performance and Large Scale Computing Conference, HP&LSC, 2002.

Cited By

View all
  • (2016)Building a Java™ Virtual Machine for Non-Cache-Coherent Many-core ArchitecturesProceedings of the 14th International Workshop on Java Technologies for Real-Time and Embedded Systems10.1145/2990509.2990510(1-10)Online publication date: 29-Aug-2016
  • (2016)DiSquawkProceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2972206.2972212(1-12)Online publication date: 29-Aug-2016

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISMM '14: Proceedings of the 2014 international symposium on Memory management
June 2014
136 pages
ISBN:9781450329217
DOI:10.1145/2602988
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 49, Issue 11
    ISMM '14
    November 2014
    121 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2775049
    • Editor:
    • Andy Gill
    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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 June 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. java
  3. memory model
  4. multithreading
  5. non cache coherent memory
  6. software cache
  7. virtual machine

Qualifiers

  • Research-article

Funding Sources

  • GreenVM project on Energy-Efficient Runtimes for Scalable Multicore Architectures

Conference

ISMM '14
Sponsor:
ISMM '14: International Symposium on Memory Management
June 12, 2014
Edinburgh, United Kingdom

Acceptance Rates

ISMM '14 Paper Acceptance Rate 11 of 22 submissions, 50%;
Overall Acceptance Rate 72 of 156 submissions, 46%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2016)Building a Java™ Virtual Machine for Non-Cache-Coherent Many-core ArchitecturesProceedings of the 14th International Workshop on Java Technologies for Real-Time and Embedded Systems10.1145/2990509.2990510(1-10)Online publication date: 29-Aug-2016
  • (2016)DiSquawkProceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2972206.2972212(1-12)Online publication date: 29-Aug-2016

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media