Posts Tagged ‘application development’

Update: Java™ 6u14 for Itanium® platforms & JavaOne conference

Greetings! Intel continues our productive collaboration with Sun Microsystems on porting Sun’s J2SE implementation to Itanium® architecture, resulting in a regular cadence of Itanium® releases with constantly improving performance, security, and overall quality. Some time ago we released JDK & JRE 6u13 for Itanium, a security update release. Now I’m glad to attract your attention to the 6u14 release for Itanium which has just been made available at the Java™ SE download site.

The 6u14 release includes improved performance on a range of server workloads. This is achieved with both platform independent work described in Java SE 6 Update 14 Release Notes and Itanium specific improvements such as optimized memory copy routines and C2 JIT compiler enhancements. Also in 6u14 we enabled the Serviceability Agent on Windows/Itanium, with a few limitations described here. In 6u12 for Itanium, the Serviceability Agent was included in the Linux distribution only. And of course the 6u14 release for Itanium contains the enhancements and fixes described in Java SE 6 Update 14 Release Notes, but with a few exceptions related to new features: the Garbage First (G1) garbage collector and the Compressed object pointers are not yet ported to Itanium. We are working to enable those features for Itanium and the results may be available in one of the future update releases later this year. For more information about the release including command line options for maximum performance please refer to the Java SE 6 Update 14 for Itanium Release Notes.

Another important event which happened since my previous post was the JavaOne 2009 conference.  JavaOne is the largest and the most significant conference in the Java world, a gathering of thousands of Java developers.  In the pavilion, showcasing latest accomplishments in the Java technologies, we presented a demo devoted to Java 6 for Itanium® architecture.  An eye-catchy animation demonstrated comparative SPECjbb2005 performance on several J2SE 6 releases for Itanium including the latest 6u14, on the currently available dual-core Intel® Itanium® Series 9100 (code name Montvale) and the next generation Itanium® quad-core (code name Tukwila). The demo clearly illustrated substantial boost in 6u14 over 6u12 and the doubling of performance (for that workload) on Tukwila over Montvale.  The flow of visitors to our booth was constant and the booth team talked virtually non-stop in highlighting our results and the Itanium platform.  If you were fortunate enough to see this demo at JavaOne thanks for attending!

That’s all important news I have at the moment.  We are hard at work on our next releases and I’ll soon be back with more updates.  Until then, don’t hesitate to add your comments!

New Forum on the Intel Software Network

Hello. My name is Andrey Bokhanko and I’m a compiler developer from Intel.

In my first post to the Itanium Solutions blog, I’m happy to share that a new Itanium-centric discussion forum was born! Specifically, it is devoted to all things related to Intel® Software Development Tools for Itanium architecture. Be it compilers (I work on them, so this topic is especially dear to my heart), performance tools, libraries or whatever else fancies you – if this is related to Itanium software development with Intel tools, you are welcome to join the fray!

Members of Intel teams working on said tools monitor the forum, so if you have a particularly tricky question, now you can ask directly at the source. If you are unhappy with how some of Intel tools work, want something to be added or changed (for better… or for worse), this is a great channel to share your thoughts.

The new forum is a part of Intel Software Network, so if you have an account there, you can start to participate right now. If not, now you have another good excuse to finally create one (which is free).

The last thing left to say is the address of this latest and greatest forum: http://software.intel.com/en-us/forums/intel-software-development-tools-for-itanium-architecture/

See you there!

Optimizing .NET Applications for Itanium

Optimizing financial portfolios is both mission and time critical and the user does not have the luxury of waiting for the application to churn out data over long time periods. Modern portfolio optimization techniques use historical prices as the basis to compute risk and returns. This method of optimization uses voluminous data and is also compute intensive as the application seeks the most optimal investment portfolio configuration in a given vector. The challenge is further compounded when the investment time horizon or the portfolio size increases.

To address this issue, the team at Protegesoft used two simple approaches: (1) Cache critical secondary data in memory through data structures and (2) Hyper-thread sections of codes to improve processing time.

