- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
I usually compile my Fortran-90 source code (which include OepnMP clauses) with :
ifort -g -debug extended -O3 -xHost -openmp -openmp-simd -openmp-report -ipo -fpconstant -fp-model strict -fpe0 -traceback -ftrapuv'
When I tried to compile with -FAST the code aborted. Now, according to the composer-14.0 documentation the difference is in adding the -no-prec-div AND -static options. I think -static should not lead to such an error. I didn't find anything about -no-prec-div . Any kind suggestions of how to proceed or getting the equivalent optimization of (-fast) in a different way ?
Thanks very much,
Jack.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The documentation lists all of the switches that -fast groups together. You can specify them individually. What do you mean by "the code aborted"? -static just specifies static linking.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Steve.
When I run using IDB I get : ''Program received signal SIGSEGV in ?? ()'' right after entering the module consisting the OpenMP clauses.
When I run it regularly through the terminal it runs, but then it gives me different numbers in debug printing positioned in a serial section within the OpenMP code. So I guess my question transforms to - what is the interaction between the -fast switch and the -fp-model strict (if any) ? Is there a way to preserve 12 digits of a double precision number between runs with/without -fast switch ?
Thank you,
Jack.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
On Linux, specifying -fast is equivalent to -ipo, -O3, -no-prec-div, -static, -fp-model fast=2, and -xHost
I suggest that instead of -fast, you simply provide only those options you want. Note that -no-prec-div enables replacing divides with multiply by reciprocal, which might give slightly different answers.
Take a look at the attached presentation for more thoughts on numeric reproducibility options. Depending on your application's complexity, keeping a full 12 digits of double precision (typically good to 15) could be problematic.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
Thanks for your time and answer. Its always nice and educating to read your answers.
Jack .
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page