<?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 Quote:mecej4 wrote: in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-zcsrcoo-faster-computation-on-subsequent-calls/m-p/1053087#M21268</link>
    <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;mecej4 wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;See the example&amp;nbsp;dconverters.f in the ...\Composer XE\mkl\examples&amp;gt;cd spblasf\source directory. This example shows details of a large number of conversion tasks. If you still have questions after examining the example code, please come back and ask.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks for pointing me to that file. Nevertheless, it is even more confusing. The code is:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;! TASK 4 &amp;nbsp; &amp;nbsp;Obtain compressed compressed sparse row matrix from sparse coordinate matrix&lt;BR /&gt;
		&amp;nbsp; &amp;nbsp; &amp;nbsp; job(1)=1&lt;BR /&gt;
		&amp;nbsp; &amp;nbsp; &amp;nbsp; job(6)=2&lt;BR /&gt;
		&amp;nbsp; &amp;nbsp; &amp;nbsp; call mkl_zcsrcoo (job,n, Acsr, AJ,AI,nnz,Acoo, ir,jc,info)&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;So, it calls mkl_zcsrcoo with job(6)=2, without prior calling with job(6)=1 (as mentioned in the documentation). My question boils down to:&lt;/P&gt;

&lt;OL&gt;
	&lt;LI&gt;What exactly is&amp;nbsp;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;job(6)=2 doing? It fills only &lt;EM&gt;ia&lt;/EM&gt; (as job(6)=1) or it fills all three vectors? Is it faster because it doesn't check the size of &lt;EM&gt;acsr&lt;/EM&gt; and &lt;EM&gt;ja&lt;/EM&gt;?&lt;/SPAN&gt;&lt;/LI&gt;
	&lt;LI&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;Which one of these calls (job(6)=1,2,3) is faster for subsequent calls, where the sparsity pattern remains unchanged and only the values change?&lt;/SPAN&gt;&lt;/LI&gt;
	&lt;LI&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;(Optional) Is there any method to reuse the data from the first call to speed up subsequent calls? For example, a similar converter of Harwell (HSL MC69) keeps a mapping of where the elements of the coordinate matrix go in the compressed one. After the first call, the subsequent ones can reuse this mapping to be faster (if the sparsity pattern is the same).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;

&lt;P&gt;&lt;SPAN style="line-height: 19.512px;"&gt;Thanks in advance,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="line-height: 19.512px;"&gt;Petros&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 30 Sep 2015 07:14:32 GMT</pubDate>
    <dc:creator>Petros</dc:creator>
    <dc:date>2015-09-30T07:14:32Z</dc:date>
    <item>
      <title>mkl_zcsrcoo faster computation on subsequent calls?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-zcsrcoo-faster-computation-on-subsequent-calls/m-p/1053085#M21266</link>
      <description>&lt;P class="bold" style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; clear: both; max-width: 95%; width: auto; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;Hi,&lt;/P&gt;

&lt;P class="bold" style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; clear: both; max-width: 95%; width: auto; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;I have a sparse matrix in coordinate format (row, col, A) and I transform it to CSR to be used for PARDISO. The sparsity pattern never changes (that is, row and col are always the same). Vector A changes from time to time. As I understand, I can run with job(6)=1 to get only ia. Is this any faster? What does job(6)=2 do?&lt;/P&gt;

