Saturday, April 11, 2009

Optimising .NET Applications on 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. The modern portfolio optimization techniques use historical prices as the basis to compute risk and returns. This method of optimization uses voluminous data and it is also compute intensive as it needs to find the most optimal investment portfolio configuration in a given vector. The problem 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) to 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. On the other hand, there are fewer options available for .NET based applications. The key thing to remember is that Itanium is a 64bit architecture allowing applications to access in excess of 4MB of memory. .NET framework permits hyper-threading which is Microsoft’s implementation of parallelism. Hyper-threading works both on Xeon and Itanium chipsets.

The way to attaining 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 it 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.

There are also other optimizing techniques discussed for mission critical applications. For more information:

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

Monday, April 6, 2009

IDA Success Story: Protegesoft Wins Global ISA Award

Two of the three Itanium Solutions Alliance Innovation Awards for 2008 were awarded to HP Developer & Solution Partner Program (DSPP) Member companies. Protégésoft won the award for Enterprise Business Application achievement and S7 Software Solutions was recognised for Entrepreneurial Innovation. A third award went to the University of Houston's bioinformatics research team for Humanitarian Impact. The Itanium Solutions Alliance Innovation Awards program recognises innovation and achievement using Intel® Itanium® processor technology to solve complex humanitarian, business and entrepreneurial challenges.
The Enterprise Business Application category awards the creative use of applications that use the benefits of the Intel Itanium architecture to produce either hard business results (such as cost savings and ROI) or soft business impact (including customer satisfaction and new product development). Winner Protégésoft replaced outdated and cumbersome legacy systems with HP Integrity to take advantage of features in their new Financial Portfolio Builder (FPB). FPB is a comprehensive financial investment system that runs on four-way HP Integrity servers running Microsoft Windows Server 2003. FPB supports the entire spectrum of portfolio management. It includes account setup and maintenance, investment allocation, monitoring and dynamic rebalancing, reporting and more -- all on a single unified platform. Using this tool, clients of investment banks achieved annualised portfolio returns of more than 22 percent with an efficiency of almost 30,000 times faster than the conventional method.

For full article: http://www.ida.gov.sg/Infocomm%20Industry/20080610113750.aspx

Tuesday, March 31, 2009

ROI, cost-savings, with Protégé’s financial software

Protégé’s application serves banks and financial institutions

June 2008: Singapore software developer Protégé has won the Itanium Solutions Alliance Innovation Awards for 2008 for Enterprise Business Application achievement.
Protégé was one of three award winners. The others were S7 Software Solutions for Entrepreneurial Innovation, and the University of Houston's bioinformatics research team for Humanitarian Impact.

The Itanium Solutions Alliance Innovation Awards programme recognises innovation and achievement using Intel Itanium processor technology to solve complex humanitarian, business and entrepreneurial challenges.

Read full article at http://www.singaporeinfocomm.sg/home/index.php/web/success_stories/roi_cost_savings_with_protege_s_financial_software

Thursday, March 26, 2009

Can tech companies survive this downturn?

The news is all over the wire about the possible acquisition of Sun Microsystems by IBM. The sun is not only setting for Sun Microsystems, it seems to be going down for other well known brands as well. One of those listed by the Channel Insider 2009 Survey is AMD.

In another blog by Joan Jacobs of the Itanium Solutions Alliance, http://blog.itaniumsolutions.org/2009/03/a-big-blue-sun/; she speaks about how this merger would be reducing the choices of microprocessor for the mainframe architecture.

Coming out of this recession, we are going to see much stronger and larger firms in the tech arena. The weaker ones will either be left behind, acquired at deflated capitalizations or will simply vanish.

The companies that survive will be good candidates for acquisition and will have better valuations because they would have figured out ways of ridding out the recession and would have put in place revenue and business models that are not only recession proof but viable beyond the current economic malaise. Follow the link below:

Based on Channel Insider 2009 Market Pulse Survey, they have predicted that more tech companies will go out of business. Check out this link. http://www.channelinsider.com/c/a/News/Dire-Predictions-Tech-Vendors-That-May-Not-Survive-2009/

Tuesday, March 24, 2009

Hyperthread Benchmarks on Itanium Servers

There is so much debate about this topic that I thought I should add to this about my experience.

We did a benchmark tests on a similar sized machines on a HP and Fujitsu Itanium Servers. The configurations were similar as both were running Windows Server 2003 IA64 Edition. HP seemed to give better performance with Hyperthreading turned ON while Fujitsu gave better performance with Hyperthreading turned OFF. However, it is important to note that the differences were only marginally different.

Please note that these benchmark results are specific to Protege's applications. You may have a different set of results with your own applications. The best advise I can give is to have your applications tested by HP and other vendors to see whether hyperthreads work for you.

Monday, March 23, 2009

Windows IA64 on Itanium Servers

Itanium architecture supports the popular operating system Windows Server. You will need to install Windows Server IA64 Edition. It is a 64bit Operating System and supports the popular MS SQL Server.

MS Biztalk, MS Office and other Microsoft Applications may have compatability issues with Itanium based servers running on Windows IA64 Edition.

Depending on how your application was written, you will need to either turn the hyperthread as on or off. Do a proper benchmark tests with both scenarios.

As a rule of the thumb, leave it to the OS to manage the hyperthreads in your application. Only is very rare occassions that you will have to manage the hyperthreads yourself.

Do provide me with some feedback on how your applications performed on X64 and IA64 platforms.

Sunday, March 22, 2009

Why Itanium?

I get this question all the time - Why Itanium and why not Xeon?

It all depends on the kind of application you're running. Itanium based servers give better compute power over Xeon based servers. While Xeon based servers gives good price performance for data intensive applications.

Most of your .NET applications run on the Itanium chip set without much modification. So the effort is really not intensive. You can develop the application in a 32bit environment and recompile it in a 64bit - this way you can save alot on your development environment.

As far as I know, there are some compatibility issues, but there is no need to sweat over it!!!

Itaniun Solutions Award

I have been involved with ISA for the last four to five years and I must confess that it is the most rewarding journey of my career. I was introduced to the Itanium platform through HP back in 2004 and I didn't think much of it back then. It was only after HP had shipped an Integrity Server (Itanium) that I started to doodle with this machine. It was quite daunting in the begining but we soon learned that this puppy could really run!!! The performance was simply amazing.

We build several apps over the next few years - the most successful was of course the Financial Portfolio Builder, which optimized stock and bond portfolios dynamically. You can read more about the application on my website at http://www.protegesoft.com/ Winning the award was not only a personal achievement but it gave us better recognition in the industry and opened more doors.