Xonai Technology

Xonai aims to eliminate fundamental performance bottlenecks in large-scale computing.

Such bottlenecks are not specific to large-scale computing but inherent to all software development, which abstracts execution steps within reusable components and layers of indirection. At every layer of indirection, there is a missed optimization opportunity as data is moved across different steps that could not be co-optimized as a single unit.

In the context of large-scale computing as in Big Data, such inefficiencies represent a large fraction of IT infrastructure spending but are mostly invisible to the user.

Xonai leverages novel compiler technologies to solve inefficiencies in Big Data analytics where these fundamentally originate from and ripple across the entire infrastructure.

Unified Program Representation

The primary driver behind accelerating Big Data is Xonai’s proprietary domain-specific language (DSL) and custom MLIR-based compiler.

The details of Xonai DSL are to be revealed in more detail later in the future, but its primary purpose is to unify Big Data analytics operations within a common representation to expose unique opportunities to optimize data processing that are not possible otherwise.

As operations are offloaded to the Xonai custom compiler via programs generated in Xonai DSL, performance gains are obtained by removing layers of indirection that were previously established as a result of mixing independent APIs that a general-purpose compiler sees as black boxes within the surrounding code.

At the same time, Xonai DSL is specifically designed in mind to easily represent data analytics operations in a canonical format to facilitate optimization and abstract away details of the target hardware. The process of generating data is expressed in a declarative format while still allowing full imperative control flow and flexible interoperation with C when needed.

Integration With Apache Spark

The Xonai Accelerator is a plugin for Spark 3 that packages Xonai’s custom compiler, query plan code generation and integrations with Spark internals all in a single JAR.

After the Spark runtime decides what query plan to execute, the Xonai Accelerator re-routes Catalyst Java code generation to generate code with Xonai DSL instead. Xonai custom just-in-time compiler will perform many code transformations to optimize programs generated for each Spark stage and can target different hardware from a single source of truth. This process does not require any code changes to existing applications.

At the moment, gains up to 80% less execution time can already be seen in real petabyte-scale customer applications.