<?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 mkl_ddnscsr I/LP64 behavior [solved] in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-ddnscsr-I-LP64-behavior-solved/m-p/953376#M15362</link>
    <description>&lt;P&gt;In MKL 10.3.6, when linking with LP64, the routine mkl_ddnscsr segfaults when attempting to write a dense matrix (job[0]=1) with more than about 2&lt;SUP&gt;31&lt;/SUP&gt; (i.e. INT_MAX) entries. When linking with ILP64, there is no error. I did not see this behavior mentioned in the documentation, is it expected? &lt;STRONG&gt;ANSWER: YES (see MKL User's Guide)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The attached test code attempts to create the dense matrix &lt;EM&gt;e&lt;SUB&gt;N&lt;/SUB&gt;&lt;/EM&gt; * &lt;EM&gt;e&lt;SUB&gt;N&lt;/SUB&gt;&lt;SUP&gt;T&lt;/SUP&gt;&lt;/EM&gt;&amp;nbsp;(i.e. an &lt;EM&gt;N&lt;/EM&gt;-by-&lt;EM&gt;N&lt;/EM&gt; zero matrix with a 1 in the lower right corner) from its CSR representation.&lt;/P&gt;
&lt;P&gt;Platform: 64-bit Linux, Composer XE 2011 (sp1.6.233), MKL 10.3.6, 4x10 Westmere-EX with 128GB RAM&lt;/P&gt;
&lt;P&gt;To build, do&lt;/P&gt;
&lt;P&gt;$ source compilervars.sh intel64&lt;/P&gt;
&lt;P&gt;then after downloading the two files, type&lt;/P&gt;
&lt;P&gt;$ mv Makefile.txt Makefile;&amp;nbsp;make&lt;/P&gt;
&lt;P&gt;Running&amp;nbsp;&lt;/P&gt;
&lt;P&gt;$ ./test_lp64 46341&lt;/P&gt;
&lt;P&gt;succeeds, while&lt;/P&gt;
&lt;P&gt;$ ./test_lp64 46342&lt;/P&gt;
&lt;P&gt;&amp;nbsp;produces a segfault on my platform; the ILP64 version&lt;/P&gt;
&lt;P&gt;$ ./test_ilp64 46342&lt;/P&gt;
&lt;P&gt;succeeds. Note that &lt;EM&gt;N&lt;/EM&gt; = 46341 ~= (2&lt;SUP&gt;31&lt;/SUP&gt;)&lt;SUP&gt;1/2&lt;/SUP&gt; ~= (INT_MAX)&lt;SUP&gt;1/2&lt;/SUP&gt;, which seems to be related.&lt;/P&gt;
&lt;P&gt;I notice that there was a bug fix in the more recent version 10.3.12 (DPD200292943) concerning mkl_?dnscsr, when working with an upper triangular matrix. I am working with a full matrix so I assume this is unrelated.&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;</description>
    <pubDate>Tue, 20 Nov 2012 06:03:44 GMT</pubDate>
    <dc:creator>Nicholas_K_2</dc:creator>
    <dc:date>2012-11-20T06:03:44Z</dc:date>
    <item>
      <title>mkl_ddnscsr I/LP64 behavior [solved]</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-ddnscsr-I-LP64-behavior-solved/m-p/953376#M15362</link>
      <description>&lt;P&gt;In MKL 10.3.6, when linking with LP64, the routine mkl_ddnscsr segfaults when attempting to write a dense matrix (job[0]=1) with more than about 2&lt;SUP&gt;31&lt;/SUP&gt; (i.e. INT_MAX) entries. When linking with ILP64, there is no error. I did not see this behavior mentioned in the documentation, is it expected? &lt;STRONG&gt;ANSWER: YES (see MKL User's Guide)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The attached test code attempts to create the dense matrix &lt;EM&gt;e&lt;SUB&gt;N&lt;/SUB&gt;&lt;/EM&gt; * &lt;EM&gt;e&lt;SUB&gt;N&lt;/SUB&gt;&lt;SUP&gt;T&lt;/SUP&gt;&lt;/EM&gt;&amp;nbsp;(i.e. an &lt;EM&gt;N&lt;/EM&gt;-by-&lt;EM&gt;N&lt;/EM&gt; zero matrix with a 1 in the lower right corner) from its CSR representation.&lt;/P&gt;
&lt;P&gt;Platform: 64-bit Linux, Composer XE 2011 (sp1.6.233), MKL 10.3.6, 4x10 Westmere-EX with 128GB RAM&lt;/P&gt;
&lt;P&gt;To build, do&lt;/P&gt;
&lt;P&gt;$ source compilervars.sh intel64&lt;/P&gt;
&lt;P&gt;then after downloading the two files, type&lt;/P&gt;
&lt;P&gt;$ mv Makefile.txt Makefile;&amp;nbsp;make&lt;/P&gt;
&lt;P&gt;Running&amp;nbsp;&lt;/P&gt;
&lt;P&gt;$ ./test_lp64 46341&lt;/P&gt;
&lt;P&gt;succeeds, while&lt;/P&gt;
&lt;P&gt;$ ./test_lp64 46342&lt;/P&gt;
&lt;P&gt;&amp;nbsp;produces a segfault on my platform; the ILP64 version&lt;/P&gt;
&lt;P&gt;$ ./test_ilp64 46342&lt;/P&gt;
&lt;P&gt;succeeds. Note that &lt;EM&gt;N&lt;/EM&gt; = 46341 ~= (2&lt;SUP&gt;31&lt;/SUP&gt;)&lt;SUP&gt;1/2&lt;/SUP&gt; ~= (INT_MAX)&lt;SUP&gt;1/2&lt;/SUP&gt;, which seems to be related.&lt;/P&gt;
&lt;P&gt;I notice that there was a bug fix in the more recent version 10.3.12 (DPD200292943) concerning mkl_?dnscsr, when working with an upper triangular matrix. I am working with a full matrix so I assume this is unrelated.&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 20 Nov 2012 06:03:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-ddnscsr-I-LP64-behavior-solved/m-p/953376#M15362</guid>
      <dc:creator>Nicholas_K_2</dc:creator>
      <dc:date>2012-11-20T06:03:44Z</dc:date>
    </item>
    <item>
      <title>"... the routine mkl_ddnscsr</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-ddnscsr-I-LP64-behavior-solved/m-p/953377#M15363</link>
      <description>"... the routine mkl_ddnscsr segfaults when attempting to write a dense matrix with more than about 2^31 (i.e. INT_MAX) entries I did not see this behavior mentioned in the documentation, is it expected?"

The LP64 library routines would have been compiled with 4-byte integers for array indices and integer variables used as loop counters. Failures in the routines should be expected when 4-byte integers are no longer sufficient for the current problem size.</description>
      <pubDate>Tue, 20 Nov 2012 14:52:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-ddnscsr-I-LP64-behavior-solved/m-p/953377#M15363</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2012-11-20T14:52:00Z</dc:date>
    </item>
    <item>
      <title>" I did not see this behavior</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-ddnscsr-I-LP64-behavior-solved/m-p/953378#M15364</link>
      <description>" I did not see this behavior mentioned in the documentation..."  - that's not correct, please refer to the mkl User's Guide - Using the ILP64 Interface vs. LP64 Interface</description>
      <pubDate>Tue, 20 Nov 2012 15:27:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-ddnscsr-I-LP64-behavior-solved/m-p/953378#M15364</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2012-11-20T15:27:29Z</dc:date>
    </item>
  </channel>
</rss>

