Programming with Intel Extended Memory 64 Technology: Migrating Software for Optimal 64-bit Performance

If you don't have proper clean-up materials or have received no training in proper procedures, call for assistance.
Laboratory posting, Penn State University
It is tempting to jump right into porting to Intel EM64T by recompiling code with all the appropriate compiler switches set, fixing the warning messages, testing the resulting application, and moving on to the next program. For some small programs, this approach will probably work. But for software of any size or importance, this approach cannot be recommended. Problems where code needs to be cleaned up often arise from assumptions about the underlying architecture, and so they are easy to overlook. Worse yet, these problems might show up as bugs at unpredictable moments, and frequently the failures they generate are difficult to replicate. Hence, it makes a lot of sense to enter into a porting project by taking the same first steps that benefit most programming projects: thoughtful analysis and planning.
Porting to platforms with Intel EM64T, however, is not quite like other porting projects, so the necessary steps differ slightly. Best practices, based on Intel's experience with such ports, suggest the following sequence:
Assessing the complexity of the port
Current state of the code
Coding standards
Knowledge of source-code portability issues
Dependency analysis
Additional porting concerns
Porting the code
Prepare the development environment
Building the Software
Minimizing code and data bloat
Functional validation
Functional testing
Unit testing
Performance Validation
Application-level tuning
Architecture-level tuning
Final QA Sign-off
This chapter examines these steps in order and provides...