Back to Research

University of New Brunswick  

Project 1035 - OMR in Resource Constrained Env. --- Embedded/IoT/Mobile OMR

SHARE THIS POST

Running from 2018 to present

OMR in Resource Constrained Env. --- Embedded/IoT/Mobile OMR

Products

Eclipse OMR-OpenJ9 is an open-source Java runtime builder supporting many different hardware and operating system platforms. One targeted domain of OMR is embedded computing. We chose the 64-bit ARM platform AArch64, which is widely used in smartphones, microcontrollers, and IoT devices and supports rapid scaling in server infrastructure and lower power consumption.

In the past year, we benchmarked our evaluation of TRJIT on AArch64 against Eclipse OpenJ9 on x86_64 and against itself amongst different caliber AArch64 devices, which provided a baseline for comparison of future AArch64 JIT features.

We added advanced SIMD and floating-point instructions, which showed up to 4x improvements in the performance of certain vector arithmetic operations.

We added TRJIT optimizations for copying arrays using vectors, up to 128 bits of any data type in a single load/store instruction, achieving an up to 10x increase in performance. Compared to x86_64, AArch64 shows an improvement of up to 45.7%.

Public Impact Statement:

This project is focused on adapting the OMR technology to maintain its general goals of providing a generic run-time environment with support for diverse, resource-constrained systems.The embedded computing market, which includes Internet-of-Things (IoT) and mobile computing devices, differs significantly from cloud/desktop-based environments.It is a large non-traditional computing market where computation resources---including CPU, memory, power---are highly limited. We first made significant contributions to the prototype Eclipse OMR port to the AArch64 (ARMv8-A) architecture, evaluating the port using Eclipse OpenJ9 against an AMD64 counter-part (similar cache size and clock speed).Our contribution included an evaluation framework upon which further enhancements to the platform can be compared.We then proceeded to work on performance improvements to support embedded and real-time platforms (i.e., smaller and faster).Specifically, we explored the performance of the Just-In-Time (JIT) compiler in OpenJ9, evaluating and validating the AArch64 implementation of OpenJ9's JIT against more mature architecture, and addressing performance discrepancies.

All development in this project conducted in the open. To date, we have contributed 108 PRs to the Eclipse OMR and Eclipse OpenJ9 repositories. The 'AdoptOpenJDK Early Release' binaries 0.27, released in September 2021, contains the team's ongoing efforts.

Learn More about the Research Team.  

Explore the product that harvests this research results  

Research team:

  • IBM Project Lead (RCL): Daryl Maier, IBM
  • IBM Manager (RCM): Tony Renaud, IBM
  • IBM Contributor (RCC): KAZUHIRO KONNO, IBM

Institution:

University of New Brunswick   

SHARE THIS POST