- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have three questions:
1) The executable in release configuration says that some DLLs are not found when used in machines that do not have ifort installed. Here are the options that I am using for compilation:
ifort /nologo /debug:full /Qparallel /assume:buffered_io /Qipo /fpp /gen-interfaces /stand:f03 /warn:all /fp:precise /Qfp-speculation=off /module:"Release\\" /object:"Release\\" /traceback /check:all /libs:static /threads /c /QaxTPNS /Qvc9 /Qlocation,link,C:Program FilesMicrosoft Visual Studio 9.0VCbin"
When I turn off /Qparallel and /Qipo and run in debug the executable runs. The DLL 'libiomp5md.dll' is not found on some machines. Are there any special flags to make the parallelization /IPO work without additional DLLs?
2) Why am I getting the following warning?
ifort: command line warning #10212: /fp:precise evaluates in source precision with Fortran.
I thought /fp:precise floating point model is compatible with /Qfp-speculation=off. I want to compile such that the results can be repeated (reproduced) on multiple hardware / platforms with the same double precision accuracy in the code.
integer, parameter, public :: dp_k = selected_real_kind(2*precision(1.0_sp_k))
3) There used to an Intel page and discussion about multiple CPU displatch flags (/QaxTPNS). I can not find it now. Is the above flag still good to make sure that the execulatble is optimized for all common CPU configurations? Whats the suggestion for the current version 11.1.054?
Your help is appreciated.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1) /Qopenmp-link:static You will probably have to add this under Additional Options
2) In Intel C++, precise and source mean slightly different things, but in Intel Fortran they mean the same thing. Use /fp:source to avoid the warning.
3) As far as I know, you are limited to three code paths with /Qax - generic and two specific. There's certainly no point in specifying P and N, which are variants on SSE2, as that's the default. My advice would be to use /QaxSSE4.1 to get code that takes advantage of Core 2 processors. For more information, see here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1) openmp-link:static links the static library in place of libiomp5md.
There shouldn't be any direct relationship between /Qipo and the libraries used.
3) Current Core 2 CPUs (but not early ones) would take advantage of the SSE4.1 option, and it will be fairly good for Core I as well. Any deviation from Steve's recommendation would apply only in specific circumstances. If your application depends strongly on complex arithmetic and performance on older SSE3-capable CPUs were important, you might want to include /arch:SSE3 in the options, but it seems that would prevent running on CPUs which don't support SSE3.
If you want to take advantage of SSE4.1 but also run on 32-bit CPUs which don't support SSE2, it seems you require /QaxSSE4.1 /arch:IA32

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