&lt;P class="bold" style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; clear: both; max-width: 95%; width: auto; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;I put here the documentation for job(6). Thanks!&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P class="bold" style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; clear: both; max-width: 95%; width: auto; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;For conversion to the CSR format:&lt;/P&gt;

	&lt;P style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; clear: both; max-width: 95%; width: auto; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;If&amp;nbsp;&lt;CODE style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; line-height: 1.6em;"&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-style: italic;"&gt;job&lt;/SPAN&gt;(6)=0&lt;/CODE&gt;, all arrays&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;acsr&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;ja&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;ia&lt;/SPAN&gt;&amp;nbsp;are filled in for the output storage.&lt;/P&gt;

	&lt;P style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; clear: both; max-width: 95%; width: auto; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;If&amp;nbsp;&lt;CODE style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; line-height: 1.6em;"&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-style: italic;"&gt;job&lt;/SPAN&gt;(6)=1&lt;/CODE&gt;, only array&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;ia&lt;/SPAN&gt;&amp;nbsp;is filled in for the output storage.&lt;/P&gt;

	&lt;P style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; clear: both; max-width: 95%; width: auto; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;If&amp;nbsp;&lt;CODE style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; line-height: 1.6em;"&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-style: italic;"&gt;job&lt;/SPAN&gt;(6)=2&lt;/CODE&gt;, then it is assumed that the routine already has been called with the&amp;nbsp;&lt;CODE style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; line-height: 1.6em;"&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-style: italic;"&gt;job&lt;/SPAN&gt;(6)=1&lt;/CODE&gt;, and the user allocated the required space for storing the output arrays&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;acsr&amp;nbsp;&lt;/SPAN&gt;and&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;ja&lt;/SPAN&gt;.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Tue, 29 Sep 2015 15:46:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-zcsrcoo-faster-computation-on-subsequent-calls/m-p/1053085#M21266</guid>
      <dc:creator>Petros</dc:creator>
      <dc:date>2015-09-29T15:46:20Z</dc:date>
    </item>
    <item>
      <title>See the example dconverters.f</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-zcsrcoo-faster-computation-on-subsequent-calls/m-p/1053086#M21267</link>
      <description>&lt;P&gt;See the example&amp;nbsp;dconverters.f in the ...\Composer XE\mkl\examples&amp;gt;cd spblasf\source directory. This example shows details of a large number of conversion tasks. If you still have questions after examining the example code, please come back and ask.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Sep 2015 21:29:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-zcsrcoo-faster-computation-on-subsequent-calls/m-p/1053086#M21267</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-09-29T21:29:30Z</dc:date>
    </item>
    <item>
      <title>Quote:mecej4 wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-zcsrcoo-faster-computation-on-subsequent-calls/m-p/1053087#M21268</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;mecej4 wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;See the example&amp;nbsp;dconverters.f in the ...\Composer XE\mkl\examples&amp;gt;cd spblasf\source directory. This example shows details of a large number of conversion tasks. If you still have questions after examining the example code, please come back and ask.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks for pointing me to that file. Nevertheless, it is even more confusing. The code is:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;! TASK 4 &amp;nbsp; &amp;nbsp;Obtain compressed compressed sparse row matrix from sparse coordinate matrix&lt;BR /&gt;
		&amp;nbsp; &amp;nbsp; &amp;nbsp; job(1)=1&lt;BR /&gt;
		&amp;nbsp; &amp;nbsp; &amp;nbsp; job(6)=2&lt;BR /&gt;
		&amp;nbsp; &amp;nbsp; &amp;nbsp; call mkl_zcsrcoo (job,n, Acsr, AJ,AI,nnz,Acoo, ir,jc,info)&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;So, it calls mkl_zcsrcoo with job(6)=2, without prior calling with job(6)=1 (as mentioned in the documentation). My question boils down to:&lt;/P&gt;

&lt;OL&gt;
	&lt;LI&gt;What exactly is&amp;nbsp;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;job(6)=2 doing? It fills only &lt;EM&gt;ia&lt;/EM&gt; (as job(6)=1) or it fills all three vectors? Is it faster because it doesn't check the size of &lt;EM&gt;acsr&lt;/EM&gt; and &lt;EM&gt;ja&lt;/EM&gt;?&lt;/SPAN&gt;&lt;/LI&gt;
	&lt;LI&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;Which one of these calls (job(6)=1,2,3) is faster for subsequent calls, where the sparsity pattern remains unchanged and only the values change?&lt;/SPAN&gt;&lt;/LI&gt;
	&lt;LI&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;(Optional) Is there any method to reuse the data from the first call to speed up subsequent calls? For example, a similar converter of Harwell (HSL MC69) keeps a mapping of where the elements of the coordinate matrix go in the compressed one. After the first call, the subsequent ones can reuse this mapping to be faster (if the sparsity pattern is the same).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;

&lt;P&gt;&lt;SPAN style="line-height: 19.512px;"&gt;Thanks in advance,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="line-height: 19.512px;"&gt;Petros&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Sep 2015 07:14:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-zcsrcoo-faster-computation-on-subsequent-calls/m-p/1053087#M21268</guid>
      <dc:creator>Petros</dc:creator>
      <dc:date>2015-09-30T07:14:32Z</dc:date>
    </item>
  </channel>
</rss>

