Pardiso: No speed up when using 2 threads compared with 1 thread

Pardiso: No speed up when using 2 threads compared with 1 thread

Hi there,

I am incorperating Pardiso into an existing program and am not seeing any speedup when using 2 threads compared with using just 1.

I notice that both CPUs on my machine are being used when running with 2 threads (as oposed to task man. just showing 50% when using 1 thread).

I have used compiler directives to align arrays passed to pardiso at 16 byte boundaries.

I am calling pardiso repeatedly like this:

if(need_to_reorder) then
phase = -1
call pardiso (arg1, arg2 ....)
phase = 12
call pardiso (arg1, arg2 ....)
else
phase=22
call pardiso (arg1, arg2 ....)
end if
phase=33
call pardiso (arg1, arg2 ....)

I'm linking the following MKL libs statically:

"mkl_solver.lib" "mkl_intel_c.lib" "mkl_intel_thread.lib" "mkl_core.lib" "libguide40.lib"

I am compiling with (debug):

/nologo /Zi /Od /include:"......commonmod_dbg" /include:"......commonmod_dbg_1d" /debug-parameters:all /fpe:0 /module:"......commonmod_dbg" /object:"Debug/" /traceback /check:bounds /libs:qwin /dbglibs /c /MTd /Qopenmp

...and linking with (debug):

/OUT:"debug***.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:Program FilesIntelMKL10.0.3.021ia32lib" /NODEFAULTLIB:"dfconsol.lib" /NODEFAULTLIB:"libc.lib" /NODEFAULTLIB:"libcd.lib" /MANIFEST /MANIFESTFILE:"C:dev***CompaqVF******debug***.exe.intermediate.manifest" /DEBUG /PDB:"C:dev***CompaqVF******debug***.pdb" /MAP /MAPINFO:EXPORTS /MAPINFO:LINES /SUBSYSTEM:WINDOWS /ENTRY:"WinMainCRTStartup" /IMPLIB:"C:dev***CompaqVF******debug***.lib" "kernel32.lib" "mkl_solver.lib" "mkl_intel_c.lib" "mkl_intel_thread.lib" "mkl_core.lib" "libguide40.lib" /MACHINE:I386 /MTd

I have read through the docs and can't see any other reason why there is no speed up.

Could it be false sharing: would my arrays need to be padded as well as starting on a 16-byte boundary?

Any help would be much appreciated.

Regards,

Pete

1 contenuto / 0 nuovi
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione