<?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 Re: How do I know what libraries to link to? in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853797#M6748</link>
    <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;First, you need to know which variety of 64-bit you want. ia64 means Itanium. em64t means x86-64 Xeon/AMD64.&lt;/P&gt;
&lt;P&gt;If you go into the library and runfile *.a, you will see which are scripts (is that what you call default?) and which are actual libraries. The scripts show how to link with 3 "layered" libraries, for the case where you use 32-bit integer arguments and OpenMP threaded MKL functions. You can changeeither of those options by writing it out yourself with the appropriate substitutions. The lapack scripts, whichmay be what you are interested in,will likely be the duplicated with 1 or 2 other names.&lt;/P&gt;
&lt;P&gt;For threaded support, if you are using an Intel compiler to drive the link, the -openmp or -parallel option will take care of the OpenMP and pthread support. If you are using gnu compilers with -fopenmp, you must use the libiomp library in place of libgomp, for compatibility with MKL. If using gnu compilers without -fopenmp, either libguide or libiomp, plus -lpthread, will do the job. In the current version (as of later this month), libguide goes away.&lt;/P&gt;
&lt;P&gt;In each case, you can choose single or double precision, and dynamic linking with .so, which must be found at run time by LD_LIRARY_PATH, or static linking, which involves the start-group...end-group directives.&lt;/P&gt;
&lt;P&gt;I believe there is also a wrapper library to make double precision BLAS calls with single precision function names.&lt;/P&gt;
&lt;P&gt;Then there is support for blas95, etc. etc. So you need to do some of your own decision making.&lt;/P&gt;</description>
    <pubDate>Wed, 05 Nov 2008 00:07:45 GMT</pubDate>
    <dc:creator>TimP</dc:creator>
    <dc:date>2008-11-05T00:07:45Z</dc:date>
    <item>
      <title>How do I know what libraries to link to?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853796#M6747</link>
      <description>&lt;P&gt;I'm trying to evaluate the MKL 10.x math library in a code we use that currently uses LINPACK. I need to evaluate using CGETRF, CSPTRF, and the corresponding solvers, as replacements. I'm using the MS Visual C++ IDE with Intel Fortran.&lt;/P&gt;
&lt;P&gt;How do I know what libraries I need to link in? I've decided I want the Static Linking, but I don't understand what the Pure Layered Vs Default models choice means. Mostly, I want to know what library files I need to link to. There are about 30 in C:\Program Files\Intel\MKL\10.0.5.025\ia64\lib (Yeah, 64 bit).&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Nov 2008 21:57:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853796#M6747</guid>
      <dc:creator>blischke</dc:creator>
      <dc:date>2008-11-04T21:57:20Z</dc:date>
    </item>
    <item>
      <title>Re: How do I know what libraries to link to?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853797#M6748</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;First, you need to know which variety of 64-bit you want. ia64 means Itanium. em64t means x86-64 Xeon/AMD64.&lt;/P&gt;
&lt;P&gt;If you go into the library and runfile *.a, you will see which are scripts (is that what you call default?) and which are actual libraries. The scripts show how to link with 3 "layered" libraries, for the case where you use 32-bit integer arguments and OpenMP threaded MKL functions. You can changeeither of those options by writing it out yourself with the appropriate substitutions. The lapack scripts, whichmay be what you are interested in,will likely be the duplicated with 1 or 2 other names.&lt;/P&gt;
&lt;P&gt;For threaded support, if you are using an Intel compiler to drive the link, the -openmp or -parallel option will take care of the OpenMP and pthread support. If you are using gnu compilers with -fopenmp, you must use the libiomp library in place of libgomp, for compatibility with MKL. If using gnu compilers without -fopenmp, either libguide or libiomp, plus -lpthread, will do the job. In the current version (as of later this month), libguide goes away.&lt;/P&gt;
&lt;P&gt;In each case, you can choose single or double precision, and dynamic linking with .so, which must be found at run time by LD_LIRARY_PATH, or static linking, which involves the start-group...end-group directives.&lt;/P&gt;
&lt;P&gt;I believe there is also a wrapper library to make double precision BLAS calls with single precision function names.&lt;/P&gt;
&lt;P&gt;Then there is support for blas95, etc. etc. So you need to do some of your own decision making.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Nov 2008 00:07:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853797#M6748</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2008-11-05T00:07:45Z</dc:date>
    </item>
    <item>
      <title>Re: How do I know what libraries to link to?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853798#M6749</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;gt;&amp;gt; &lt;EM&gt;&lt;EM&gt;First, you need to know which variety of 64-bit you want. ia64 means Itanium. em64t means x86-64 Xeon/AMD64.&lt;/EM&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;That helps, I need EM64T.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt; &lt;EM&gt;&lt;EM&gt;If you go into the library and runfile *.a, you will see which are scripts (is that what you call default?)&lt;/EM&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;I don't know what is meant by "default". The userguide.pdf says in the &lt;EM&gt;Selecting Libraries to Link&lt;/EM&gt; section "To link with Intel MKL, you can choose &lt;EM&gt;pure layered model&lt;/EM&gt; or &lt;EM&gt;default model&lt;/EM&gt;, which is backward compatible on link line (except cluster components).". When you say "run file *.a", I don't know what you mean by that. There are no files ending in *.a in the MKL directory tree. Are you talking Linux? I'm compiling on 32 bit Windows XP, and need to compile for 64 bit Windows XP on an Intel Xeon (and also be able to compile for 32 bit Windows XP, but the evaluation I need to make is for 64 bits). I should have mentioned that in the OP.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt; &lt;EM&gt;&lt;EM&gt;In each case, you can choose single or double precision, [...]&lt;/EM&gt;&lt;/EM&gt;&lt;EM&gt;&lt;EM&gt; &lt;/EM&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;If I want to use single threaded, single precision, static linking versions of CGETRF, CSPTRF, CGETRS, and CSPTRS, what libraries do I need to link to? There are 46 libraries in the .em64tlib directory.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt; &lt;EM&gt;&lt;EM&gt;So you need to do some of your own decision making.&lt;/EM&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Part of the problem is I don't even understand what the questions are. The sutff about "layering" is foreign to me.&lt;/P&gt;
&lt;P&gt;The code I'm working on is about 15 years old, written in Fortran 77, except that I'm using an allocatable complex array to run problems requiring over 2 GBytes of memory. With the larger size comes longer runtimes. The LAPACK functions above seem like they should be drop-in replacements for Linpack routines CSPCO, CGECO, CSPSL, and CGESL.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Nov 2008 14:14:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853798#M6749</guid>
      <dc:creator>blischke</dc:creator>
      <dc:date>2008-11-05T14:14:00Z</dc:date>
    </item>
    <item>
      <title>Re: How do I know what libraries to link to?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853799#M6750</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;For Lapack functionality on &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;em64t system you can use the following libraries for linking your application:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;non-treaded version: &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;threaded version:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;SPAN style="font-size: small;"&gt;mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libguide40&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial;"&gt;.lib &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial;"&gt;--Gennady&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 Nov 2008 23:17:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-do-I-know-what-libraries-to-link-to/m-p/853799#M6750</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2008-11-05T23:17:37Z</dc:date>
    </item>
  </channel>
</rss>

