- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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-fortran) 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.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page