San Diego, Ca. – Aonix said today that it has begun work on adding symmetric multiprocessing (SMP) capability to its PERC Ultra Java Virtual Machine.
Dubbed PERC Ultra SMP, Gary Cato, Aonix director of marketing, said the product will address the added complexities inherent in design, development, and deployment of SMP-targeted applications where the benefits of scalability, portability, and maintainability of Java applications can be fully realized.
“Driven by the pressure to deliver system upgrades with higher throughput and functionality,” he said, “developers in military and telecommunications sectors – where PERC Ultra SMP will see early adoption – expect multiprocessors to provide a solution.
“Notably, since the Java language was initially designed for a multithreaded programming environment, Java code does not have to be rewritten to take advantage of SMP benefits.
However, to fully exploit the predictable capabilities of PERC Ultra's patented garbage collection, changes are being made to enable it to efficiently run on multiple processors concurrently.
He said PERC Ultra SMP is being modified to fully exploit the capacity of multiple processors to reduce the interference of garbage collection on application threads.
“As a highly parallel process, the garbage collector will use idle processors to carry out the garbage collection,” said Cato, “working in tandem so that one processor can scan stack memory in search of pointers to live objects while another processor relocates previously identified live objects.”
With PERC Ultra SMP, all Java threads access the same shared objects. Because of this, objects are free to relocate themselves within memory and threads are able to migrate between processors.
To handle this generality, he said Aonix developers have developed a special patent-pending synchronization technique that ensures that an application thread on one processor does not attempt to access an object while another process is relocating the desired object as part of the garbage collection process.
This performance-optimized solution hinges on the generation of specialized code sequences by the PERC Ultra SMP JIT compiler and on an enhanced real-time garbage collection algorithm.