This article was inspired by the Itanium Solutions Alliance Developer Days, an ongoing series of conferences sponsored by the Itanium Solutions Alliance and intended to give creators of Windows-, and Linux-based applications hands-on knowledge about how to port applications to and optimize them for Itanium 2-based systems. Developer Days are offered free of charge to interested software developers. The events provide training, technical assistance and industry-leading tools from Alliance members.
Ten years ago, computer users and software developers on the cutting edge of microprocessor power were faced with disparate hardware, proprietary operating systems, incompatible architectures, and inflexible vendor relationships. That landscape has changed dramatically with the introduction of the Intel Itanium microarchitecture, a high-end, standards-based processor capable of handling the heaviest workloads.
The Intel Itanium microarchitecture is fundamentally different under the hood than other processors. It doesn't just have 64 bits and more on-board memory; it also "thinks" differently, making the compiler do a lot of the code-juggling that x86 and other processors do with silicon. This required that programmers think differently, too. In the early days of Itanium-based systems, this led to a circular problem. Because the mind-shift was slow in coming, as well as the somewhat greater complexity of compilers for Intel Itanium microarchitecture, tools for porting software to Itanium-based systems lagged. This led to the use of poorly optimized code, or else an excessive reliance on the first Intel Itanium processor's hardware-based 32-bit capabilities. Misperceptions about Itanium-based systems' performance advantages followed, leading to lack of interest in porting, and so on, finally leading to much-exaggerated accounts of the first Intel Itanium processor's impending death.
Soon, however, the market spoke--and loudly, too--especially after the release of the Intel Itanium 2 processor with its increased I/O bandwidth, software-based 32-bit capabilities and other new-and-improved features. Scientific and business users have since found high-speed access to large memory caches and superior floating-point performance not only useful but crucial to cracking the toughest computing challenges. The developer community has embraced the smart solutions made available to them by the Intel Itanium 2 processor, resulting in a vast increase in the quality and variety of tools for porting to it. While it has never been easier to move to Itanium 2-based systems, there are many factors to consider before setting out. In this article, I provide an overview of the challenges and solutions inherent in such an effort.