<?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 cblas_dgemm should work in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059278#M21598</link>
    <description>&lt;P&gt;cblas_dgemm should work interchangeably with MKL or the libblas provided as an OS install option. Check your link options and which shared objects ldd shows active.&amp;nbsp; It should not matter where cblas_dgemm is linked from unless that affects which dgemm is active.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 23 Aug 2015 23:16:36 GMT</pubDate>
    <dc:creator>TimP</dc:creator>
    <dc:date>2015-08-23T23:16:36Z</dc:date>
    <item>
      <title>Multithreading when called by C++, not when called by R</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059273#M21593</link>
      <description>&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;Hi everyone, I have been struggling with a problem for quite some time, and I would greatly appreciate your input.&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;I have a program that uses Intel MKL's dgemm function many times. &amp;nbsp;In fact, to demonstrate my problem, I used exactly the same code as is in this dgemm tutorial: &amp;nbsp;https://software.intel.com/en-us/node/429920.&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&lt;SPAN style="line-height: 1.5; font-size: 1em;"&gt;The program is compiled into a shared library that is used in two different ways 1)linked to a c++ program that can be run from the command line, and 2) loaded by R using Rcpp. &amp;nbsp; So, it is identical code, that is just being loaded in two different ways. &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&lt;SPAN style="line-height: 19.51px; font-size: 13px;"&gt;When I set m=10042, k=62318, and n=220 (see the above link for the rest of the code), both the R code and the C++ code give the exact same result, and multithread beautifully so they have similar speed. &amp;nbsp;However, when n=22 (so a smaller matrix),the C++ multithreads and gives the correct answer very quickly, but the R version acts in a single thread, and gives the same answer, but much slower.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&lt;SPAN style="line-height: 1.5; font-size: 1em;"&gt;In other words, with the smaller matrix, when R calls the function, MKL decided to use a single thread, but when my C++ program calls the function, it uses multiple threads with a much improved speed. &amp;nbsp;My program contains many matrix multiplications of this sort, such that as it stands, the C++ program is dramatically faster than the R program--all because MKL decides to multithread in one, but not the other.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;I am aware that MKL uses some &lt;A style="margin: 0px; padding: 0px; color: rgb(8, 109, 182); text-decoration: none !important;" href="http://stackoverflow.com/questions/25475186/sgemm-does-not-multithread-when-dgemm-does-intel-mkl"&gt;heuristics&lt;/A&gt;&amp;nbsp;to decide when it is worth the overhead to multithread. &amp;nbsp;However, I feel that these heuristics are being used to my detriment. &amp;nbsp;Also, how could these heuristics be different if R is calling the library vs. C++ is calling the library? &amp;nbsp;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;EDIT 1 8/23 UPDATE:&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&lt;SPAN style="line-height: 1.5; font-size: 1em;"&gt;When I use the dgemm() function (i.e. not the cblas_dgemm() ) function, my problem is resolved (they all multithread). &amp;nbsp;I do not know, however, how this dgemm() is different than the cblas_dgemm(), I thought that the latter was just a cblas-like interface to the dgemm(). &amp;nbsp;I thought that maybe it is because (for some reason) dgemm uses a column major order, but I tried using cblas_dgemm() in column major and row major, and it makes no difference.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;What is the distinction between the dgemm() and the cblas_dgemm(), and how could it affect multi-threading in this case?&lt;/P&gt;</description>
      <pubDate>Sat, 22 Aug 2015 17:02:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059273#M21593</guid>
      <dc:creator>George_L_2</dc:creator>
      <dc:date>2015-08-22T17:02:26Z</dc:date>
    </item>
    <item>
      <title>Check that your R link line</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059274#M21594</link>
      <description>Check that your R link line is set for mkl parallel. You may wish to compare recommendations of mkl link advisor utility.  Check environment variables for omp_num_threads and mkl settings. In the unlikely case where mkl is called in a parallel region you will need further settings.. ..
  .



.. Uh</description>
      <pubDate>Sat, 22 Aug 2015 18:43:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059274#M21594</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2015-08-22T18:43:00Z</dc:date>
    </item>
    <item>
      <title>Quote:Tim Prince wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059275#M21595</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Tim Prince wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Check that your R link line is set for mkl parallel. You may wish to compare recommendations of mkl link advisor utility. Check environment variables for omp_num_threads and mkl settings. In the unlikely case where mkl is called in a parallel region you will need further settings.. ..&lt;BR /&gt;
	.&lt;/P&gt;

&lt;P&gt;.. Uh&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks Tim, I appreciate the response.&lt;/P&gt;

&lt;P&gt;The link line is set in accordance with the MKL Link Advisor utility.&amp;nbsp; Also, I already tried using the set_omp_num_threads functions, but to no avail.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Please note that this code does multithread, but only when the matrix is big enough (e.g. if k=100), but when it is smaller (k=20), it does not.&amp;nbsp; However, it always multithreads for the C++ code, which is why it is so strange.&lt;/P&gt;</description>
      <pubDate>Sat, 22 Aug 2015 18:46:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059275#M21595</guid>
      <dc:creator>George_L_2</dc:creator>
      <dc:date>2015-08-22T18:46:37Z</dc:date>
    </item>
    <item>
      <title>MKL would try to optimize</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059276#M21596</link>
      <description>&lt;P&gt;MKL would try to optimize number of threads according to problem size and selected instruction set.&amp;nbsp; For example, AVX2 probably gives best performance at 1 thread in the range where you are seeing that selection.&amp;nbsp; The thresholds changed sometimes with MKL updates.&amp;nbsp; I can't see how calling from R would produce different thresholds than calling from C++, unless MKL detects that R is spinning a thread and doesn't want to wait for it to become available.&lt;/P&gt;

&lt;P&gt;If mixing OpenMP threaded model MKL parallel with Cilk(tm) Plus, I would restrict the number of threads used by each, so that KMP_BLOCKTIME doesn't prevent Cilk from getting some threads immediately upon demand.&lt;/P&gt;</description>
      <pubDate>Sat, 22 Aug 2015 21:04:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059276#M21596</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2015-08-22T21:04:38Z</dc:date>
    </item>
    <item>
      <title>Quote:Tim Prince wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059277#M21597</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Tim Prince wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;MKL would try to optimize number of threads according to problem size and selected instruction set.&amp;nbsp; For example, AVX2 probably gives best performance at 1 thread in the range where you are seeing that selection.&amp;nbsp; The thresholds changed sometimes with MKL updates.&amp;nbsp; I can't see how calling from R would produce different thresholds than calling from C++, unless MKL detects that R is spinning a thread and doesn't want to wait for it to become available.&lt;/P&gt;

&lt;P&gt;If mixing OpenMP threaded model MKL parallel with Cilk(tm) Plus, I would restrict the number of threads used by each, so that KMP_BLOCKTIME doesn't prevent Cilk from getting some threads immediately upon demand.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thank you for the input, Tim.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;I do have one more piece of information I just discovered. &amp;nbsp;When I use the dgemm() function (i.e. not the cblas_dgemm() ) function, my problem is resolved. &amp;nbsp;I do not know, however, how this dgemm() is different than the cblas_dgemm(), I thought that the latter was just a cblas-like interface to the dgemm(). &amp;nbsp;I thought that maybe it is because (for some reason) dgemm uses a column major order, but I tried using cblas_dgemm() in column major and row major, and it makes no difference.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Can you give me some insight as to the distinction between the dgemm() and the cblas_dgemm()? &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 23 Aug 2015 22:54:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059277#M21597</guid>
      <dc:creator>George_L_2</dc:creator>
      <dc:date>2015-08-23T22:54:05Z</dc:date>
    </item>
    <item>
      <title>cblas_dgemm should work</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059278#M21598</link>
      <description>&lt;P&gt;cblas_dgemm should work interchangeably with MKL or the libblas provided as an OS install option. Check your link options and which shared objects ldd shows active.&amp;nbsp; It should not matter where cblas_dgemm is linked from unless that affects which dgemm is active.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 23 Aug 2015 23:16:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059278#M21598</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2015-08-23T23:16:36Z</dc:date>
    </item>
    <item>
      <title>Quote:Tim Prince wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059279#M21599</link>
      <description>&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Tim Prince wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;cblas_dgemm should work interchangeably with MKL or the libblas provided as an OS install option. Check your link options and which shared objects ldd shows active.&amp;nbsp; It should not matter where cblas_dgemm is linked from unless that affects which dgemm is active.&amp;nbsp;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;I agree, that makes a lot of sense. &amp;nbsp;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;When I run pmap on the R process (after it has loaded my library), I see the following:&lt;/P&gt;

&lt;PRE class="brush:bash;" style="font: 13px/19.51px Consolas, &amp;quot;Lucida Console&amp;quot;, Menlo, Monaco, &amp;quot;DejaVu Sans Mono&amp;quot;, monospace, sans-serif; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;00007f2a23e92000  11152K r-x--  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_gnu_thread.so
00007f2a24976000   2048K -----  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_gnu_thread.so
00007f2a24b76000      4K r----  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_gnu_thread.so
00007f2a24b77000     56K rw---  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_gnu_thread.so
00007f2a24b85000  25468K r-x--  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_core.so
00007f2a26464000   2048K -----  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_core.so
00007f2a26664000     96K r----  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_core.so
00007f2a2667c000     56K rw---  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_core.so
00007f2a2668a000    336K rw---    [ anon ]
00007f2a266de000   6772K r-x--  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_intel_ilp64.so
00007f2a26d7b000   2044K -----  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_intel_ilp64.so
00007f2a26f7a000      4K r----  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_intel_ilp64.so
00007f2a26f7b000     64K rw---  /opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/libmkl_intel_ilp64.so

....
00007f2a64712000  22472K r-x--  /usr/lib/openblas-base/libblas.so.3
00007f2a65d04000   2048K -----  /usr/lib/openblas-base/libblas.so.3
00007f2a65f04000     28K r----  /usr/lib/openblas-base/libblas.so.3
00007f2a65f0b000     68K rw---  /usr/lib/openblas-base/libblas.so.3
....&lt;/PRE&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;Most notably, it has this "openblas" implementation of blas, because it is linked to the actual R installation, and I assume it is accessible in the C code. &amp;nbsp;So, I assume that when I am trying to run my software and call cblas_dgemm, it must be calling the openblas implementation, and not the intelMKL implementation. &amp;nbsp;I confirmed this by using nm to find that libblas.so.3 also has a dynamic symbol called cblas_dgemm.&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;&lt;SPAN style="line-height: 1.5; font-size: 1em;"&gt;I am trying to using objcopy to change the name of cblas_dgemm to something like cblas_dgemm_g, as detailed &lt;/SPAN&gt;&lt;A style="margin: 0px; padding: 0px; color: rgb(8, 109, 182); line-height: 1.5; font-size: 1em; text-decoration: none !important;" href="http://stackoverflow.com/a/678375/684979"&gt;here&lt;/A&gt;&lt;SPAN style="line-height: 1.5; font-size: 1em;"&gt;, but when my code calls cblas_dgemm_g when linked to the new library, I keep getting "undefined reference" errors to the new name, because cblas_dgemm is a dynamic symbol that &lt;/SPAN&gt;&lt;A style="margin: 0px; padding: 0px; color: rgb(8, 109, 182); line-height: 1.5; font-size: 1em; text-decoration: none !important;" href="https://lists.gnu.org/archive/html/bug-binutils/2004-08/msg00022.html"&gt;cannot be changed with objcopy.&lt;/A&gt;&lt;/P&gt;

&lt;P style="font: 13px/19.51px Arial, 宋体, Tahoma, Helvetica, sans-serif; margin: 0px 0px 1.5em; padding: 0px; color: rgb(83, 87, 94); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; widows: 1; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px;"&gt;How can I make it so that my code calls the cblas_dgemm from MKL? &amp;nbsp;I don't want to recompile R with Intel MKL, because that is not a feasible solution for the end user of my package.&lt;/P&gt;</description>
      <pubDate>Mon, 24 Aug 2015 23:09:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Multithreading-when-called-by-C-not-when-called-by-R/m-p/1059279#M21599</guid>
      <dc:creator>George_L_2</dc:creator>
      <dc:date>2015-08-24T23:09:53Z</dc:date>
    </item>
  </channel>
</rss>

