<?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 Confusing MKL Documentation in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927264#M13467</link>
    <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I'm confused over the MKL documentation regarding using dynamic versus static libraries.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;In the getting started guide it reads&lt;/DIV&gt;&lt;P&gt;Also, threading software is supplied as:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;a separate library (&lt;B&gt;libguide.lib)&lt;FONT face="Times New Roman"&gt;&lt;FONT face="Times New Roman"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Times New Roman"&gt;f&lt;/FONT&gt;or static linking (discouraged - please see "Using Intel MKL Parallelism" section in the &lt;I&gt;mkluse.htm&lt;/I&gt; document)&lt;/LI&gt;&lt;LI&gt;a dynamic link library (&lt;B&gt;libguide40.dll&lt;/B&gt;) when linking dynamically to Intel MKL (recommended - please see "Using Intel MKL Parallelism" section in the &lt;I&gt;mkluse.htm&lt;/I&gt; document)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Well, in the mkluse.htm document, under using parallelilsm there in not one word written regarding using static versus dynamic libraries. Not one word, so what good does reading about using parallelism do me regarding using dynamic verus static linking do? None.&lt;/P&gt;&lt;P&gt;Next, in the Getting Started Guide, it reads in the directory structure that in each implementation (IA32, EM64T, IA64) in the lib directory there is&lt;/P&gt;&lt;P&gt;libguide40.lib interface library for dynamic threading library&lt;/P&gt;&lt;P&gt;libguide.lib static threading library&lt;/P&gt;&lt;P&gt;and in the bin directory there is libguide40.dll, the dynamic threading library alluded to in description of libguide40.lib above.&lt;/P&gt;&lt;P&gt;Okay, fine. But what's confusing me is that in the sample build lines for building apps using dll's it's libguide.lib that's called out in the command line examples, e.g. for IA32&lt;/P&gt;&lt;B&gt;ifort myprog.f mkl_c_dll.lib libguide.lib&lt;/B&gt; cdecl interface for dynamic linking of user code &lt;B&gt;myprog.f&lt;/B&gt;. DLL dispatcher will load the appropriate DLL for the processor dynamic kernel&lt;P&gt;Why, in this example found in MKL Getting Started Guide, is not libguide40.lib called out instead?&lt;/P&gt;&lt;P&gt;and for EM64T an example is called out as&lt;/P&gt;&lt;B&gt;ifort myprog.f mkl_dll.lib libguide.lib&lt;/B&gt; dynamic linking of user code &lt;B&gt;myprog.f&lt;/B&gt;. The DLL dispatcher will load the appropriate DLL for the processor dynamic kernel&lt;P&gt;Again, shouldn't libguide40.lib be called out instead of libguide.lib (which use is deprecated by Intel)?&lt;/P&gt;&lt;P&gt;What am I missing? Does the (deprecated use!) libguide.lib somehow "invoke" libguide40.lib?&lt;/P&gt;&lt;P&gt;Next, since the sparse solver routines can only be statically linked (mkl_solver.lib), am I FORCED to use (deprecated!) static linking when building a dll or exe that references pardiso? In the past, I've built a dll that included the solver pardiso and it works fine (linking against libguide.lib).&lt;/P&gt;&lt;P&gt;Message Edited by Brian-Lamm on &lt;SPAN class="date_text"&gt;05-14-2006&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;09:25 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by Brian-Lamm on &lt;SPAN class="date_text"&gt;05-19-2006&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;05:48 AM&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 14 May 2006 23:19:32 GMT</pubDate>
    <dc:creator>brianlamm</dc:creator>
    <dc:date>2006-05-14T23:19:32Z</dc:date>
    <item>
      <title>Confusing MKL Documentation</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927264#M13467</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I'm confused over the MKL documentation regarding using dynamic versus static libraries.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;In the getting started guide it reads&lt;/DIV&gt;&lt;P&gt;Also, threading software is supplied as:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;a separate library (&lt;B&gt;libguide.lib)&lt;FONT face="Times New Roman"&gt;&lt;FONT face="Times New Roman"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Times New Roman"&gt;f&lt;/FONT&gt;or static linking (discouraged - please see "Using Intel MKL Parallelism" section in the &lt;I&gt;mkluse.htm&lt;/I&gt; document)&lt;/LI&gt;&lt;LI&gt;a dynamic link library (&lt;B&gt;libguide40.dll&lt;/B&gt;) when linking dynamically to Intel MKL (recommended - please see "Using Intel MKL Parallelism" section in the &lt;I&gt;mkluse.htm&lt;/I&gt; document)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Well, in the mkluse.htm document, under using parallelilsm there in not one word written regarding using static versus dynamic libraries. Not one word, so what good does reading about using parallelism do me regarding using dynamic verus static linking do? None.&lt;/P&gt;&lt;P&gt;Next, in the Getting Started Guide, it reads in the directory structure that in each implementation (IA32, EM64T, IA64) in the lib directory there is&lt;/P&gt;&lt;P&gt;libguide40.lib interface library for dynamic threading library&lt;/P&gt;&lt;P&gt;libguide.lib static threading library&lt;/P&gt;&lt;P&gt;and in the bin directory there is libguide40.dll, the dynamic threading library alluded to in description of libguide40.lib above.&lt;/P&gt;&lt;P&gt;Okay, fine. But what's confusing me is that in the sample build lines for building apps using dll's it's libguide.lib that's called out in the command line examples, e.g. for IA32&lt;/P&gt;&lt;B&gt;ifort myprog.f mkl_c_dll.lib libguide.lib&lt;/B&gt; cdecl interface for dynamic linking of user code &lt;B&gt;myprog.f&lt;/B&gt;. DLL dispatcher will load the appropriate DLL for the processor dynamic kernel&lt;P&gt;Why, in this example found in MKL Getting Started Guide, is not libguide40.lib called out instead?&lt;/P&gt;&lt;P&gt;and for EM64T an example is called out as&lt;/P&gt;&lt;B&gt;ifort myprog.f mkl_dll.lib libguide.lib&lt;/B&gt; dynamic linking of user code &lt;B&gt;myprog.f&lt;/B&gt;. The DLL dispatcher will load the appropriate DLL for the processor dynamic kernel&lt;P&gt;Again, shouldn't libguide40.lib be called out instead of libguide.lib (which use is deprecated by Intel)?&lt;/P&gt;&lt;P&gt;What am I missing? Does the (deprecated use!) libguide.lib somehow "invoke" libguide40.lib?&lt;/P&gt;&lt;P&gt;Next, since the sparse solver routines can only be statically linked (mkl_solver.lib), am I FORCED to use (deprecated!) static linking when building a dll or exe that references pardiso? In the past, I've built a dll that included the solver pardiso and it works fine (linking against libguide.lib).&lt;/P&gt;&lt;P&gt;Message Edited by Brian-Lamm on &lt;SPAN class="date_text"&gt;05-14-2006&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;09:25 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by Brian-Lamm on &lt;SPAN class="date_text"&gt;05-19-2006&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;05:48 AM&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 14 May 2006 23:19:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927264#M13467</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2006-05-14T23:19:32Z</dc:date>
    </item>
    <item>
      <title>Re: Confusing MKL Documentation</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927265#M13468</link>
      <description>&lt;DIV&gt;Due to everyone at Intel being too busy to reply to this post, should I post to Intel Premier where I'll actually get some response?&lt;/DIV&gt;</description>
      <pubDate>Fri, 19 May 2006 19:53:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927265#M13468</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2006-05-19T19:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: Confusing MKL Documentation</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927266#M13469</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Thanks for the feedbacks. We will continue toimprove the document to make it more clear for our customers. For the sample command line: &lt;/P&gt;
