Global Site Navigation (use tab and down arrow)

Back to CAS Atlantic

Projects

CAS–Atlantic conducts research in partnership with industrial collaborators, large and small. Since our founding in 2011, numerous projects have been completed, are ongoing or are in development.

Projects with IBM Canada Ltd.

Node.js is a popular managed runtime for server-side applications, whose execution is shifting towards cloud systems.

The purpose of this research is to improve Node.js, its ecosystem and its interaction with its environment by leveraging the current multicore and distributed hardware, on which cloud Node.js application run. Also, optimizing its core and creating or fine-tuning external modules, especially towards improved scaling and multithreading are parts of this project's investigation.

The end goal is to improve the scalability and performance of Node.js and also, to reduce time spent for the applications' development, testing and debugging.


A common pattern seen in the profiles for many Java programs is large amounts of time spent on object indirection stalls. The first time an object pointer is de-referenced is usually not long after we have loaded that reference. Placing pre-fetches could help reduce the penalty, but having some way of figuring out which indirections could be costly, coupled with pre-fetch placement and code motion to try and produce an optimal delay between pre-fetch and indirection, would be a useful optimization.

Another way of dealing with this problem would be change the garbage collection (GC) and how it arranges objects, i.e. which objects are adjacent to which ones and how to be more optimal with respect to what falls on the same cache line; a combination of approaches could also be beneficial.


Project purpose

Open-sourced from IBM, “Eclipse OMR" is enterprise-class runtime technology that delivers high performance without sacrificing versatility or robustness.”

Our goal is to enhance the capabilities of OMR for multi-language interoperability (particularly regarding performance and security, and effective exploitation of the parallelism provided by modern hardware) and resource constrained environments (the embedded computing market, including the Internet-of-Things and mobile computing).

Project summary

Building the runtime technology for a new language to match the capabilities of existing mature languages typically requires tremendous, costly effort, as does building new runtime components from scratch, designed from the outset for reuse.

Adding additional language support within an existing mature runtime environment will likely have hampered efficiency due to implementation trade-offs. As an alternative, IBM has reorganized the runtime components of an existing commercial JVM implementation (the IBM Developer’s Kit for Java) to separate the pure Java implementation (Eclipse OpenJ9) from the parts that provide key runtime capabilities.

The resulting open-source Eclipse OMR project provides a runtime technology platform consisting of core components as a toolbox for building language runtimes upon which many of IBM products run, including Websphere, Bluemix and QRadar.

With IBM focused on core functionality, the CAS–Atlantic is playing a key role in developing additional tools to contribute to the development of OMR. CAS–Atlantic is focusing on two distinct, but related themes. The first is a port of the Python language to OMR, and then to use it as a testbed to study issues of multi-language interoperability, particularly regarding performance and security, and effective exploitation of the parallelism provided by modern hardware.

Improving the performance of database management systems (DBMS) is an important demonstration to IBM. The second theme is expanding OMR to better perform in resource constrained environments, the embedded computing market, including the Internet-of-Things and mobile computing. Particular emphasis will be placed on realtime scheduling, and compilation efficiencies, automated memory management and garbage collection in these constrained environments.

At its peak, CAS–Atlantic’s collaboration with IBM engaged five faculty members and over 30 students, postdocs and research assistants.

Themes and subprojects

Theme 1. Python on OMR
1.1. Interpreter integration

The goal is to port a Python runtime to OMR. The focus is on demonstrating the reusability of OMR garbage collection (GC) and just-in-time compilation components. Research is being specifically conducted into extending OMR in novel ways to better support Python (or vice-versa) and balancing fast start-up time for scripting applications against good performance for compute-intensive workloads.

1.2. High performance language interoperability

The goal is advancing the state-of-the-art in language interoperability. The focus will be on providing cross-language interoperability between Python and Java, particularly in the context of data-intensive applications, and providing a flexible framework to improve the performance of cross-language serialization and deserialization.

1.3: Compilation of SQL queries for efficient execution plan generation

The goals are to demonstrate the viability of just-in-time compilation in a production ready database system; to demonstrate the applicability of compilation-based approaches in a distributed in-memory query execution engine; and to investigate how to develop an end-to-end query processing system that supports research in query compilation and exploration of ideas in this domain.

Theme 2. OMR in resource constrained environments
2.1. Embedded/Internet-of-Things/mobile OMR

