High Performance Commercial Systems
Breakthroughs are sought for architecture as well as devices. The success of the Cell Broadband Engine™, developed for game consoles, and BlueGene, the world's fastest supercomputer, demonstrated that radically new computer architectures are needed to cope with the increasing variation of computer workloads. Using the experience and skills gained from the development of the world's fastest Java JIT compiler, IBM Research - Tokyo is advancing research and development for system software for these new architectures.
Advanced Java Virtual Machine and JIT Compiler
When Java was announced in 1995, we started to develop Java virtual machines JIT compilers that drastically improved Java performance by executing Java bytecode and by dynamically translating it to native code. We are currently focusing low-overhead techniques to track object allocation site information and and to profile object accesses. These techniques are contributing significantly to the performance of the IBM Java virtual machines and JIT compilers, especially on the IBM p systems. Papers on these developments have been presented at prestigious international conferences.
Transactional memory™ shows promise as a new concurrency control mechanism to replace lock-based synchronization for multi-core processors. TM allows multiple threads to execute a critical section concurrently while lock-based synchronization allows only one thread to execute the critical section. TM is an exploratory technology and still has many problems. We are working on TM by focusing on: 1) the reduction of the overhead for logging the memory accesses in critical sections, 2) the reduction of transaction rollbacks, and 3) the identification of realistic workloads that could benefit from TM.
Just-in-Time Compiler for Dynamic Scripting Language
Dynamic Scripting Languages (DSLs) are becoming popular due to their high productivity from dynamic typing and rich frameworks. Increasingly, DSLs are used to build substantial enterprise applications. Based on our experiences and research with optimizations for Java JIT compilers spanning over 15 years at IBM Research - Tokyo, we are developing Just-In-Time compilers for DSLs together with the IBM Research - Watson Research Center. We are focusing on optimizations to minimize runtime overhead due to dynamic typing of variables and to exploit hardware features.
Trace-based Java JIT Compiler
To improve the performance of Java server workloads with flat load profiles, we are developing a trace-based Java compiler, which uses traces as the compilation units instead of methods. We believe that we can recognize the compilation scopes more flexibly and thus produce better optimizations. We are currently focusing on the trace selection algorithms, compiler optimizations, and the tracing runtime.