TechArena Community

TechArena Community (http://forums.techarena.in/)
-   Operating Systems (http://forums.techarena.in/operating-systems/)
-   -   Different code performance on Windows and Linux (http://forums.techarena.in/operating-systems/1364993.htm)

Gavinovo 24-09-2010 08:17 PM

Different code performance on Windows and Linux
 
I have an computer compatible with Windows Vista 64bit operating system with two processors one is Intel Xeon CPU 2.27GHZ and another one is 2.26GHZ. Installed Intel Fortran 11.1.048. Always a error is occurred in compiler flag. Another Linux operating system with Intel Xeon CPU 5410 at 2.33GHZ. I used to do some vector operation in both the systems, problem is whenever I run the program in Windows the other system(Linux) is little bit faster than the window system and vice-versa. Can anyone tell a valid reason for this problem?

Milton.J 24-09-2010 08:18 PM

Re: Different code performance on Windows and Linux
 
Make sure that the compiler flag for the window system during terminate the program is:
Quote:

/nologo /heap-arrays1000 /extend_source:132 /fpe:0 /Qfp-speculation=safe /module:"x64\Release\\" /object:"x64\Release\\" /libs:static /threads /c
And for the Linux system the compiler flag in Fortran will be:
make FFLAGS="-warn general -132 -heap-arrays 1000 -O2" \
CFLAGS=" -O2" \
CXXFLAGS=" -O2" \
LFLAGS="-static " \
FULLLIBS="-L/opt/intel/Compiler/11.0/083/mkl/lib/em64t /opt/intel/Compiler/11.0/083/mkl/lib/em64t/libmkl_solver_lp64_sequential.a -Wl,--start-group /opt/intel/Compiler/11.0/083/mkl/lib/em64t/libmkl_intel_lp64.a /opt/intel/Compiler/11.0/083/mkl/lib/em64t/libmkl_sequential.a /opt/intel/Compiler/11.0/083/mkl/lib/em64t/libmkl_core.a -Wl,--end-group /opt/intel/Compiler/11.0/083/mkl/lib/em64t/libmkl_intel_thread.a -limf -lm " \
ARFLAGS=" -ruv" \
OS="lnxem64" DF=lnxem64\
CMD="SERIAL" pixelinv
If these two matches with your compiler flag then sure that there is no problem in your compiler error. It for something else.

Spyrus 24-09-2010 08:19 PM

Re: Different code performance on Windows and Linux
 
Check you registry serial number which you entered in your system for both windows and the Linux system. The problem may occur for the wrong insertion of the registry serial key. I had an same problem, and found that it was occur for mismatching registry key in my Intel Fortran. So, I am giving the script for the vector operations check this, it will help you
Code:

make[1]: Entering directory `SERIAL'
mpif90 -warn general -132 -heap-arrays 1000 -O2 -static  -c M.F
mpif90 -warn general -132 -heap-arrays 1000  -O2 -static  -c S.F90
S.F90(922): (col. 10) remark: LOOP WAS VECTORIZED.
S.F90(926): (col. 10) remark: LOOP WAS VECTORIZED.


Snake08 24-09-2010 08:20 PM

Re: Different code performance on Windows and Linux
 
If you are asking that, your codes are occupies a large number of memory space, as you mentioned in your post that the temporary array copies by one system while you are doing task in another system. Mind that the Linux having the less memory but more in paging, in comparison of any windows version.

Zachary 24-09-2010 08:20 PM

Re: Different code performance on Windows and Linux
 
According to your post you are using different compiler in your two different systems. I used the same operation(vector) in the Linux system. And found that some loops are vectorised in any system but not in the other system. Would suggest you turn on the high-level optimization. Fortran90 is not applicable to optimize in the older compiler.

Trio 25-09-2010 05:19 PM

Re: Different code performance on Windows and Linux
 
I think you are looking in the wrong place fro the initialization phase, it is written in out data, fro that it takes the large amount of memory allocation. Insert the time code for obtaining the initialization time. ?time _after_ initialization?. Then again type some script for the terminating phrase ?again _before_ termination?.


All times are GMT +5.5. The time now is 10:36 AM.