Both Intel and HP offer many tools to optimize code for Itanium based servers on their native compilers; but there are fewer options available for .NET based applications. The key thing to remember is that Itanium is a 64bit architecture that allows applications to access more than 4MB of memory. The .NET framework permits hyper-threading, which is Microsoft’s implementation of parallelism. Hyper-threading works both on Xeon and Itanium chipsets.

The best way to attain optimal application performance is first to ascertain the objective of the program. In our case, we were looking for optimal portfolio configuration in a given vector. Linear algorithms were too time-consuming as this performs an exhaustive search. Quadratic and logarithmic algorithms offer much faster solutions to the problem.

Back to Basics
Visual Studio is an excellent RAD (Rapid Application Development) environment. However, typical .NET applications are closely coupled with the database. At Protegesoft, we departed from the norm to encapsulate business and other financial portfolio functions in class libraries. Caching was also used extensively to reduce the incidence of select statements from databases. In order to cache the data in memory, we used data structures to store critical secondary data that was frequently accessed to speed up fetch operations. This improved performance of the application dramatically.

Second, we optimized frequently used portions of code. This also meant that dead code was removed and we also checked the efficiency of inner and outer loop. In some cases, a ‘Parallel For’ was used instead of a normal ‘for’ loop.

Here are other optimizing techniques from Intel and HP for mission-critical applications:

Introduction to Microarchitectural Optimization for Itanium® 2 Processors:
http://cache-www.intel.com/cd/00/00/21/93/219348_software_optimization.pdf

Optimizing Itanium Based Applications
http://h21007.www2.hp.com/portal/download/files/unprot/Itanium/OptimizingApps-ItaniumV9-1.pdf

Java™ for Itanium® Platforms – 6u12 released

Greetings! As I promised in my previous post, Sun’s JDK&JRE 6u12 for Intel Itanium® Linux and Windows are ready for download at the Java SE download site.

•    Inclusion of control and data speculation optimizations into the global instruction scheduling framework. These optimizations are enabled by  default when AggressiveOpts is enabled.
•    Optimized code sequences for floating point constants. This feature is also enabled when AggressiveOpts is enabled.
•    An additional optimized object allocation and initialization code sequence in C2 compiled methods.
•    An additional optimized code sequence for large switch constructs (i.e. those with many ‘case’ labels). This feature is enabled with the command line flag -XX:+UseJumpTables.

Also, in this release we ported the Serviceability Agent to Linux/Itanium. Even with a number of limitations of its current version for Itanium we hope that the Serviceability Agent will be a useful troubleshooting tool. Windows support will be available in a later release.

As usual, you may find more information about JDK for Itanium at the Itanium Release Notes page, including known issues and suggested workarounds.

We continue working on next releases, improving quality and performance. I will keep you informed as new releases become available.

Java™ for Itanium® Platforms – Ready for Use!

Greetings! My name is Vyacheslav Shakin, Project Manager at Intel, and this is the first post in what will be a series of blog posts covering the state of Java™ for Intel’s Itanium® Platforms. As you may know, Intel and Sun Microsystems have been collaborating on the development of Sun’s J2SE implementation for Itanium/Linux and Itanium/Windows, culminating in the first release this past October. If you haven’t downloaded those bits (available in both JRE and JDK form), you can access them via the Sun JDK6u11 download pages via these JRE and JDK links. We’ve now had two Hotspot J2SE releases from the Intel/Sun collaboration on Itanium, and the first Hotspot releases for Itanium since back in the Java 1.4.2 days. These new releases are fully Java specification compliant, are well-tested and ready for commercial use, and have been extensively optimized for good application performance on Itanium systems.

Besides re-factoring the base interpreter and profiling infrastructure and adding a new global instruction scheduling component in the JIT compiler, some of the performance enhancements we’ve included in these releases are:
• Itanium specific optimal code generation enhancements
• Tuning of Hotspot’s register allocation to make better use of Itanium’s large register set.
• Compiler modifications to improve Itanium architecture-specific instruction bundling and instruction ordering.

We’re already hard at work on the next release of Java support for Itanium – JDK6u12. The early access version has been posted on Sun’s Java.Net web site, you will need an account to access and download this release. The commercial version of JDK6u12 for Itanium platforms will be released soon, and I’ll be back to post an update once it is available for download. Until then, don’t hesitate to add your comments!