<?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: Sparse Blas Storage in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883654#M9839</link>
    <description>&lt;BR /&gt;
&lt;P&gt;Hmm, that's strange .. all looks correct.&lt;/P&gt;
&lt;P&gt;Could you try this linking line:&lt;BR /&gt;MKLINCL=/opt/intel/mkl/10.1.0.015/include &lt;BR /&gt;MKLPATH=/opt/intel/mkl/10.1.0.015/lib/32&lt;/P&gt;
&lt;P&gt;-L${MKLPATH} ${MKLPATH}/libmkl_intel.a -Wl,--start-group ${MKLPATH}/libmkl_intel_thread.a ${MKLPATH}/libmkl_core.a -Wl,--end-group ${MKLPATH}/libiomp5.a -lpthread -lm -o test.out&lt;BR /&gt;--Gennady&lt;/P&gt;</description>
    <pubDate>Fri, 13 Mar 2009 15:40:36 GMT</pubDate>
    <dc:creator>Gennady_F_Intel</dc:creator>
    <dc:date>2009-03-13T15:40:36Z</dc:date>
    <item>
      <title>Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883649#M9834</link>
      <description>&lt;SPAN class="sectionBodyText"&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I am a newbie in using the Intel MKL. As I am dealing with matrices and vectors of which contents are not known beforehand. &lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;OL&gt;
&lt;LI class="sectionBodyText"&gt;No matter what level of BLAS I use, I need to determine the number nonzero elements &lt;STRONG&gt;nz&lt;/STRONG&gt; and their corresponding indices &lt;STRONG&gt;*indx&lt;/STRONG&gt;. I would like to know if there is a fast method provided by the Intel MKL to determine the inputs &lt;STRONG&gt;nz&lt;/STRONG&gt; and the indices pointed by &lt;STRONG&gt;*indx&lt;/STRONG&gt; for the gthr function or do I have to program this by myself? What about sparse matrices?&lt;/LI&gt;
&lt;LI class="sectionBodyText"&gt;After having determined the necessary indices and the number of non zero elements, I want to use all BLAS from one to three. Is that possible and what do I have to consider when mixing BLAS 1 with BLAS 2,3 ?&lt;/LI&gt;
&lt;/OL&gt;&lt;SPAN class="sectionBodyText"&gt;&lt;BR /&gt;Thx in advance,&lt;BR /&gt;Cem&lt;BR /&gt;&lt;/SPAN&gt;</description>
      <pubDate>Tue, 10 Mar 2009 13:19:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883649#M9834</guid>
      <dc:creator>sicb0161</dc:creator>
      <dc:date>2009-03-10T13:19:48Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883650#M9835</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/260197"&gt;sicb0161&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;SPAN class="sectionBodyText"&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I am a newbie in using the Intel MKL. As I am dealing with matrices and vectors of which contents are not known beforehand. &lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;OL&gt;
