Specific Functions in Compaq Fortran

Specific Functions in Compaq Fortran

Guilherme S.的头像

Hi,

I´m converting an application from Compaq to Intel Fortran.

The converted version is compiling just fine (and I made no changes to the source code), but I'm wondering if it is enough to say the that the converted version produces the exact same results.

Since the application is critical, there must be no mistakes.

My main concern (and I would like to verify if it is a reasonable concern) is that Compaq compiler may have some specific functions that although it is supported by Intel , may produce differents results. If yes, what functions/statements/codes should I be looking for?

I have read (http://software.intel.com/en-us/articles/migrating-from-compaq-visual-fo...) from "A to Z", and none of the mentioned specificities apply

Of course I will be running several others tests to have verify the results and try to reach 100% code coverage.

3 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项
lklawrie的头像

You will most likely not get "the exact same results" for several reasons from the Intel vs CVF vs any other compiler for various reasons.  There are cases where different settings in one compiler may not produce the same results at all times for all runs.

Linda
Steve Lionel (Intel)的头像

There are things that can create differences. The most important is that the Intel compiler generates SSE2 code by default, whereas CVF doesn't. SSE2 enables vectorization which can cause small differences in numerical computations. A related difference is that CVF, using the old X87 floating point registers, might keep some intermediate results in extra precision before rounding. Another difference is the math library - Intel Fortran uses the Intel math library which is different from Compaq's and, for some input values, may give slightly different (generally more accurate) results. Again, though, many math functions are vectorized and this can change results.

Most applications don't see any of these differences, but if yours does and you feel they are important, there are options you can select to disable some optimizations and get results closer to what CVF gave, at the cost of lower performance.

However, in the case of general functions, it should be the same. There have been, of course, bug fixes in the last 12 years, and it's possible some of these changed behaviors. It's not something I suggest worrying about.

Steve

登陆并发表评论。