Skip to main content

Software Thread Level Speculation for the Java Language and Virtual Machine Environment

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4339))

Abstract

Thread level speculation (TLS) has shown great promise as a strategy for fine to medium grain automatic parallelisation, and in a hardware context techniques to ensure correct TLS behaviour are now well established. Software and virtual machine TLS designs, however, require adherence to high level language semantics, and this can impose many additional constraints on TLS behaviour, as well as open up new opportunities to exploit language-specific information. We present a detailed design for a Java-specific, software TLS system that operates at the bytecode level, and fully addresses the problems and requirements imposed by the Java language and VM environment. Using SableSpMT, our research TLS framework, we provide experimental data on the corresponding costs and benefits; we find that exceptions, GC, and dynamic class loading have only a small impact, but that concurrency, native methods, and memory model concerns do play an important role, as does an appropriate, language-specific runtime TLS support system. Full consideration of language and execution semantics is critical to correct and efficient execution of high level TLS designs, and our work here provides a baseline for future Java or Java virtual machine implementations.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Chen, M.K., Olukotun, K.: The JRPM system for dynamically parallelizing Java programs. In: ISCA, pp. 434–446 (2003)

    Google Scholar 

  2. Steffan, J.G., Colohan, C., Zhai, A., Mowry, T.C.: The STAMPede approach to thread-level speculation. TOCS 23(3), 253–300 (2005)

    Article  Google Scholar 

  3. Manson, J., Pugh, W., Adve, S.V.: The Java memory model. In: POPL, pp. 378–391 (2005)

    Google Scholar 

  4. Chen, M.K., Olukotun, K.: Exploiting method-level parallelism in single-threaded Java programs. In: PACT, pp. 176–184 (1998)

    Google Scholar 

  5. Hu, S., Bhargava, R., John, L.K.: The role of return value prediction in exploiting speculative method-level parallelism. JILP 5 (2003)

    Google Scholar 

  6. Whaley, J., Kozyrakis, C.: Heuristics for profile-driven method-level speculative parallelization. In: ICPP, pp. 147–156 (2005)

    Google Scholar 

  7. Kazi, I.H.: A Dynamically Adaptive Parallelization Model Based on Speculative Multithreading. PhD thesis, University of Minnesota (2000)

    Google Scholar 

  8. Yoshizoe, K., Matsumoto, T., Hiraki, K.: Speculative parallel execution on JVM. In: 1st UK Workshop on Java for High Performance Network Computing (1998)

    Google Scholar 

  9. Pickett, C.J.F., Verbrugge, C.: SableSpMT: A software framework for analysing speculative multithreading in Java. In: PASTE, pp. 59–66 (2005)

    Google Scholar 

  10. Bhowmik, A., Franklin, M.: A general compiler framework for speculative multithreading. In: SPAA, pp. 99–108 (2002)

    Google Scholar 

  11. Quiñones, C.G., Madriles, C., SĂ¡nchez, J., Marcuello, P., GonzĂ¡lez, A., Tullsen, D.M.: Mitosis compiler: An infrastructure for speculative threading based on pre-computation slices. In: PLDI, pp. 269–279 (2005)

    Google Scholar 

  12. Bruening, D., Devabhaktuni, S., Amarasinghe, S.: Softspec: Software-based speculative parallelism. In: FDDO-3 (2000)

    Google Scholar 

  13. Rundberg, P., Stenström, P.: An all-software thread-level data dependence speculation system for multiprocessors. JILP 3 (2001)

    Google Scholar 

  14. Cintra, M., Llanos, D.R.: Toward efficient and robust software speculative parallelization on multiprocessors. In: PPoPP, pp. 13–24 (2003)

    Google Scholar 

  15. Cook, J.J.: Reverse execution of Java bytecode. The Computer Journal 45(6), 608–619 (2002)

    Article  MATH  Google Scholar 

  16. Gagnon, E.M.: A Portable Research Framework for the Execution of Java Bytecode. PhD thesis, McGill University (2002), http://www.sablevm.org

  17. Vallée-Rai, R.: Soot: A Java bytecode optimization framework. Master’s thesis, McGill University (2000), http://www.sable.mcgill.ca/soot/

  18. Pickett, C.J.F., Verbrugge, C.: Compiler analyses for improved return value prediction. Technical Report SABLE-TR-2004-6, Sable Research Group, McGill University (2004)

    Google Scholar 

  19. Shavit, N., Zemach, A.: Scalable concurrent priority queue algorithms. In: PODC, pp. 113–122 (1999)

    Google Scholar 

  20. Pickett, C.J.F., Verbrugge, C.: Return value prediction in a Java virtual machine. In: VPW2, pp. 40–47 (2004)

    Google Scholar 

  21. Renau, J., Tuck, J., Liu, W., Ceze, L., Strauss, K., Torrellas, J.: Tasking with out-of-order spawn in TLS chip multiprocessors: Microarchitecture and compilation. In: ICS, pp. 179–188 (2005)

    Google Scholar 

  22. Mart´ınez, J.F., Torrellas, J.: Speculative synchronization: Applying thread-level speculation to explicitly parallel applications. In: ASPLOS, pp. 18–29 (2002)

    Google Scholar 

  23. Lea, D.: The JSR-133 cookbook for compiler writers (2005), http://gee.cs.oswego.edu/dl/jmm/cookbook.html

  24. Dufour, B., Driesen, K., Hendren, L., Verbrugge, C.: Dynamic metrics for Java. In: OOPSLA, pp. 149–168 (2003)

    Google Scholar 

  25. Krishnan, V., Torrellas, J.: A direct-execution framework for fast and accurate simulation of superscalar processors. In: PACT, pp. 286–293 (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pickett, C.J.F., Verbrugge, C. (2006). Software Thread Level Speculation for the Java Language and Virtual Machine Environment. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69330-7_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69329-1

  • Online ISBN: 978-3-540-69330-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics