Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Parallel

Itanium 2 Developer Days Diary


Key Factors to Consider When Porting to Itanium-based Systems

Moving a program from an early-90s Cray mainframe to an Itanium 2-based system will be harder than moving a program from the Intel Xeon 64-bit processor to an Itanium 2-based system. Luckily, Intel, HP and other vendors offer access programs that give members access to the latest Itanium 2-based hardware, often before it comes out on the market. In addition to the ability to lease systems at a discount the Intel Early Access Program offers support for training, testing, optimization, and other elements of porting to the Intel Itanium microarchitecture. The Intel Remote Access program lets developers use Itanium-based systems remotely:

Consider the larger ecosystem as well. Will your shiny new Itanium 2-based application have to communicate with other systems? Is there mixing of 32- and 64-bit systems? Are there potential security issues? What level of users will be interacting with the application? Where are data stored, and how are they accessed? These can all be factors in deciding how to port.

Operating Systems

One of the biggest advantages in using servers based on commodity processors like the Intel Itanium 2 microarchitecture is that they can run a variety of operating systems. In fact, because of their virtualization capabilities and processing power, Itanium 2-based systems can often run different operating systems simultaneously. Whether your software is made for OpenVMS, Windows, HP-UX 11, or any of multiple versions of Linux, you can get it onto an Itanium 2-based server or cluster without having to recompile for both a new OS and a new processor. Operating system migrations often far outstrip the complexity of the move between processor types and must be dealt with on their own terms before the hardware migration even begins.

Code and Languages

Ideally, you have the complete source code in your hands. Due to differences in pointers and data sizes, you'll still have some work to do to get your code ready for the migration. But with a highly-optimizing Intel Itanium 2 compiler, you stand a much greater chance of getting the most out of the EPIC architecture and other advanced processor features if you have the source code, as well as a full set of post-compile testing and optimization tools from which to choose.

Applications that rely on runtime environments (RTE) such as Java, .NET, or shell programming languages like Python and Perl are the easiest to migrate. Of course, this assumes that the appropriate RTE is available for the Intel Itanium 2 microarchitecture; most are. Native libraries, external components and database drivers that are crucial to the functioning of a managed application still may need to be ported or replaced with compatible equivalents.

If you don't have the source code, you could face the onerous task of rebuilding from the bottom up. Even though the software in question might be outdated and stand to benefit from such an initiative, a complete rewrite could be too expensive or time-consuming. For such situations, Intel has provided the IA-32 Emulation Layer (IA-32 EL), a software-based solution for running 32-bit programs on Itanium 2-based systems. While it can't match the performance of natively compiled code, it beats starting from scratch.

Assembly language is not much easier to port to Intel Itanium 2 processors. Assembly for the Intel Itanium 2 microprocessor is radically different than that for other processors and it can be difficult to take advantage of processor features when coding at an assembly level, so much so that Intel's documentation recommends against coding in assembly.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.