skip to main content
research-article

A parallel dynamic compiler for CIL bytecode

Published:01 April 2008Publication History
Skip Abstract Section

Abstract

Multi-core technology is being employed in most recent high-performance architectures. Such architectures need specifically designed multi-threaded software to exploit all the potentialities of their hardware parallelism.

At the same time, object code virtualization technologies are achieving a growing popularity, as they allow higher levels of software portability and reuse.

Thus, a virtual execution environment running on a multi-core processor has to run complex, high-level applications and to exploit as much as possible the underlying parallel hardware. We propose an approach that leverages on CMP features to expose a novel pipeline synchronization model for the internal threads of the dynamic compiler.

Thanks to compilation latency masking effect of the pipeline organization, our dynamic compiler, ILDJIT, is able to achieve significant speedups (26% on average) with respect to the baseline, when the underlying hardware exposes at least two cores.

References

  1. http://ildjit.sourceforge.net.Google ScholarGoogle Scholar
  2. Bea jrockit: Java for the enterprise technical white paper, 2006.Google ScholarGoogle Scholar
  3. Andrew W. Appel. Modern compiler implementation in Java. Cambridge University Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. David F. Bacon, Susan L. Graham, and Oliver J. Sharp. Compiler transformations for high-performance computing. ACM Comput. Surv., 26(4):345--420, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., 18(9):807--820, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Michal Cierniak, Marsha Eng, Neal Glew, Brian Lewis, and James Stichnoth. The open runtime platform: a flexible high-performance managed runtime environment: Research articles. Concurr. Comput.: Pract. Exper., 17(5--6):617--637, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Evelyn Duesterwald. Dynamic compilation. In Y. N. Srikant and Priti Shankar, editors, The Compiler Design Handbook --- Optimizations and Machine Code Generation, pages 739--761. CRC Press, 2003.Google ScholarGoogle Scholar
  8. ECMA, Rue du Rhone 114 CH-1204 Geneva. Standard ECMA-335 Common Language Infrastructure (CLI), 3rd edition, June 2005.Google ScholarGoogle Scholar
  9. Nicu G. Fruja and Egon Borger. Analysis of the .net clr exception handling mechanism. In Proceedings of the 2005 .NET Technologies Conference, 2005.Google ScholarGoogle Scholar
  10. Java grande forum. http://www.javagrande.org/.Google ScholarGoogle Scholar
  11. Chandra Krintz, David Grove, Vivek Sarkar, and Brad Calder. Reducing the overhead of dynamic compilation. Softw., Pract. Exper., 31(8):717--738, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  12. Prasad Kulkarni, Matthew Arnold, and Michael Hind. Dynamic compilation: the benefits of early investing. In VEE '07: Proceedings of the 3rd international conference on Virtual execution environments, pages 94--104, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. A. Mathew, P. D. Coddington, and K. A. Hawick. Analysis and development of java grande benchmarks. In JAVA '99: Proceedings of the ACM 1999 conference on Java Grande, pages 72--80, New York, NY, USA, 1999. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Mark Mitchell, Jeffrey Oldham, and Alex Samuel. Advanced Linux Programming. New riders, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. B. Ramakrishna Rau. Levels of representation of programs and the architecture of universal host machines. In MICRO 11: Proceedings of the 11th annual workshop on Microprogramming, pages 67--79, Piscataway, NJ, USA, 1978. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Southern Storm Software. http://www.southern-storm.com.au. DotGNU Portable .NET project.Google ScholarGoogle Scholar
  17. Southern Storm Software. http://www.southern-storm.com.au/libjit.html. Libjit project.Google ScholarGoogle Scholar
  18. W. Richard Stevens. UNIX Network Programming: Volume 2. Prentice Hall, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Vijay Sundaresan, Daryl Maier, Pramod Ramarao, and Mark Stoodley. Experiences with multi-threading and dynamic class loading in a java just-in-time compiler. In CGO '06: Proceedings of the International Symposium on Code Generation and Optimization, pages 87--97, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers Principles, Techniques and Tools. Prentice Hall, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Paul R. Wilson. Uniprocessor garbage collection techniques. In Proc. Int. Workshop on Memory Management, number 637, Saint-Malo (France), 1992. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A parallel dynamic compiler for CIL bytecode

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!