&lt;LI class="sectionBodyText"&gt;No matter what level of BLAS I use, I need to determine the number nonzero elements &lt;STRONG&gt;nz&lt;/STRONG&gt; and their corresponding indices &lt;STRONG&gt;*indx&lt;/STRONG&gt;. I would like to know if there is a fast method provided by the Intel MKL to determine the inputs &lt;STRONG&gt;nz&lt;/STRONG&gt; and the indices pointed by &lt;STRONG&gt;*indx&lt;/STRONG&gt; for the gthr function or do I have to program this by myself? What about sparse matrices?&lt;/LI&gt;
&lt;LI class="sectionBodyText"&gt;After having determined the necessary indices and the number of non zero elements, I want to use all BLAS from one to three. Is that possible and what do I have to consider when mixing BLAS 1 with BLAS 2,3 ?&lt;/LI&gt;
&lt;/OL&gt;&lt;SPAN class="sectionBodyText"&gt;&lt;BR /&gt;Thx in advance,&lt;BR /&gt;Cem&lt;BR /&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Dear Cem, &lt;BR /&gt;&lt;BR /&gt;Let's start from the second question. Yes you can useall sparse BLAS from one to three if you use the compressed sparse row, compressed sparse column or coordinate format for representation of your matrices. And yes, mixing BLAS 1 and BLAS 2,3 is also possible. Let me give an example.Let(values, columns, rowIndex) be the representation of matrix A in the compressed sparse row format (see MKL Reference Manual, Appendix A).Sparsematrix-vector multiply A*x =y can be done by calling&lt;BR /&gt;&lt;BR /&gt;call mkl_dcsrgemv('n', m, values, rowIndex, columns, x, y)&lt;BR /&gt;&lt;BR /&gt;And let's assume we want to compute the dot product of the i-th row of the samematrix A and another vector z. It can be done by calling ddoti from Sparse Level 1&lt;BR /&gt;&lt;BR /&gt;nz=rowIndex(i+1) -rowIndex(i) ! the number of nonzeros in the i-th row&lt;BR /&gt;w=ddoti ( nz, val(rowIndex(i)), column(rowIndex(i)),z)&lt;BR /&gt;&lt;BR /&gt;As concerns the first question, nz and array indx should be defined by the user. Array indx can be a part of sparserepresentation of a matrix or can be a separate array. These parameters mustcome from application and must be defined by the user. &lt;BR /&gt;&lt;BR /&gt;MKL provides a set of converters and for example you can use them if you needto convert a dense rectangularmatrix (it might be a vector) toone sparse storage supported by MKL.&lt;BR /&gt;&lt;BR /&gt;All the best&lt;BR /&gt;Sergey</description>
      <pubDate>Wed, 11 Mar 2009 10:29:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883650#M9835</guid>
      <dc:creator>Sergey_K_Intel1</dc:creator>
      <dc:date>2009-03-11T10:29:37Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883651#M9836</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/93645"&gt;Sergey Kuznetsov (Intel)&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;/DIV&gt;
As concerns the first question, nz and array indx should be defined by the user. Array indx can be a part of sparserepresentation of a matrix or can be a separate array. These parameters mustcome from application and must be defined by the user. &lt;BR /&gt;&lt;BR /&gt;MKL provides a set of converters and for example you can use them if you needto convert a dense rectangularmatrix (it might be a vector) toone sparse storage supported by MKL.&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Thnx Sergey,&lt;BR /&gt;&lt;BR /&gt;you said sth about set of converters. In which section of the manual can I find the description of such converter? Are these functions I can call from the library ? Can you name them ?&lt;BR /&gt;&lt;BR /&gt;my first concern is to efficiently converting rows of my matrix &lt;STRONG&gt;A&lt;/STRONG&gt; into another storage format, so that within each iteration step&lt;STRONG&gt; i&lt;/STRONG&gt; the corresponding row &lt;STRONG&gt;A(i,:)&lt;/STRONG&gt; are stored in a specified compression scheme. &lt;BR /&gt;&lt;BR /&gt;thnx again,&lt;BR /&gt;Cem&lt;BR /&gt;</description>
      <pubDate>Wed, 11 Mar 2009 11:06:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883651#M9836</guid>
      <dc:creator>sicb0161</dc:creator>
      <dc:date>2009-03-11T11:06:21Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883652#M9837</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/260197"&gt;sicb0161&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;BR /&gt;Thnx Sergey,&lt;BR /&gt;&lt;BR /&gt;you said sth about set of converters. In which section of the manual can I find the description of such converter? Are these functions I can call from the library ? Can you name them ?&lt;BR /&gt;&lt;BR /&gt;my first concern is to efficiently converting rows of my matrix &lt;STRONG&gt;A&lt;/STRONG&gt; into another storage format, so that within each iteration step&lt;STRONG&gt; i&lt;/STRONG&gt; the corresponding row &lt;STRONG&gt;A(i,:)&lt;/STRONG&gt; are stored in a specified compression scheme. &lt;BR /&gt;&lt;BR /&gt;thnx again,&lt;BR /&gt;Cem&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Dear Cem&lt;BR /&gt;&lt;BR /&gt;Please see page 223, MKL Reference Manual&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;