The goal is to port the current OMR environment to the 64-bit ARM platform. The focus is on adapting the OMR technology to support a diverse resource constrained system while maintaining its general goals of providing a generic run-time environment with support for multiple runtime languages.

Research is being specifically conducted into real-time scheduling, as well as automatic memory management techniques to minimize the overall memory footprint and utilizing specific architectural features for better execution performance.

2.3. MicroJIT for OMR

The goal is to design and implement generic ahead-of-time (AOT) code-compilation support for OMR and then extend AOT to support a scripting language. Current implementations of AOT have been analyzed in detail and research is being specifically conducted into deciding what should be stored in persistent memory to gain best advantage in terms of size and execution speed, and into a framework for storing AOT code for OMR.

2.3. MicroJIT for OMR

The goal is to improve the performance of OMR in resource constrained environments through enhanced just-in-time (JIT) compilation. Starting from the existing IBM MicroJIT implementation, specific research is being conducted into utilizing MicroJIT for languages other than Java and for applying MicroJIT in embedded OMR.

2.4: Detection and mitigation of load stalls on AArch64

The goals are to profile load stalls on AArch64 and to determine an effective mitigation strategy. Specifically, we are developing a profiling tool integrated with the OMR compiler component. We will then evaluate its effectiveness, improve upon it and integrate the resulting mitigation strategy into OMR.


Projects with Huawei Technologies Canada

The purpose of this project is to enhance the verilog-to-routing (VTR) academic tool for use by commercial partners. The tool has been developed over the last ten years and used extensively by the academic community and industrial researchers to explore new programmable computing architectures.

Huawei Technologies Canada has expressed serious interest in the tool as they have been using it for some time internally to perform initial research on next generation computing hardware for mobile phones. As such, they have proposed a collaborative project to further develop the tool for their needs.

However, the development is focused on the needs of Huawei specifically and does not include all components that would be desirable for other potential commercialization opportunities.

This project proposes to add two key aspects for a more broadly-based commercialization approach.

  • First, a software tool for visualization of the circuits in the verilog-to-routing tool. Such a visualization will make the tool more usable.
  • Second, a more robust and higher quality software product through extensive testing and software quality enhancements.

The deliverables of the project will be a stand-alone software tool that can be used by other commercialization partners, not just software that can be integrated into Huawei's product(s).


Projects with projects with other companies

The Atlantic Digital Grid project is an active collaboration involving multiple academic units and teams from the University of New Brunswick and industrial partners Emera, NS Power, NB Power and Siemens Canada. The Centre for Advanced Studies–Atlantic (CAS–Atlantic) has as its goal the design of a new infrastructure to support management of a distributed energy resource (DER) network, allowing each DER in the network to share their properties to a cloud environment where the data can be collected for further analytics and predictive modeling.

The objective is to consider and model the communal effect of distributed energy resources (DERs). A single DER, by itself, is capable of being monitored, measured and maintained, but when there is a network of such resources, then the collective represents a distributed resource that is much harder to monitor, measure and manage—all necessary criteria for establishing a reliable solution.

The expected outcome of this theme is the development of infrastructure to support management of a DER network. With the development of a standard monitoring protocol, one can have each of the DERs in the network share their properties to a cloud environment where the data can be collected. Once this data is available, then it is possible to do analytics and predictive modeling to address key questions such as:

  • What is the reliability of the DERs, as a collective, to deliver a set demand load?
  • What is the effect of particular DERs, or a collection of DERs, becoming unavailable?
  • What is the variance of the load from the collective DERs?
  • Can we predict the times when the load will vary based on other criteria (e.g., weather)?
  • What effect would additional DER(s) have on the grid in terms of available load and reliability?

In collaboration with 45 Drives, a subsidiary of Protocase Inc. of Sydney N.S., this project aims to develop a high-performance storage cluster with enhanced cybersecurity features. Based upon their Storinator product line, 45 Drives is designing a high-performance architecture that prioritizes capacity per dollar, for which they have identified several use cases.

Several of these use cases could be served by a storage solution built on Ceph, erasure-coding and other elements of cybersecurity. Ceph is a fault-tolerant, open-source, highly-scalable, object-based storage project with a built-in file system for user navigation.

