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

Performance deterioration from 32 bits to 64 bits

Arjen_Markus
Honored Contributor I
257 Views

Hello,

I posted the question below on comp.lang.fortran as well, but as this seems to be particular to the Intel Fortran compiler, we hope that we can get some specific advice via this forum.

Quick warning: the problem sketched occurs in a large program and we have not been able to reproduce it in a more manageable version.

we are experiencing a serious performance deterioration (a factor 2 in the run time) when we compile one of our programs on Linux 64 bits. This deterioration occurs only on Linux 64 bits versus 32 bits. When we run it on Windows (compiled for that particular platform), there is no significant difference in run time between a 32 bits and a 64 bits version.

We have been experimenting with all sorts of potential solutions and none helped. The deterioration occurs in a single routine (unfortunately this one takes the lion share of the calculation). It contains an iteration to converge to the answer, but the number of iterations is almost the same on either platform. It arguments are scalars, but it is invoked in a loop over a large array (and that is contained in a loop over time).

The program is rather vast and we have been unable to reproduce the phenomenon in a smaller program. Which makes it difficult to give advice - we are well aware of this.

The funny thing is that alternative routines we can use within the program do not exhibit such a performance drop.

The effect is also gone if we turn off optimisation.

For various reasons (mostly to allow cooperation between instances of the program) the arrays in the program are allocated via a C library. This library is supposed to take care of proper alignment of the various allocated arrays - mostly double precision reals. Incorrect alignment seemed a possible cause, but sofar our experiments have not confirmed that.

We are using the Intel Fortran compiler 14.0.3 on Linux.

Does anyone have suggestions as to how to tackle this issue?

 

0 Kudos
7 Replies
FortranFan
Honored Contributor II
257 Views

As suggested at comp.lang.fortran, is it possible for you to consider the following? 

1) Contact Intel Premier Support have them take a look at your actual code? and/or 

2) Try a newer version of Intel Fortran, perhaps even the compiler 17 beta, and see if the problem remains.  What if there was a "bug" with 64-bit target on Linux  OS that got fixed in a later version.  And/or 

3) Try another Linux OS distro. 

 

 

0 Kudos
Arjen_Markus
Honored Contributor I
257 Views

We haven't tried suggestion 1 yet (the code is rather large). As for suggestion 2: we are trying to get hold of a newer version indeed, but the bottleneck is with the intermediary (I do not know the details - we seem to have trouble with for other things as well). Suggestion 3: not something we can try ourselves. We have to leave that to our ICT department. But I will try and see what they think.

0 Kudos
Steven_L_Intel1
Employee
257 Views

My advice would be to run the program under Intel VTune Amplifier XE in the two modes and see if it can help identify a hotspot in 64-bit mode. The thing that comes to mind is memory traffic - if your code moves a lot of pointers around you're doubling the size. VTune can help you spot issues here.

0 Kudos
Arjen_Markus
Honored Contributor I
257 Views

Right, I am going to talk to the people who maintain the hard- and software here. Hopefully we can find out more either via another Linux distro or via VTune.

0 Kudos
FortranFan
Honored Contributor II
257 Views

Steve Lionel (Intel) wrote:

My advice would be to run the program under Intel VTune Amplifier XE in the two modes and see if it can help identify a hotspot in 64-bit mode. The thing that comes to mind is memory traffic - if your code moves a lot of pointers around you're doubling the size. VTune can help you spot issues here.

Steve,

Wouldn't the same issue be there on 64-bit Windows?  If anything, we usually find Windows machines more limited in terms of memory and read/write speeds, so I would have expected any hotspots make the issue worse on WIndows.  But OP is not seeing any problem on Windows.

0 Kudos
Steven_L_Intel1
Employee
257 Views

No idea. Really it is counterproductive to guess. Use a profiling tool - that's what they're for.

0 Kudos
Arjen_Markus
Honored Contributor I
257 Views

Well, I spoke with some colleagues who are closer involved in our computer infrastructure than I am. It appears that we are going to get a newer version of the compiler as well as tools like VTune. We will wait for these tools for now.

0 Kudos
Reply