&lt;P align="left"&gt;Auxiliary routines&lt;/P&gt;
&lt;/STRONG&gt;
&lt;P align="left"&gt;Matrix converters&lt;BR /&gt;&lt;BR /&gt;mkl_ddnscsr&lt;BR /&gt;&lt;BR /&gt;Convertsadense matrix in the CSR format (3-array variation).&lt;/P&gt;
&lt;P align="left"&gt;&lt;/P&gt;
&lt;P align="left"&gt;mkl_dcsrcoo&lt;BR /&gt;&lt;BR /&gt;Converts a sparse matrix in the CSR format (3-array variation) to the coordinate format and vice versa.&lt;BR /&gt;&lt;BR /&gt;mkl_dcsrbsr&lt;BR /&gt;Converts a sparse matrix in the CSR format to the BSR format (3-array variations) and vice versa.&lt;/P&gt;
&lt;P align="left"&gt;&lt;BR /&gt;mkl_dcsrcsc&lt;BR /&gt;Converts a sparse matrix in the CSR format to the CSC and vice versa (3-array variations).&lt;/P&gt;
&lt;P align="left"&gt;mkl_dcsrdia&lt;BR /&gt;Converts a sparse matrix in the CSR format (3-array variation) to the diagonal format and vice versa.&lt;BR /&gt;&lt;BR /&gt;mkl_dcsrsky&lt;BR /&gt;Converts a sparse matrix in the CSR format (3-array variation) to the sky line format and vice versa.&lt;/P&gt;
&lt;P align="left"&gt;The documentation is buggy. Sorry for that.&lt;BR /&gt;&lt;BR /&gt;The first three converters are available in MKL 10.1 and MKL 10.1 Update 1. The full list of the converters will be available in coming MKL 10.2 Beta.&lt;BR /&gt;&lt;BR /&gt;All the best&lt;BR /&gt;Sergey&lt;/P&gt;</description>
      <pubDate>Wed, 11 Mar 2009 11:23:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883652#M9837</guid>
      <dc:creator>Sergey_K_Intel1</dc:creator>
      <dc:date>2009-03-11T11:23:21Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883653#M9838</link>
      <description>Thanks Sergej,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I get the following error went I am trying to execute my code. No error occurs when compiling the source code.&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt; ./dct: symbol lookup error: ./dct: undefined symbol: mkl_ddnscsr&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;this is how I compile my code :&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;gcc -c -I${MKLDIR}/include $FILE.c&lt;BR /&gt;gcc $FILE.o -L${MKLDIR}/lib/32 -lmkl_intel -lmkl_intel_thread -lmkl_core -liomp5 -lguide -lpthread -lm -o $FILE&lt;BR /&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;this is my code&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;#include "mkl_spblas.h"&lt;BR /&gt;....&lt;BR /&gt;mkl_ddnscsr( job, &amp;amp;m, &amp;amp;n, adns, &amp;amp;m, acsr, ja, ia, &amp;amp;info );&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 13 Mar 2009 14:10:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883653#M9838</guid>
      <dc:creator>sicb0161</dc:creator>
      <dc:date>2009-03-13T14:10:40Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883654#M9839</link>
      <description>&lt;BR /&gt;
