Recently I've moved on a MAC PRO (2x2.26GHz Quad Core Intel Xeon 16GB DDR3).
I've tried to run a code previously tested on a Dual Core Intel PC with a 32 bit Windows Xp OS.
I noted that the code running on the MAC show a serious issue when running a MKL ruotine (djacobi). Infact the code is significantly slower than the Windows machine an does not furnish the same results.
The interested function is the djacobi function evaluating the jacobian matrix of a certain user assigned function.
I guess that the problem could be related to the compiling and/or linking option i've used on the two machine.
Accordingly i report the adopted option for both cases:
WINDOWS XP 32 bit (I'm using Visual Studio so i report the command line generated by VS)
/nologo /debug:full /Od /heap-arrays0 /I"D:\\Programmi\\Intel\\Compiler\\11.0\\066\\fortran\\mkl\\include\\ " /I"D:\\Programmi\\VNI\\imsl\\fnl600\\IA32\\include\\STATIC\\\\" /gen-interfaces /warn:interfaces /module:"Debug\\\\" /object:"Debug\\\\" /traceback /check:bounds /libs:static /threads /dbglibs /c
MAC OS 64 bit (this is the makefile since i'm using the command line)
where the main program is SINTESI_MAIN.F90 using three modules: MODULE1_FLAT Modulo_2 and NUFFT.f90 (which uses mkl_dfti.f90)
/Od on Windows ia32 compiler invokes x87 extra precision to some extent. If the difference is associated with the difference between -O2 and -Od (-O0 for Mac), you may need double precision somewhere, or you may want some options to disable non-standard optimizations; e.g.
If the question is associated with MKL, the MKL forum is more suitable.
thank you for your answer.
According to your suggestions i compiled using the following option, separetely:
-O2 -assume protect_parens
-O0 -assume protect_parens
Unfortunately i did not solve the problem.
At the moment i'm trying to identify the variables involved in the gradient evaluation that could need the double precision (since up to now i'm using real variable instead of double, except in the routine called by the djacobi where i'm using double precision)