- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi
i use vs2012 &intel xe 2013
how can i djust vs or pc to use one core for one run in Simultaneous runs for faster run?
if not,is is there a better way to run my code in the fastest mood?
thanks
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Compiling with /fast is a shorthand for a set of options that usually gives good results. But your question is rather vague since we don't know what your code does and what other options there may be. (Calling MKL for certain math functions, for example.)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
well, i have a serial fortran code that written in fortran 6.1 then i just convert it to intel fortran without any change in options.
my code has a iterative process in it to converge and takes many time from me(about 2 day)
so what is youre suggest for more speed?
any help will be greatly appreciated !
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would try /fast first. If you are building in Visual Studio, you'll need to add that under Command Line > Additional Options. Read the description of /fast for more information. Make sure that you are building a Release configuration (if in Visual Studio.)
I will warn you that the program may converge differently if you are comparing to Digital Visual Fortran 6.1.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you have convergence issues, this may be due to the DVF having used the IA32 FPU instruction set, whereas the recent IVF will use the SSE or AVX instruction set. This will present rounding differences as well as loss of precision of internal temporaries as used by the FPU. You may have to adjust your convergence routines.
The older versions of IVF (pre-V16) had an option to force the use of the FPU instruction set over SSE. I do not see an option listed (using ifort /?) that shows such an option exists with current compiler. Steve, is there such an option?
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, there is - /arch:ia32 - but I don't recommend it if performance is what is wanted. You'd essentially be throwing away most of the benefit of using the Intel compiler on modern hardware.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I agree with Steve that you should not use the legacy instruction set if at all possible. At some point in time FPU instructions may be removed. Also, you will not have the benefit of the newer compiler optimizations. Using the newer instructions may cause latent problems in your convergence routines to show up. It is not unusual for a poorly written convergence routine to work by accident than by design with one instruction set or the other. A well designed convergence routine is not sensitive to which is use.
This said, in a pinch, you can compile selected source files with /arch:ia32 and others with SSE/AVX/AVX2. Be careful not to include the /arch:ia32 compiled sources into your multi-file IPO (as this may undo your intentions).
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thanks for you're Guidance.
i have results from past that i had run normally in vs and want comparison result to change Suggest you.but don't know how change it !
would you quide me more?
thanks
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page