Wednesday Dec 01, 2010

Java SE for Embedded: Multi-Core and More

"Hey, looks great, but what about us?" That's probably what some embedded developers say when they see another SE release launched to much well-deserved attention. Well, we took a major step towards addressing that question with our recent release of Java SE for Embedded 6u21 for Linux ARM, PowerPC and x86. It's been a long release road for this one - given we actually started with 6u18 back in the spring. Along the way we hit a few speed bumps including a necessary B42 update for SE 6u10 for ARM and late availability of ARM and PowerPC multi-core systems. But it was worth it - this is a significant release for our OEMs. Key features include:
  • SE 6 Alignment
    • SE Embedded 6u21 syncs the JRE for Linux on ARM, PowerPC and x86 with the recent SE 6u21 for desktop and servers. The rich set of features and APIs of SE 6u21, including the hundreds of enhancements, security improvements and bug fixes are now available in SE Embedded.
    • allows developers to deploy on their embedded device the same Java SE version they develop with on their PC.
  • Expanded Multi-Core Support
    • added multi-core support for ARM and PowerPC. (already supported for x86)
    • the multi-core features of Java SE such as parallel garbage collection, background JIT compilation are available for the growing use of multi-core systems in embedded.
  • Additional Platform Support
    • added support for Power Architecture e500v2
  • Improved Performance/Benchmarks
    • SE 6 added a new linear scan register allocator for the client JIT which results in 15- 20% performance improvements over SE 5 in throughput benchmarks. [1]
    • ~20% improvement in Caffeinemark on all SE-E 6u21 platforms. [2]
    • ~2x the performance of Android on common benchmarks. [3]

[1] SPECjvm98 improvements: 17% for x86; 19% for PowerPC
[2] CaffeineMark improvements: 21% for ARM; 22% for x86; 29% for PowerPC
[3] CaffeineMark 2.15x; kBench 2.5x; SciMark 1.9x

That Time of Year: Giving Thanks

As the manager for SE Embedded, I'm sincerely thankful for those on the Oracle teams - including Development, SQE, Release Management, RE, Doc and Product Management who contributed to this release. The SE Embedded product team stands on the shoulders of the larger SE organization and we're all thankful for that. Special recognition goes to the sure-handed technical leadership of Bob Vandette and the tireless work of our Release Manager, Gail Yamanaka. Thanks as well to our embedded partners - ARM, Marvell, Freescale and others who provided key assistance for this release.

BTW Bob has recently come up for air and compared our SE Embedded 6u21 for ARM-Linux vs Android's Froyo release on a TI BeagleBoard as well as dual-core NVIDIA Tegra 2. It includes the single-core benchmarks referenced in [3] above. The dual-core numbers are even better. Check it out.

Java SE Embedded: Get ARMed and POWERful

and INTELligent of course. We encourage you to try Java SE Embedded 6u21 for your embedded project. Development is free. Please give the release a try and let us know your feedback.

Friday Feb 08, 2008

Dow Down; Java RTS Downloads Up

Wrapping up the week, it's good to see the solid press coverage on our Java RTS 2.1 EA announcement last week. It's even better to see the strong initial developer response as measured by all the downloads of our free EA evaluation. A couple of quick, interesting "Who's Downloading" highlights from current EA stats:
  • Enterprise to Embedded A wide range of industries are represented by our downloading developers. The top industries include Financial, Telco/DataComm and Industrial Automation.
  • Are You Experienced? Of those downloading, experienced Java developers new to real-time slightly outnumber experienced real-time developers new to Java (40% vs 30%).
In addition to David Holmes' write-up mentioned in my previous blog, check out the recent blogs from two other engineers on our RT team: Roland Westrelin provides details on our work with Linux futexes; Bertrand Delsart writes about our flexible Real-Time Garbage Collector (RTGC) which can even be tuned (down, down, way down) to behave similarly to IBM's Metronome.

Thursday Jan 31, 2008

Free to Choose - Java RTS EA for Linux

Pleased? I think Milton Friedman would be. I know our developers and customers who want choice (who doesn't) will be. And as engineering manager of Java SE Embedded and Real-Time, I certainly am very pleased - Early Access (EA) of Java RTS 2.1 on Linux is available! It's ready for your free evaluation on the web.

A little background on this work - we started this port this past summer after our 2.0 release. Our first big challenge? - choosing which Linux to use. Seriously. We researched, discussed and went back and forth. It might have been a bit of our Solaris background showing but I think it was more a result of the seemingly ever-evolving state of real-time for Linux. The good news for us was that as evaluations and interest in our 2.0 release ramped, customer feedback confirmed some of our initial work: start with Red Hat and Novell. Of course it helped that both Red Hat and Novell had solid plans for real-time Linux and were very interested in working with us. In the end it worked as it should - our developers and customers made that decision easier for us. Here are the 2 Linux versions we tested for EA and plan to support for 2.1 GA:

One goal of our Linux work is to try to stick with using POSIX real-time APIs. Again, it's a goal, not a constraint or a guarantee. So far with EA we've achieved that goal which means that other Linux's that support these APIs and have the correct kernel/glibc/rt-patch set, should be able to run the EA. For more info on the release, including Linux configuration requirements, current issues and Bugzilla bugs, please see the Release Notes.

Details: The Good, the Bad, the Ugly

OK, no remarkably bad or ugly - overall the port so far has gone relatively well. We have more testing, bug fixing and tuning to do, but this release is actually further along than what we initially targeted for EA. Last I checked it looks like we have no P1 bugs, we pass 100% of of the JCK and >97% of the JSR-1 TCK. Additionally, our initial internal benchmarks show very promising latency and jitter numbers. For example, we're seeing well under 100 us for latency and jitter using RTGC and RT Threads.

However, there were some key challenges and issues (some still exist) of the port as well as interesting differences between the Linux and Solaris implementation. A few engineers from our RT engineering team (including David Holmes) will blog in the next few days with details on these areas.

Many Thanks Around

I'm lucky enough to manage a great engineering team and work with a talented, dedicated extended product team. Thanks to all on those teams for the hard work in making this EA happen. As a Sun team, we were fortunate to work with external partners. Thanks especially to Moiz Kohari at Novell and Tim Burke at Red Hat and their respective teams for their support and partnership. We have more to do and look forward to the continued collaboration.

Going Forward

So what's next for the RT team as far as 2.1? Well, in addition to finishing the Linux port we have plenty of other work going into Java RTS 2.1, the most significant of which is expanded tools support. This includes Java serviceability tools and extensive DTrace support (new DTrace provider, >70 probes and several sample scripts). The RT engineering team will provide blog updates on this in the near future.

Our work is on track for a Java RTS 2.1 GA in mid-year 2008 with a Beta by April. Also, we plan to update the EA between now and Beta at least once. This gives us the opportunity to refresh the Linux EA with key bug fixes that might arise as well as provide a Solaris EA release for 2.1.

Your Feedback

Please! We encourage your evaluation of the EA. Let us know how this EA works for you (or doesn't) and what else you'd like to see in the product. Your valued feedback enables the continued improvement of Java RTS - and that's a good choice.

David Therkelsen


« August 2016