However, Ceph authentication protocols do not currently provide secrecy for messages in transit nor does it encrypt user data in the object store. Once authenticated, the Ceph Object Gateway does support server-side encryption of uploaded objects. Server-side encryption means that data sent to the Ceph Object Gateway is unencrypted. Erasure coding can be useful in fault-tolerant systems with large quantities of data, such as disk array systems and object stores.

We hypothesize that we can use erasure-coding with Ceph to build a super-dense storage cluster that provides data protection and encryption to achieve all of the goals desired by 45 Drives.

To achieve this, we are integrating both technologies while ensuring that the data protection of erasure-coding does not compromise the security available in Ceph nor degrade performance below acceptable levels.


Previous projects

Our founding project was Accelerating Java Using Massive Multicore Systems. From 2011-2019, we focused on topics in Garbage Collection (GC), Massive Multicore VMs, Memory Compaction and the Virtual Machine (VM) Core itself.

X formally Twitter, serves as both a social network and a news medium with many registered politicians using it to reach out to public and serves as a source of political news and opinion. It has, therefore, become a primary source for polling interest during electoral periods.

These factors make it ideal to extract and analyze the language sentiments around a political candidate which can potentially lead to the discernment of the public voting intentions.

In collaboration with Eyesover Technologies, the goal of this project is to analyze the error of the Eyesover Political prediction software and potentially increase the precision of inferring the voting intent of the general public towards a specific political candidate in an election.

Error analysis and the evaluation of the results calculated by the Eyesover software can be provided by employing statistical automated analysis. The forecasting accuracy of the Eyesover system can be evaluated by comparing the calculated results to historical data.


With any addition of parallelism, the dependency on efficient memory management increases to avoid memory bottlenecks that limit performance. Increasing performance without affecting the responsiveness of the Java VM to user applications is a difficult problem.

With memory management acting as a background process, one must be careful to not interfere with user applications at undesirable times. This research stream studied and developed support for efficient Garbage Collection (GC) within the Java VM.


The purpose of this research stream was to link in massive multicore research projects that are ongoing in the research community and within existing IBM research centers into the research happening at CAS-Atlantic in improving execution of the Java Virtual Machine (JVM) and Java Class Libraries (JCL). Some of these ongoing research projects include the development of primitives (data structures and templates) for efficient synchronization that provide building blocks for concurrency.

TuningFork is a system for the visualization, analysis, and control of real-time systems. New trace formats, analysis modules, and visualizations can all be added as plug-ins. Marusa is a tool for breaking down the memory footprint of a Java application. This can be extremely useful for examining suites of applications to find patterns and commonalities that can be exploited to improve overall JVM memory management.


The goal of this project was to share memory between multiple running Java Virtual Machine instances. Multiple JVMs can already share part of the class information, with the -Xshareclasses command line option. There are potentially many more data structures that are immutable and present in every JVM. We identified some of them and then shared them between instances to save memory and reduce startup time for subsequent Java applications.


Effectively managing memory in a virtual machine environment is key to performance. With the ever increasing demands on data processing it is more important than ever to do this effectively to achieve both real-time and big data demands. Garbage collection is the periodic process of cleaning the memory regions to delete unused memory.

During this process we also have an opportunity to analyze memory usage and perform any tasks that can increase memory efficiency. One such task is the leveraging of data temperature. Hot data is memory accessed frequently and requiring close proximity to the CPU for minimal delays during execution; whereas cold data is infrequently accessed data that can be stored in distant slower memory technology since the number of accesses is low and lengthy access times result in minimal penalties.

While this concept proved promising with earlier research and investigations by the applicants, the hardware support was not ideal for commercialization. This proposal focuses on leveraging new hardware features from Intel to further research the theory of cold regions and prototype the work for commercialization. In addition, other memory regions such as the shared class cache are considered for exploitation.


Research and development in the Virtual Machine (VM) core stream was centered around leveraging parallelism in the VM itself. This included adding support for additional languages and APIs that utilized multicore architectures. Some of the sub-projects in this domain investigated loading Java class libraries in parallel, enhancing the interface for applications to specify parallelism, and sharing Java VM support between applications.


We have had significant projects with Butterfly Energy Systems on an Internet gateway and mobile client app for their energy management system; with the Black Arcs on performance optimization and scaling for simulations of urban planning; with Protocase Inc. and 45 Drives on performance analysis and data logging on their Storinator product line; and with WEnTech Solutions (now anessa) on architectures for their biogas software.

We maintain interest and experience in all these topic areas and welcome discussion on potential new projects.