&lt;P&gt;ifort myprog.f mkl_c_dll.lib libguide.lib&lt;/P&gt;
&lt;P&gt;In this command line, MKL libraries (MKL_c_dll.lib) is called by cdecl interface for dynamic linking . MKL_c_dll.lib is DLL dispatcher library , which will load the appropriate DLL for the processor dynamic kernel. For libguide library, it is statically linked with the application. You can also chose DLL linking for libguide library:&lt;BR /&gt;ifort myprog.f mkl_c_dll.lib libguide40.lib &lt;/P&gt;
&lt;P&gt;For sparse solver, we only have a static library (mkl_solver.lib). You only can statically linking with mkl_solvler.lib. but you can chose to dynamically linking with libguide(libguide40.lib) or statically linking with the libguide(libguide.lib).&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 29 May 2006 09:47:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927266#M13469</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2006-05-29T09:47:45Z</dc:date>
    </item>
    <item>
      <title>Re: Confusing MKL Documentation</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927267#M13470</link>
      <description>&lt;DIV&gt;I'm sorry but your explanation is very confusing and broken and has shed no light whatsoever. It appears you are writing that "part" of a single build from the command line can envoke both static and dynamic linking.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Again, your explanation has done nothing to alleviate the confusion for me.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I'll try to find explanations somewhere else.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank You.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Brian&lt;/DIV&gt;</description>
      <pubDate>Mon, 29 May 2006 10:03:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927267#M13470</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2006-05-29T10:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: Confusing MKL Documentation</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927268#M13471</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;BR /&gt;I am also struggling with the documentation. We are linking to MKL statically - should be use libguide.lib or libguide40.lib? What might happen if we use the former?&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;I ask because we are experiencing some difficult to diagnose problems when using MKL in our applications (we saw a OMP abort message at one point) and am wondering if we should be using libguide40 instead of libguide (we are currently using the later).&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;I have had a look through the documentation but cant find many references to libguide.lib versus libguide40.lib when linking statically.&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;Thanks!&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;Tony&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 22 Nov 2008 00:35:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927268#M13471</guid>
      <dc:creator>Tony_Garratt</dc:creator>
      <dc:date>2008-11-22T00:35:48Z</dc:date>
    </item>
    <item>
      <title>Re: Confusing MKL Documentation</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927269#M13472</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/246987"&gt;tgarratt@reactiondesign.com&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;&lt;BR /&gt;I am also struggling with the documentation. We are linking to MKL statically - should be use libguide.lib or libguide40.lib? What might happen if we use the former?&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;I ask because we are experiencing some difficult to diagnose problems when using MKL in our applications (we saw a OMP abort message at one point) and am wondering if we should be using libguide40 instead of libguide (we are currently using the later).&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;I have had a look through the documentation but cant find many references to libguide.lib versus libguide40.lib when linking statically.&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;Thanks!&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;Tony&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;Hi Tony,&lt;/P&gt;
&lt;P&gt;You are recommendeddynamically link with libguide(libguide40.lib). Please see bellow from MKL user guide:&lt;/P&gt;
&lt;P&gt;Intel MKL-specific Linking Recommendations&lt;BR /&gt;You are strongly encouraged to dynamically link in Intel Compatibility OpenMP* run-time&lt;BR /&gt;library libiomp and Intel Legacy OpenMP* run-time library libguide. Linking to static&lt;BR /&gt;OpenMP* run-time library is not recommended, as it is very easy with layered software to&lt;BR /&gt;link in more than one copy of the library. This causes performance problems (too many&lt;BR /&gt;threads) and may cause correctness problems if more than one copy is initialized.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Chao&lt;/P&gt;</description>
      <pubDate>Wed, 26 Nov 2008 07:36:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Confusing-MKL-Documentation/m-p/927269#M13472</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2008-11-26T07:36:59Z</dc:date>
    </item>
  </channel>
</rss>

