Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29253 Discussions

Webinar: Developing for Intel 64-bit Platforms

Steven_L_Intel1
Employee
814 Views

Intel and Programmer's Paradise are hosting a FREE webinar featuring Intel Software Engineers to help you learn more!

Webinar topic:

What are the Differences Between Intel Itanium Architecture and Intel Extended Memory 64 Technology?

When:

Tuesday, November 16th at 1:00 p.m. PST

How to register:

Visit the Programmers Paradise Registration Page

This session will give you the basics you need to target a ported application to either an established Intel Itanium processor-based platforms or to the new Intel EM64T-based platforms. This session will give you a key tip on how to spot likely porting issues.

Covered topics:

Mixing and matching Intel generated objects with those from GCC* or Microsoft*

Key differences between the Intel Compiler functionality for Itanium-based systems and Intel EM64T-based platforms

Targeting an application for code or address spaces larger than 2GB

Optimizations that can be gained by using Intel Compiler on Intel EM64T-based platforms

New SSE3 instructions available on Intel EM64T-based platforms

Key compiler optimization reports to help you understand applied optimizations

0 Kudos
8 Replies
Zhanghong_T_
Novice
814 Views
Hi all,
I am longing for attend this discuss. Unfortunately, I have missed this event because it's at 5:00AM Beijing Time. Have you attended this event? Can anyone upload the video of this event?
Thanks,
Zhanghong Tang
0 Kudos
durisinm
Novice
814 Views
I didn't get an answer to this question from the Webinar. What will be the default sizes for the standard data types INTEGER, REAL, DOUBLE PRECISION, and POINTER?

Mike D.
0 Kudos
Steven_L_Intel1
Employee
814 Views
No change in any of the numeric types. POINTER sizes will be the size of an address, as they always are. (Or descriptors comprised of several address-sized things.)
0 Kudos
Zhanghong_T_
Novice
814 Views
Hi Dr. Steve,
Thank you very much for providing us the report. Now I have some questions:
As shown in Fig. 1, canI really use Intel EM64T in on 32-bit windows? How should I do?
As shown in Fig. 2, can I really use more than 2Gb memory on 32-bit windows under Intel EM64T system by setting -mcmodel=large and -i_dynamic? How should I set it in VS.net? I have tried to set by
Project->Property->Linker->Command Line->Additional Options: -mcmodel=large -i_dynamic
When I compiling my project, it display
LINK : warning LNK4044: unrecognized option '/mcmodel=large'; ignored
LINK : warning LNK4044: unrecognized option '/i_dynamic'; ignored
Thanks,
Zhanghong Tang
Fig. 1
Fig. 2
0 Kudos
Steven_L_Intel1
Employee
814 Views
In order to use 64-bit addressing, you must use both 64-bit hardware, such as a system based on a processor with Intel EM64T, AND a 64-bit operating system. Microsoft has not yet released 64-bit Windows for this platform, but it does have "preview editions" of both Windows XP 64-bit and Windows Server 2003 64-Bit Extended that can be used.
The switches you are trying to use are for Linux-only and do not apply to Windows.
0 Kudos
durisinm
Novice
814 Views
Steve,

Even though I didn't explicitly say so in my original post, you correctly interpreted my question to mean what the sizes would be in a 64-bit environment.

Will using INTEGER*8, REAL*8, and DOUBLE PRECISION in a 64-bit environment be faster or more efficient than using them in a 32-bit environment because of the larger address sizes? Will it be important for data structures and arrays to be declared so that variables begin on eight-byte boundaries and not cross over boundaries?

Mike D.
0 Kudos
TimP
Honored Contributor III
814 Views
I don't want to contradict what they might have said in the presentation. I suppose there wasn't much Fortran emphasis. The 64-bit system should give a significant advantage for 64-bit integer operations. In the 32-bit system, 64-bit scalar integers are handled as pairs of 32-bit operands, while they are a native type in 64 bits. The larger address size probably becomes a performance advantage only when it saves you from doing out-of-core matrix operations, and the like. Alignment is equally important in 32- and 64-bit environments on the same hardware, except for the change in 64-bit integers, where 4-byte alignment was OK in the 32-bit environment. Vectorizable arrays gain from 16-byte alignment both in 32- and 64-bit environments. The advantage has generally increased on the higher clock speed hardware.
0 Kudos
Steven_L_Intel1
Employee
814 Views
Nothing will really change for floating types. Relative performance will be similar and no change in alignment rules.

All you really need to be concerned about is that addresses are 64 bits. Tim is correct in saying that INTEGER*8 operations will be faster since there are 64-bit integer registers.
0 Kudos
Reply