<?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 Strange case of Dll hell in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Strange-case-of-Dll-hell/m-p/816619#M4324</link>
    <description>Our (quite complex, multi-component, multi-language) software uses MKL dlls which are distributed with Intel Composer XE Update 1 (12.1), and we redistribute these dlls in our own .\\Bin folder. We ship the software for both 32-bit and 64-bit platforms. The problem is detected on 32-bit one (we aren't sure if it occurs on 64-bit, but only the 32-bit computers have the environment suitable for reproduction)&lt;BR /&gt;&lt;BR /&gt;The three dlls in question are:&lt;BR /&gt;&lt;BR /&gt;mkl_def.dll (10.3.1.1)&lt;BR /&gt;mkl_core.dll (10.3.1.1)&lt;BR /&gt;mkl_intel_thread.dll (10.3.1.1)&lt;BR /&gt;&lt;BR /&gt;On some computers (32-bit XP), an innocuous call to a Lapack routine (can't recall exactly which one, I think cgetrf) resulted in a process hanging. We determined that the call has never exited, and it stayed in the MKL forever. In other computers, it worked perfectly.&lt;BR /&gt;&lt;BR /&gt;By a long combination of trial and error, we determined the conditions, by which the problem is also reproducible on other computers:&lt;BR /&gt;&lt;BR /&gt;- The problematic computer had Intel Fortran 11.1 pro, with an older version of MKL, installed&lt;BR /&gt;- The path to the old&lt;B&gt; &lt;/B&gt;MKL exists in PATH&lt;BR /&gt;&lt;BR /&gt;In other words, if we got the old MKL directory out of the way (either by modifying the PATH or by renaming the directory), it worked perfectly. Otherwise, it would hang.&lt;BR /&gt;&lt;BR /&gt;However, the behavior does not make sense to me. The calling process is in .\\Bin folder. According to &lt;A href="http://msdn.microsoft.com/en-us/library/7d83bc18%28v=VS.100%29.aspx"&gt;MSDN&lt;/A&gt;, modules are called from the .exe's directory first, then from the working directory (also our .\\Bin, I think), and only after that from the PATH. From the calling .exe (C#), we traced the module list (EnumProcessModules or equivalent):&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="sectionBody"&gt;25.01.2011 11:28:30,546 DMS_FunctionHost.exe [TID=ExecuteHandler] - (DEBUGLOG) Module name: mkl_intel_thread.dll. Full path to the&lt;BR /&gt;module: C:\\Program Files\\TelventDMS\\DMS Software v3\\bin\\mkl_intel_thread.dll&lt;BR /&gt;25.01.2011 11:28:30,546 DMS_FunctionHost.exe [TID=ExecuteHandler] - (DEBUGLOG) Module name: mkl_core.dll. Full path to the module:&lt;BR /&gt;C:\\Program Files\\TelventDMS\\DMS Software v3\\bin\\mkl_core.dll&lt;BR /&gt;&lt;/PRE&gt;Dependency walker shows no C:\\Program Files\\...\\MKL path in used libraries. There is &lt;B&gt;apparently&lt;/B&gt; no dependency, but there is &lt;B&gt;obviously&lt;/B&gt; one. It seems that the MKL/Lapack tries to load something from the PATH that we don't want, but I have no idea what would that be.&lt;BR /&gt;&lt;BR /&gt;We can perhaps submit the reproducer, but as I said, it's very complex software (didn't try a smaller reproducer). Before we try it, does the behavior perhaps light a bulb for someone? Is there something "hidden" that some of MKL dlls tries to load from the path? How would that cause a hang?&lt;BR /&gt;</description>
    <pubDate>Tue, 25 Jan 2011 15:40:25 GMT</pubDate>
    <dc:creator>Jugoslav_Dujic</dc:creator>
    <dc:date>2011-01-25T15:40:25Z</dc:date>
    <item>
      <title>Strange case of Dll hell</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Strange-case-of-Dll-hell/m-p/816619#M4324</link>
      <description>Our (quite complex, multi-component, multi-language) software uses MKL dlls which are distributed with Intel Composer XE Update 1 (12.1), and we redistribute these dlls in our own .\\Bin folder. We ship the software for both 32-bit and 64-bit platforms. The problem is detected on 32-bit one (we aren't sure if it occurs on 64-bit, but only the 32-bit computers have the environment suitable for reproduction)&lt;BR /&gt;&lt;BR /&gt;The three dlls in question are:&lt;BR /&gt;&lt;BR /&gt;mkl_def.dll (10.3.1.1)&lt;BR /&gt;mkl_core.dll (10.3.1.1)&lt;BR /&gt;mkl_intel_thread.dll (10.3.1.1)&lt;BR /&gt;&lt;BR /&gt;On some computers (32-bit XP), an innocuous call to a Lapack routine (can't recall exactly which one, I think cgetrf) resulted in a process hanging. We determined that the call has never exited, and it stayed in the MKL forever. In other computers, it worked perfectly.&lt;BR /&gt;&lt;BR /&gt;By a long combination of trial and error, we determined the conditions, by which the problem is also reproducible on other computers:&lt;BR /&gt;&lt;BR /&gt;- The problematic computer had Intel Fortran 11.1 pro, with an older version of MKL, installed&lt;BR /&gt;- The path to the old&lt;B&gt; &lt;/B&gt;MKL exists in PATH&lt;BR /&gt;&lt;BR /&gt;In other words, if we got the old MKL directory out of the way (either by modifying the PATH or by renaming the directory), it worked perfectly. Otherwise, it would hang.&lt;BR /&gt;&lt;BR /&gt;However, the behavior does not make sense to me. The calling process is in .\\Bin folder. According to &lt;A href="http://msdn.microsoft.com/en-us/library/7d83bc18%28v=VS.100%29.aspx"&gt;MSDN&lt;/A&gt;, modules are called from the .exe's directory first, then from the working directory (also our .\\Bin, I think), and only after that from the PATH. From the calling .exe (C#), we traced the module list (EnumProcessModules or equivalent):&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="sectionBody"&gt;25.01.2011 11:28:30,546 DMS_FunctionHost.exe [TID=ExecuteHandler] - (DEBUGLOG) Module name: mkl_intel_thread.dll. Full path to the&lt;BR /&gt;module: C:\\Program Files\\TelventDMS\\DMS Software v3\\bin\\mkl_intel_thread.dll&lt;BR /&gt;25.01.2011 11:28:30,546 DMS_FunctionHost.exe [TID=ExecuteHandler] - (DEBUGLOG) Module name: mkl_core.dll. Full path to the module:&lt;BR /&gt;C:\\Program Files\\TelventDMS\\DMS Software v3\\bin\\mkl_core.dll&lt;BR /&gt;&lt;/PRE&gt;Dependency walker shows no C:\\Program Files\\...\\MKL path in used libraries. There is &lt;B&gt;apparently&lt;/B&gt; no dependency, but there is &lt;B&gt;obviously&lt;/B&gt; one. It seems that the MKL/Lapack tries to load something from the PATH that we don't want, but I have no idea what would that be.&lt;BR /&gt;&lt;BR /&gt;We can perhaps submit the reproducer, but as I said, it's very complex software (didn't try a smaller reproducer). Before we try it, does the behavior perhaps light a bulb for someone? Is there something "hidden" that some of MKL dlls tries to load from the path? How would that cause a hang?&lt;BR /&gt;</description>
      <pubDate>Tue, 25 Jan 2011 15:40:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Strange-case-of-Dll-hell/m-p/816619#M4324</guid>
      <dc:creator>Jugoslav_Dujic</dc:creator>
      <dc:date>2011-01-25T15:40:25Z</dc:date>
    </item>
    <item>
      <title>Strange case of Dll hell</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Strange-case-of-Dll-hell/m-p/816620#M4325</link>
      <description>&lt;BR /&gt;Hi Jugoslav,&lt;BR /&gt;&lt;BR /&gt;Thank you for submitting this issue, we are currently reviewing thisand will provide more details soon.&lt;BR /&gt;&lt;BR /&gt;--Vipin</description>
      <pubDate>Wed, 02 Feb 2011 03:36:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Strange-case-of-Dll-hell/m-p/816620#M4325</guid>
      <dc:creator>VipinKumar_E_Intel</dc:creator>
      <dc:date>2011-02-02T03:36:04Z</dc:date>
    </item>
  </channel>
</rss>

