Azul Systems has announced the inclusion of ReadyNow! in the latest iteration of Zing, its Java virtual machine (JVM), designed to mitigate time delays that occur when Java applications can't reach optimal efficiency during intense periods of market activity.
The performance issue occurs when JVMs compile Java applications into forms that can be run on servers, in that part-compilation will occur throughout the application's run cycle in order to perform at optimal levels. In financial services, this can become problematic during peak periods, such as unforseen market events, or market opens and closes.
Typically, traders and system operators have overcome this through simulating events ahead of predicted increased loads, or by coaxing the JVM into optimizing the applications early through the use of historical data and test trades. This allows applications to be cycled up in order to perform during high-stress periods, although they may not reach optimal efficiency at key moments, particularly if those are unexpected.
Further complications with de-optimization occur when the systems are shut down at night and then restarted the following morning. This is primarily to deal with "garbage collection" (GC), essentially a process by which unused memory is reclaimed by the system in order to be recycled for use, but one that often introduces pauses or lag into Java-based applications. With low-latency systems such as execution engines, there is a tendency to build in processes to delay GC and the accompanying pauses. This means, however, that nightly system restarts are essential to prevent the build-up of GC reaching critical mass and introducing millisecond-to-second pauses during the trading day, which, in high-speed environments, could prove costly. As a natural consequence of these restarts, however, systems then have to be cycled up again the next day in order to be optimized once more.
Azul's Zing JVM addresses a number of GC-related challenges already, but with ReadyNow!, the vendor has taken this process a step further by introducing specific behaviors in the compiler as well as more granular levels of control in order to combat de-optimization at crucial periods.
"Over the past year, we've identified multiple real-world causes for actual de-optimizations that occur during phase shifts and market open, or similar execution stages of applications," says Gil Tene, CTO at Azul. "The ReadyNow! feature set encompasses multiple features and capabilities that are all focused on addressing this problem, starting with specific runtime and just-in-time (JIT) compiler behaviors aimed at reducing or eliminating the need to de-optimize. These include aggressive class loading and resolution, and aggressive initialization during warm-up to help prevent late resolution and late initialization from causing an entire series of de-optimizations later on. JIT optimization choices that pre-optimize or generate code, even for rare or never-taken paths, help avoid another class of de-optimization.
Over the past year, we've identified multiple real-world causes for actual de-optimizations that occur during phase shifts and market open, or similar execution stages of application. - Gil Tene, Azul Systems.
"Additional features include compiler application programming interfaces (APIs) that allow developers to explicitly control optimization choice, and to force the pre-compilation of problematic classes, or rare but critical code paths during warm-up, before they are actually encountered during performance-critical execution," he continues.
Separately, Azul also announced that Zing's runtime would be included in technology vendor Cinnober's TRADExpress product.
The founder and CEO of Imperative Execution looks at how trade execution is changing and what that means for the buy side.Subscribe to Weekly Wrap emails
- Waters Rankings 2019: All the Winners
- Mizuho Finds New Ways to “Activate” its Data Using AI
- Barclays Nearly Finished with First Major Quantum Computing Experiment
- The AI Ethics Dilemma: Banks Find a Fine Line Between New Tech and 'What's Right'
- Wavelength Podcast Episode 166: Brian Lichtenberger on Alternative Data