Tutorial 3

Intel's Open Runtime Platform (ORP)
 
Instructors: 
Michal Cierniak
Rick Hudson
Tatiana Shpeisman
Weldon Washburn

Intel Corporation Microprocessor Research Laboratory

 

Who Should Attend: 
Researchers looking for an advanced platform to do architectural and software research on.

 

Prerequisites:
A general knowledge of the major pieces of virtual machines, including understanding the motivation behind just in time compilers, garbage collectors, threading and synchronization. Attendees should intend to participate in a project that requires knowledge runtimes platforms similar to ORP.

 

Benefits:
The researcher will be able to evaluate the ORP as to whether it is relevant to their research and if it is will be able to download the code and become part of a growing community of researchers using the ORP.

 

Outline:
1/2 day

ORP design

  • Class loading 
  • Code management: JIT compilers, native code
  • Dealing with the stack and the memory stack: GC support, exceptions, security, synchronization 
  • Building and modifying the ORP 
  • Hooks

Java JIT compiler design

  • Compilation model: fast code generation, optimizing compiler 
  • Fast code generation 
  • Dynamic optimizations 
  • Garbage Collection support

Garbage Collection technology

  • GC overview: algorithms supported by ORP 
  • GC Concurrent 
  • GC Allocation: optimal IA64 sequences, Memory access models and publication safety 
  • Scanning objects 
  • Read and write barriers
Abstract:
Currently a large part of the academic careers of our best hardware and software research students (and professors) are spent building large systems that duplicate commercially available system simple to support the actual relevant research. Building such systems can be time consuming and often end up focusing on getting results for a single thesis. On the other side, industrial concerns have taken research done in academia and spent time investigating the research only to find out that the results were not fully realizable due to weaknesses in the supporting system.

In an attempt to address these problems Intel Corporation created the Open Runtime Platform (ORP). The ORP is currently being used as a toolkit by researchers investigating software and hardware designs. The ORP toolkit consists of several JIT compilers, code to support threads and synchronization, and several garbage collection algorithms. The ORP supports the GNU Classpath Libraries and can run several applications at very competitive speeds. The entire source code base is available under a Berkley style license popular with academic institution.

This tutorial discusses the structure of the ORP as well as how to use the ORP. The tutorial will focus on what we have learned about how to use the architecture features of the IA32 and IA64 to support modern application supporting type safety, dynamic compilation techniques, synchronization, and garbage collected linked data structures.