Aonix®, the provider of the PERC product line for embedded and real-time Java developers, announced the release of PERC Ultra SMP with support for multicore hardware. PERC Ultra SMP responds to the need for multiprocessor and multicore solutions in complex mission-critical embedded and real-time Java applications. Early adopters of the technology are in the military, aerospace, and telecommunications sectors.
Developers in large time-critical applications require multiple processors to deliver dramatic gains in performance. When the Java language, initially designed for multithreaded programming environments, is coupled with Aonix’s PERC Ultra SMP virtual machine, developers are able to leverage full SMP benefits without rewriting code originally designed to run in older, uniprocessor systems. PERC Ultra’s real-time garbage collector ensures that real-time microsecond response can be guaranteed even in mission-critical applications.
“We are very encouraged with initial benchmark results for PERC Ultra SMP,” said Gary Cato, Aonix director of marketing. “Using an internally created and computationally intensive benchmark, PERC shows better than eight-times performance improvement on an eight-core multiprocessor system compared to the same test running in a single core. PERC Ultra’s efficiency guarantees that customers can take advantage of the performance gains promised by modern multicore systems.”
To highlight the parallel execution capability of PERC Ultra SMP, Aonix implemented a Java Mandelbrot benchmark. A Java program generated the Mandelbrot set using parallel threads on a multiprocessor system in order to determine the performance benefits of concurrent execution of the threads. Results showed that using PERC Ultra SMP with eight parallel threads on a dual quad-core Xeon-based Linux real-time system improved execution speed by a factor of eight compared to the same benchmark using a single thread.
With PERC Ultra SMP, all Java threads access the same shared objects, making them free to relocate themselves within memory. It also allows threads to migrate between processors, a crucial element to load balancing in multicore systems. To handle these needs, Aonix has 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.
To ensure real-time, predictable performance, Aonix altered PERC Ultra SMP’s patented garbage collection to run on multiple processors in parallel while remaining:
- preemptible by higher priority threads
- incremental so that, when garbage collection is preempted and resumed, it resumes with the next increment of work rather than restarting itself
- accurate, guaranteeing to reclaim all dead memory
- defragmenting through relocation of live objects in order to coalesce discontiguous free segments
- paced so that the memory pool is replenished at a pace consistent with the application’s need for new memory allocation
PERC Ultra SMP exploits the capacity of multiple processors while reducing the interference of garbage collection on application threads. As a highly parallel process, the garbage collector uses idle processors to carry out the garbage collection, 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.
About the PERC Family
PERC Ultra is a virtual machine and toolset expressly created for demanding embedded and real-time systems requiring J2SE[tm] support. PERC Ultra delivers the ease and efficiency of Java[tm] Standard Edition support without sacrificing integrity, performance, or real-time behavior. The currently available version, PERC Ultra 5.1 offers Ahead-of-Time (AOT) and Just-in-Time (JIT) compilation, remote debug support, deterministic garbage collection, standard graphics and extended commercial RTOS support.
PERC Pico, the first development environment geared toward the creation of resource constrained and deeply embedded hard real-time applications and components, is based on the emerging Java Specification Request (JSR-302) for development of hard real-time safety-critical code. PERC Pico allows Java developers to write low-level Java code such as device drivers and interrupt handlers, telecommunications control plane, and signal processing for multimedia. It offers a memory footprint measured in hundreds of kilobytes in comparison to the tens of megabytes required for other Java solutions as well as boasting performance, latency, and determinism comparable to C.
Shipping and Availability
PERC Ultra SMP is immediately available for early adopter delivery with general product release expected in December 2008. PERC Ultra SMP is initially available for commercial Linux RTOSs and will subsequently be released for traditional proprietary RTOSs. PERC development tools are available at no charge in combination with a maintenance contract. Target execution and deployment license pricing starts at $25K based on projected volume.
Aonix offers mission- and safety-critical solutions primarily to the military and aerospace, telecommunications and transportation industries. Aonix delivers the leading highly reliable, real-time embedded virtual machine solution for running Java[tm] programs deployed today and has the largest number of certified Ada applications at the highest level of criticality. Headquartered in San Diego, CA and Paris, France, Aonix operates sales offices throughout North America and Europe in addition to offering a network of international distributors.
Aonix and PERC are registered trademarks and trademarks of Aonix. Java[tm] and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.