Virtual machines (VMs) move into the massively parallel processing realm with Azul's Network Attached Processing (NAP) appliances. The latest crop is based on Azul's new chip, with 48 64-bit processing cores that can be combined into a 768-way symmetrical multiprocessing engine (SMP).
The processing cores are designed to run today's VMs, such as Java and .NET CLR (common language runtime). Its primary target is Java 2 Enterprise Edition. The processors could support a range of VM-based language platforms in the future, such as Python or PHP.
The Azul JVM uses a split VM architecture. The NAP can work with a conventional server front end. A small part of a JVM runs on the server, but the bulk of the application runs on the NAP. The two communicate transparently.
This enables the server front end to handle I/O that's typically through TCP/IP sockets, while the application runs on the more powerful NAP. Such an approach permits easy migration from a serverbased JVM to a NAP-based solution. The NAP can serve more than one host.
Azul takes VM management to the next level with mainframe-style policybased management. Policies can address a range of options, from execution priorities to security.
The processing cores are designed to run VMs. They include hardware-based garbage collection that has a low overhead and minimal delays typically encountered with VMs that support large virtual memory spaces.
Accelerating applications in a cooperative multiprocess environment is key to Azul's success. Its optimistic lock thread concurrency approach assumes that Java locks can be bypassed.
If lock contention is detected, the system rolls back execution and handles the lock in a conventional fashion. Typically optimistic locking works 90% of the time, significantly improving performance. Any rollback overhead tends to have less impact because it occurs infrequently.