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


Compilers

In the open source melee that is Linux, more than one option exists for re-compiling. The two primary compilers for Linux are the GNU Compiler Collection (GCC) and Intel's C++ compiler. Intel also provides a FORTRAN 95 compiler. The GNU Compiler Collection (GCC) is available for nearly all Linux and UNIX systems, and is portable across platforms. The Gelato Federation, a global technical community, dedicated to advancing Linux on Intel Itanium 2 microarchitecture, has a strong effort afoot (sponsored in part by the Itanium Solutions Alliance) to significantly improve the GCC for Itanium 2-based systems.

The Intel C++ Compiler is designed to be highly compatible with GCC, but adds a set of very aggressive optimizations like inlining of math library routines, interprocedural optimizations that inline functions across files, and Profile Guided Optimizations that provide reporting options for further code optimization based on profiling.

Migrating Windows applications from 32-bit RISC to 64-bit Intel Itanium 2 microarchitecture is straightforward. In addition to the Microsoft compilers, Intel offers C/C++ and FORTRAN compilers that groove to the unique qualities of the Intel Itanium 2 microarchitecture and integrate with Microsoft Visual Studio and Visual Studio .NET environments. The Intel compilers are switch-compatible with Microsoft compilers.

In both cases, code needs to be "cleaned" before porting. Tutorials on how to go about making sure your Windows or Linux code is 64-bit clean can be found all over the Web, including the Intel, HP, and Gelato web sites. Intel Itanium 2 processors also run a variety of other operating systems, each with unique portability issues which an organization must address before a porting project gets underway.

Drivers

Drivers require special consideration because of their intimate relationship with the hardware platform. This is yet another area in which the Intel Itanium 2 processor breaks new ground, this time with the Extensible Firmware Interface (EFI) which offers freedom from the decades-old shackles of PC BIOS.

With EFI, the ideal of platform independence for hardware devices is closer to reality. The standardized driver model means, for instance, that changing a keyboard bus from PCAT to a USB on Intel Itanium 2 microarchitecture does not require any application code changes if developers follow the EFI standard. Other features of EFI include a pre-OS boot point in system startup, meaning that actions can be triggered without booting an operating system. A libc utilities interface to the system prevents having to create stand-alone utilities. Best of all is the shorter learning curve compared to programming drivers for PC BIOS.

32-bit Support

In addition to compiling a fully native 64-bit application, the Intel Itanium 2 microarchitecture provides x86 compatibility via the IA-32 Execution Layer (EL), a software-based translator replacing the less-efficient, less-flexible, hardware-based 32-bit support of the original Intel Itanium processor. IA 32-EL is usually faster than hardware-based x86 support because it translates "live" frequently used code to native IA-64 instructions.

The IA-32 EL provides performance scaling as processor performance increases as well as the flexibility to add enhancements to the operation of 32-bit applications on Itanium 2-based systems. Both Windows and Linux operating systems running on Itanium 2-based systems support IA-32 EL, greatly broadening the range of IA-32 applications that run well on such systems. Operating systems that support IA-32 EL include:

  • Asianux.
  • Microsoft Windows Server 2003 Enterprise Edition and Datacenter Edition.
  • Red Flag Advanced Server and DC Server.
  • Red Hat Enterprise Linux.
  • SUSE Linux Enterprise Server.
  • SGI Advanced Linux Environment with ProPack.

While in nearly every case a fully native 64-bit port results in the greatest performance benefits, it's not always practical to port everything at once. Achieving near-native Itanium 2-based server performance while migration projects are in progress is possible with a hybrid approach in which primary software like drivers and major applications are ported first while secondary programs continue to run in 32-bit. The IA-32 EL also facilitates communication between 64- and 32-bit applications and may provide the ability to continue running programs for which source code is not available.


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.