&lt;P&gt;Hmm, that's strange .. all looks correct.&lt;/P&gt;
&lt;P&gt;Could you try this linking line:&lt;BR /&gt;MKLINCL=/opt/intel/mkl/10.1.0.015/include &lt;BR /&gt;MKLPATH=/opt/intel/mkl/10.1.0.015/lib/32&lt;/P&gt;
&lt;P&gt;-L${MKLPATH} ${MKLPATH}/libmkl_intel.a -Wl,--start-group ${MKLPATH}/libmkl_intel_thread.a ${MKLPATH}/libmkl_core.a -Wl,--end-group ${MKLPATH}/libiomp5.a -lpthread -lm -o test.out&lt;BR /&gt;--Gennady&lt;/P&gt;</description>
      <pubDate>Fri, 13 Mar 2009 15:40:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883654#M9839</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2009-03-13T15:40:36Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883655#M9840</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/93645"&gt;Sergey Kuznetsov (Intel)&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;/DIV&gt;
&lt;BR /&gt;Dear Cem&lt;BR /&gt;&lt;BR /&gt;Please see page 223, MKL Reference Manual&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;
&lt;P align="left"&gt;Auxiliary routines&lt;/P&gt;
&lt;/STRONG&gt;
&lt;P align="left"&gt;Matrix converters&lt;BR /&gt;&lt;BR /&gt;mkl_ddnscsr&lt;BR /&gt;&lt;BR /&gt;Convertsadense matrix in the CSR format (3-array variation).&lt;/P&gt;
&lt;P align="left"&gt;&lt;/P&gt;
&lt;P align="left"&gt;mkl_dcsrcoo&lt;BR /&gt;&lt;BR /&gt;Converts a sparse matrix in the CSR format (3-array variation) to the coordinate format and vice versa.&lt;BR /&gt;&lt;BR /&gt;mkl_dcsrbsr&lt;BR /&gt;Converts a sparse matrix in the CSR format to the BSR format (3-array variations) and vice versa.&lt;/P&gt;
&lt;P align="left"&gt;&lt;BR /&gt;mkl_dcsrcsc&lt;BR /&gt;Converts a sparse matrix in the CSR format to the CSC and vice versa (3-array variations).&lt;/P&gt;
&lt;P align="left"&gt;mkl_dcsrdia&lt;BR /&gt;Converts a sparse matrix in the CSR format (3-array variation) to the diagonal format and vice versa.&lt;BR /&gt;&lt;BR /&gt;mkl_dcsrsky&lt;BR /&gt;Converts a sparse matrix in the CSR format (3-array variation) to the sky line format and vice versa.&lt;/P&gt;
&lt;P align="left"&gt;The documentation is buggy. Sorry for that.&lt;BR /&gt;&lt;BR /&gt;The first three converters are available in MKL 10.1 and MKL 10.1 Update 1. The full list of the converters will be available in coming MKL 10.2 Beta.&lt;BR /&gt;&lt;BR /&gt;All the best&lt;BR /&gt;Sergey&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Dear Sergey,&lt;BR /&gt;&lt;BR /&gt;Is it possible that Intel also offers the corresponding subroutines for double complex sparse matrices? I think these routines are important for the calculations using sparse matrix. Now I've written some subroutines to perform the conversion because I cannot find them in MKL.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Gang&lt;BR /&gt;</description>
      <pubDate>Mon, 16 Mar 2009 04:20:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883655#M9840</guid>
      <dc:creator>wugaxp</dc:creator>
      <dc:date>2009-03-16T04:20:07Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Storage</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883656#M9841</link>
      <description>&lt;BR /&gt;
&lt;P&gt;Hello Gang, you are right. Currently, all routines convert a sparse matrix in the one format to another and vice versa, support double precision data types only.We would recommend you submit the issue against MKL to Premier support( &lt;A title="https://premier.intel.com/" href="https://premier.intel.com/"&gt;https://premier.intel.com/&lt;/A&gt; )&lt;BR /&gt;--Gennady&lt;/P&gt;</description>
      <pubDate>Mon, 16 Mar 2009 06:45:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Storage/m-p/883656#M9841</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2009-03-16T06:45:04Z</dc:date>
    </item>
  </channel>
</rss>

