<?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 S = A - B * inverse(D) * C    in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938065#M14271</link>
    <description>&lt;P&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;S = A - B * inverse(D) * C &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Matrix dimensions:&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;S:N*N ; A: N*N ; B: N*(10000-N) ; C: transpose(B):&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;(10000-N)*N&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;; D:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;(10000-N)*&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;(10000-N)&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 13 Dec 2013 21:44:38 GMT</pubDate>
    <dc:creator>vahid_s_</dc:creator>
    <dc:date>2013-12-13T21:44:38Z</dc:date>
    <item>
      <title>MKL: Partial factorization and Schur Complement?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938064#M14270</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I have a large symmetric sparse matrix (10000*10000) and I want to reduce the matrix to condense form of last N elements. In order to do that I need to calculate the schur complement form of the matrix:&lt;/P&gt;

&lt;P&gt;K=[A &amp;nbsp;B; C D]; &amp;nbsp; S = A - B * inv(D) * C &amp;nbsp; &amp;nbsp;&lt;/P&gt;

&lt;P&gt;K is &amp;nbsp;symmetric&amp;nbsp;sparse (10000*10000) ; S is condense form which is usually dense (N*N) &amp;nbsp;N: between 1 to 1000.&lt;/P&gt;

&lt;P&gt;My first approach was:&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;1. Calculate X &amp;nbsp;= inv(D) * C with Pardiso sparse solver. &amp;nbsp;2. Calculate A - B * X with dgemm function of &lt;/SPAN&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;Math Kernel Library.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Arial, Helvetica, sans-serif"&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;But I found the&amp;nbsp;performance&amp;nbsp;is very depend on N variable (size of&amp;nbsp;condensed&amp;nbsp;matrix)&amp;nbsp;&amp;nbsp;which in part1 is number of RHS and inpart 2 is the number of columns for X matrix.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;If N = 9: Part1 time:0.06 seconds + Part2 time: 0.03 seconds = Total time&amp;nbsp;around 0.09 seconds.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;But if&amp;nbsp;N=400:&amp;nbsp;&lt;/SPAN&gt;Part1 time:2 seconds + Part2 time: 3 seconds = Total time&amp;nbsp;around 5 seconds.which is too much for my program!!!&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Note: for both cases size of K is constant 10000*10000.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;So it seems that Pardiso is not doing very well with so many RHS and dgemm matrix is not doing great with X having large number of columns.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;I am using latest&amp;nbsp;&lt;/SPAN&gt;version&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;of MKL. My program is in FORTRAN on Windows. Is&amp;nbsp;&lt;/SPAN&gt;there&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;any way to speed up the process?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;I found out that there are some libraries like MUMPS that have functions for partial factorization and calculating&amp;nbsp;&lt;/SPAN&gt;condense&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;form of the sparse matrix. Is this feature&amp;nbsp;&lt;/SPAN&gt;available&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;in Pardiso or Math Kernel library as well? If yes, would you please tell me the&amp;nbsp;&lt;/SPAN&gt;function&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;name.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Thank you in advance for your help.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2013 21:29:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938064#M14270</guid>
      <dc:creator>vahid_s_</dc:creator>
      <dc:date>2013-12-13T21:29:14Z</dc:date>
    </item>
    <item>
      <title>S = A - B * inverse(D) * C   </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938065#M14271</link>
      <description>&lt;P&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;S = A - B * inverse(D) * C &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Matrix dimensions:&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;S:N*N ; A: N*N ; B: N*(10000-N) ; C: transpose(B):&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;(10000-N)*N&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;; D:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;(10000-N)*&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;(10000-N)&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2013 21:44:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938065#M14271</guid>
      <dc:creator>vahid_s_</dc:creator>
      <dc:date>2013-12-13T21:44:38Z</dc:date>
    </item>
    <item>
      <title>Hi Vahid,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938066#M14272</link>
      <description>&lt;DIV class="field field-name-comment-body field-type-text-long field-label-hidden"&gt;
	&lt;DIV class="field-items"&gt;
		&lt;DIV class="field-item even"&gt;
			&lt;P&gt;Hi Vahid,&lt;/P&gt;

			&lt;P&gt;This option is called a Partial Schur-Complement method and it is available in PARDISO 5.0.0 at &lt;A href="http://www.pardiso-project.org"&gt;www.pardiso-project.org&lt;/A&gt;.&lt;/P&gt;

			&lt;P&gt;It is described in two recent technical reports:&lt;/P&gt;

			&lt;UL&gt;
				&lt;LI&gt;C. G. Petra, O. Schenk, M. Anitescu. &lt;I&gt; Real-time Stochastic Optimization of Complex Energy Systems on High Performance Computers.&lt;/I&gt; To be submitted.&lt;A href="http://www.mcs.anl.gov/%7Epetra/papers/petra-augmhpc.pdf"&gt; ANL preprint&lt;/A&gt;.&lt;/LI&gt;
				&lt;LI&gt;C. G. Petra, Olaf Schenk, Miles Lubin, Klaus Gaertner. &lt;I&gt;An augmented incomplete factorization approach for computing the Schur complement in stochastic optimization.&lt;/I&gt; &lt;A href="http://www.mcs.anl.gov/%7Epetra/papers/augFact_submitted.pdf"&gt; ANL preprint&lt;/A&gt;.&lt;/LI&gt;
			&lt;/UL&gt;

			&lt;P&gt;I strongly suggest not to use DGEMM. You need to exploit the sparsity in the RHS vector&lt;/P&gt;

			&lt;P&gt;Please send me an email so that we can discuss if offline.&lt;/P&gt;

			&lt;P&gt;Regards,&lt;BR /&gt;
				Olaf Schenk&lt;/P&gt;
		&lt;/DIV&gt;
	&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Sat, 14 Dec 2013 10:46:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938066#M14272</guid>
      <dc:creator>Olaf_Schenk</dc:creator>
      <dc:date>2013-12-14T10:46:03Z</dc:date>
    </item>
    <item>
      <title>Thanks for the prompt reply,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938067#M14273</link>
      <description>&lt;P&gt;Thanks for the prompt reply, Olaf.&lt;/P&gt;

&lt;P&gt;I sent you a private message with some more detailed questions about new version of Pardiso.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2013 20:15:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938067#M14273</guid>
      <dc:creator>vahid_s_</dc:creator>
      <dc:date>2013-12-16T20:15:47Z</dc:date>
    </item>
    <item>
      <title>vahid, Shur Complement</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938068#M14274</link>
      <description>&lt;P&gt;vahid, Shur Complement support has been added to the latest version of MKL 11.2.update 1. Please check how it works on your side and let us know your feedback.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;regards, Gennady&lt;/P&gt;</description>
      <pubDate>Mon, 01 Dec 2014 05:07:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938068#M14274</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2014-12-01T05:07:10Z</dc:date>
    </item>
    <item>
      <title>Could you confirm that</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938069#M14275</link>
      <description>&lt;P&gt;Could you confirm that partial factorization is not yet available please ? Thank you.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Dec 2014 08:33:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Partial-factorization-and-Schur-Complement/m-p/938069#M14275</guid>
      <dc:creator>asd__asdqwe</dc:creator>
      <dc:date>2014-12-01T08:33:36Z</dc:date>
    </item>
  </channel>
</rss>

