<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Pardiso:  No speed up when using 2 threads compared with 1 thread in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-No-speed-up-when-using-2-threads-compared-with-1-thread/m-p/864623#M7780</link>
    <description>Hi there,&lt;BR /&gt;&lt;BR /&gt;I am incorperating Pardiso into an existing program and am not seeing any speedup when using 2 threads compared with using just 1. &lt;BR /&gt;&lt;BR /&gt;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). &lt;BR /&gt;&lt;BR /&gt;I have used compiler directives to align arrays passed to pardiso at 16 byte boundaries. &lt;BR /&gt;&lt;BR /&gt;I am calling pardiso repeatedly like this:&lt;BR /&gt;&lt;BR /&gt;if(need_to_reorder) then&lt;BR /&gt; phase = -1&lt;BR /&gt; call pardiso (arg1, arg2 ....)&lt;BR /&gt; phase = 12&lt;BR /&gt; call pardiso (arg1, arg2 ....)&lt;BR /&gt;else&lt;BR /&gt; phase=22&lt;BR /&gt; call pardiso (arg1, arg2 ....)&lt;BR /&gt;end if&lt;BR /&gt;phase=33&lt;BR /&gt;call pardiso (arg1, arg2 ....)&lt;BR /&gt;&lt;BR /&gt;I'm linking the following MKL libs statically:&lt;BR /&gt;&lt;BR /&gt;"mkl_solver.lib" "mkl_intel_c.lib" "mkl_intel_thread.lib" "mkl_core.lib" "libguide40.lib"&lt;BR /&gt;&lt;BR /&gt;I am compiling with (debug):&lt;BR /&gt;&lt;BR /&gt;/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&lt;BR /&gt;&lt;BR /&gt;...and linking with (debug):&lt;BR /&gt;&lt;BR /&gt;/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&lt;BR /&gt;&lt;BR /&gt;I have read through the docs and can't see any other reason why there is no speed up. &lt;BR /&gt;&lt;BR /&gt;Could it be false sharing: would my arrays need to be padded as well as starting on a 16-byte boundary?&lt;BR /&gt;&lt;BR /&gt;Any help would be much appreciated. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;&lt;BR /&gt;Pete&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Wed, 02 Jul 2008 12:01:27 GMT</pubDate>
    <dc:creator>mostlyAtNight</dc:creator>
    <dc:date>2008-07-02T12:01:27Z</dc:date>
    <item>
      <title>Pardiso:  No speed up when using 2 threads compared with 1 thread</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-No-speed-up-when-using-2-threads-compared-with-1-thread/m-p/864623#M7780</link>
      <description>Hi there,&lt;BR /&gt;&lt;BR /&gt;I am incorperating Pardiso into an existing program and am not seeing any speedup when using 2 threads compared with using just 1. &lt;BR /&gt;&lt;BR /&gt;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). &lt;BR /&gt;&lt;BR /&gt;I have used compiler directives to align arrays passed to pardiso at 16 byte boundaries. &lt;BR /&gt;&lt;BR /&gt;I am calling pardiso repeatedly like this:&lt;BR /&gt;&lt;BR /&gt;if(need_to_reorder) then&lt;BR /&gt; phase = -1&lt;BR /&gt; call pardiso (arg1, arg2 ....)&lt;BR /&gt; phase = 12&lt;BR /&gt; call pardiso (arg1, arg2 ....)&lt;BR /&gt;else&lt;BR /&gt; phase=22&lt;BR /&gt; call pardiso (arg1, arg2 ....)&lt;BR /&gt;end if&lt;BR /&gt;phase=33&lt;BR /&gt;call pardiso (arg1, arg2 ....)&lt;BR /&gt;&lt;BR /&gt;I'm linking the following MKL libs statically:&lt;BR /&gt;&lt;BR /&gt;"mkl_solver.lib" "mkl_intel_c.lib" "mkl_intel_thread.lib" "mkl_core.lib" "libguide40.lib"&lt;BR /&gt;&lt;BR /&gt;I am compiling with (debug):&lt;BR /&gt;&lt;BR /&gt;/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&lt;BR /&gt;&lt;BR /&gt;...and linking with (debug):&lt;BR /&gt;&lt;BR /&gt;/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&lt;BR /&gt;&lt;BR /&gt;I have read through the docs and can't see any other reason why there is no speed up. &lt;BR /&gt;&lt;BR /&gt;Could it be false sharing: would my arrays need to be padded as well as starting on a 16-byte boundary?&lt;BR /&gt;&lt;BR /&gt;Any help would be much appreciated. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;&lt;BR /&gt;Pete&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 02 Jul 2008 12:01:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-No-speed-up-when-using-2-threads-compared-with-1-thread/m-p/864623#M7780</guid>
      <dc:creator>mostlyAtNight</dc:creator>
      <dc:date>2008-07-02T12:01:27Z</dc:date>
    </item>
  </channel>
</rss>

