by Rebecca Rohan, writer. Intel Corp.
To make a successful migration of your applications from Intel 32-bit architecture to Intel 64-bit architecture, you need the right set of plans for the job. It's a little like moving the family to a moon colony for the first time: There's the bonus of weightlessness compared to the heavy lifting from 16- to 32-bit Windows; but the trip and the transition will be even easier if everyone knows what to expect, and follows a check-list to prepare for the journey.
Obviously there's more involved than just piloting the Moon-Haul—the porting details, from dword to #ifdef, are covered amply in the literature. But every good space program also deals with expectations, end-to-end planning, and the most efficient focus of efforts. We talked to some veteran Itanium® architecture travelers to get their advice for dealing with those parts of the move.
Set the family's expectations
You don't want to hear "Are we there yet?" five minutes after takeoff on a journey that takes days—though you may be surprised to find you are there right away during straight-forward parts of the trip, like the compile.
"From a development standpoint, my team was amazed at how much easier the porting was than a lot of the team thought it would be," says Steve Grobman, manager of Active Directory and messaging tools within Intel's Information Technology Division. "One of the biggest challenges was using something that sounded so new. In reality, it's just Windows and it was just like developing software on Windows 2000. We went from 'Hello, world' to complex things like COM and inter-process communication literally in the same day.
"It's important to build confidence in developers who are moving toward the 64-bit platform by starting them with something simple, then moving very quickly to something complicated," continues Grobman. "It's not like a different OS. Take a current application that works on 32-bit Windows and compile it on 64-bit. It's easy to get a clean compile. Go to the management team and show them."
But a successful 64-bit compile is just one leg of the trip. "Don't be discouraged if you don't see an increase in performance—or even if you see a decrease," says Gerd Heber, research associate for the Cornell Theory Center. Heber recently ported a large simulation package in computational fraction mechanics, which studies fractures and predicts how a track grows over time. "You'll hardly have pushed the code by just porting," says Heber. "Optimizing is a different story. There you have to think more of the architecture, where there may be bottlenecks in your code." Again, deal with expectations in advance.
Use a weigh station
If you can't accurately measure the load in your Moon-Haul, your speed, amount of fuel, and burn rate, you may overshoot the moon or run out of fuel and float into oblivion. "Make sure you have a meaningful test suite," says Heber. "After the nitty gritty of porting, you want to test that the answers you get are correct." Heber's team has typical civil engineering models such as the power transmission gear in a helicopter. "We know what it looks like—under certain circumstances teeth can break off. A 3D model shows that when jet engine turbine blades spin at a very high RPM, the blades are subject to radial acceleration. If you detect a flaw from a photograph, you would be interested in how long you could expect safety. We take the answers the Itanium-based software gives us and see if they're nonsense—that would mean errors in porting. If you don't have tests like that, you will never reach the necessary level of confidence."
Ask for directions
Terra Lycos provides, among other things, three tiers of stock data—downloads to a desktop window, a Java applet on the Web, and a TCP/IP feed to day traders. The company wanted to get more data in memory and on disk by exploiting Itanium. "We intend to store in excess of 12 GB in memory," says Richard Mocek, director of engineering for Terra Lycos. "That's not possible in 32-bit. You can go up to 64 GB [of RAM] with Itanium."
Not one to drive around in circles, Mocek's team worked cooperatively with Intel's fee-based Solution Services group. "They provide project management—help you identify the amount of effort and issues involved," says Mocek. "And they help with the effort itself—take you through the entire process."
The Solutions Support Center's process sounds like a smart one to follow, with or without them: "They take you through a set of documents detailing what your application is, and some of the code specification, such as the language, amount of code, data alignment, and so on," says Mocek. "They provide a set of tools and work with you, and give you instructions for working with the kind of things they had identified as potential issues with the port. Then you get together and plan a visit to their site, where they provide the white boxes and specialists with past porting experience. You've planned the work you would do at the site before hand—and gotten things out of the way, so the visit time is best spent."
"Two of my developers went to the site and spent time with specialists at their shoulders," says Mocek. "That way we keep that knowledge in-house. Make sure decisions are made by your engineering team on the ways you can go about solving the problems." There are several Solutions Support Centers around the country, and Mocek's team only had to travel ten miles to Santa Clara from Lycos' home in Mountain View, CA. (See this map for locations of Support Centers around the world.)
If you can't dock with a Support Center, take advantage of documents online and get live help when needed. "There were a few tricks, but nothing major," said Joshua Taurek, CTO of PopCast.com. "You have to be shown the setup by Intel people. The setup for development documents is still beta-like. The detailed technical documents are good, but nothing is a replacement for experience. It's writing and compiling—trial and error. You'll need a point of contact for initially configuring your system to compile."
Use cruise control
"One of the most important strategies around Itanium is to let the compiler do the right thing," says Grobman. "I recommend against reading through code as a method to identify 64-bit incompatibilities. Set the appropriate flags to give appropriate warnings—it's much easier than trying to be the compiler." Grobman also recommends seeing how much optimization the compiler can do for you.
Blast off!
Follow the trip tips above (see also Rough Order of Operations—Plan Your Migration To Best Effect), bring along snacks and games for the kids, and use the rough outline of operations below to make your mission to Itanium a successful launch.
About the author
Rebecca Rohan has been writing about technology since 1988, and sneaking it into places such as Internet Week,
ZD Net, SD (Software Development) Times, Web Developer, Linux Magazine, andWindows CE Technical Journal, without being apprehended.
![]()
![]() | Embedded development - QNX or Linux? by Thomas W. Burger. Intel Corp. In the late 1990s, the Web appli... |
![]() | Turn performance killers into performance enablers by Alan Zeichick, principal analyst, Camden Associates. Intel Corp. ... |
![]() | Case Study: Animation Company Improves Rendering and Cost with Intel Xeon Processor Maya Entertainment Ltd. is a leading computer animation and visual eff... |
If you're interested in this topic, these articles may be helpful:
![]() | Migrating Java to C# manually: four case studies by Jason A. Fletcher, application engineer, Intel Software and Solu... |
![]() | Compatible A database that is compatible with other popular database products and... |
![]() | Achieve maximum application performance migrating from Unix to Linux by An Le, technical consulting engineer, and Max Domeika, technical c... |
![]() | Intel Itanium microarchitecture support for .NET and Java by Matt Gillespie, technical author and editor. Intel Corp. The Int... |
![]()
Related Jobs:


