Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
10 Views

how can i run my serial code in the fastest case

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

 

0 Kudos
7 Replies
Highlighted
10 Views

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.)

0 Kudos
Highlighted
Beginner
10 Views

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 !

0 Kudos
Highlighted
10 Views

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.

0 Kudos
Highlighted
10 Views

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

0 Kudos
Highlighted
10 Views

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.

0 Kudos
Highlighted
10 Views

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

0 Kudos
Highlighted
Beginner
10 Views

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 

0 Kudos