views:

340

answers:

2

Dear Collegues;

I have a serial Fortran code that works fine. Once I compile the same code using ifort -parallel and run it, it gives wrong results and overflow. I would expect that with "-parallel" flag, the Intel compiler is capable of selecting the loops that are safe to parallelize and I should get the exact same results as for the serial code, which did not happen. The even more strange behaviour is that I went ahead and closed all the do loops parallelization in my code using !DEC$ NOPARALLEL, compiled the code using ifort -parallel to make sure that non of the loops was parallelized and then run. Surprisingly, I got the same wrong results and overflow, although the latter action should be exactly equivalent to a serial code.

Is there any one capable of explaining this behaviour or is it just an Intel compiler deficiency.

Greetings.

A: 

Hi

Sorry to say this, but it's unlikely to be an Intel compiler problem it's a pretty good compiler (no, I don't work for Intel ! but I do use their compilers).

Yes I am capable of explaining this sort of behaviour, but without sight of your program anything I suggest will be wrong.

Regards

Mark

High Performance Mark
Hum, I've had my share of bad experiences with Intel Fortran (in all versions >= 7). Without knowing, I would not blame bad user code, nor the compiler, but the bug report :)
FX
I've had my share of bad experiences with pretty much every possible kind of software, but still, purely statistically speaking, Intel's compiler is one of the more used ones. If there is a problem with a relatively used option, there is more of chance that the problem is in the new user, than in the compiler tested by many.
ldigas
+1  A: 

Answers were given to this identical question on the Intel Fortran Forum: http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/68867/

M. S. B.