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.
- http://ildjit.sourceforge.net.Google Scholar
- Bea jrockit: Java for the enterprise technical white paper, 2006.Google Scholar
- Andrew W. Appel. Modern compiler implementation in Java. Cambridge University Press, 2002. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., 18(9):807--820, 1988. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- ECMA, Rue du Rhone 114 CH-1204 Geneva. Standard ECMA-335 Common Language Infrastructure (CLI), 3rd edition, June 2005.Google Scholar
- Nicu G. Fruja and Egon Borger. Analysis of the .net clr exception handling mechanism. In Proceedings of the 2005 .NET Technologies Conference, 2005.Google Scholar
- Java grande forum. http://www.javagrande.org/.Google Scholar
- Chandra Krintz, David Grove, Vivek Sarkar, and Brad Calder. Reducing the overhead of dynamic compilation. Softw., Pract. Exper., 31(8):717--738, 2001.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Mark Mitchell, Jeffrey Oldham, and Alex Samuel. Advanced Linux Programming. New riders, 2001. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Southern Storm Software. http://www.southern-storm.com.au. DotGNU Portable .NET project.Google Scholar
- Southern Storm Software. http://www.southern-storm.com.au/libjit.html. Libjit project.Google Scholar
- W. Richard Stevens. UNIX Network Programming: Volume 2. Prentice Hall, 1999. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers Principles, Techniques and Tools. Prentice Hall, 2003. Google Scholar
Digital Library
- Paul R. Wilson. Uniprocessor garbage collection techniques. In Proc. Int. Workshop on Memory Management, number 637, Saint-Malo (France), 1992. Springer-Verlag. Google Scholar
Digital Library
Index Terms
A parallel dynamic compiler for CIL bytecode
Recommendations
A highly flexible, parallel virtual machine: design and experience of ILDJIT
ILDJIT, a new-generation dynamic compiler and virtual machine designed to support parallel compilation, is introduced here. Our dynamic compiler targets the increasingly popular ECMA-335 specification. The goal of this project is twofold: on one hand, ...
Parallel programming in Haskell almost for free: an embedding of intel's array building blocks
FHPC '12: Proceedings of the 1st ACM SIGPLAN workshop on Functional high-performance computingNowadays, performance in processors is increased by adding more cores or wider vector units, or by combining accelerators like GPUs and traditional cores on a chip. Programming for these diverse architectures is a challenge. We would like to exploit all ...
Dynamic compilation of data-parallel kernels for vector processors
CGO '12: Proceedings of the Tenth International Symposium on Code Generation and OptimizationModern processors enjoy augmented throughput and power efficiency through specialized functional units leveraged via instruction set extensions. These functional units accelerate performance for specific types of operations but must be programmed ...






Comments