<?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: Pardiso: Schur complement for an SPD matrix in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1666417#M36944</link>
    <description>&lt;P&gt;Let M=[A B;C D], mtype is for the type of the whole matrix M. oneMKL Pardiso will decide internally how to compute for A^(-1)B when calculating the Schur complement of A which is D-C*A^(-1)*B. The user doesn't need to (actually can not) specify the type of A.&lt;/P&gt;</description>
    <pubDate>Sat, 15 Feb 2025 01:35:45 GMT</pubDate>
    <dc:creator>Fengrui</dc:creator>
    <dc:date>2025-02-15T01:35:45Z</dc:date>
    <item>
      <title>Pardiso: Schur complement for an SPD matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1660861#M36875</link>
      <description>&lt;P&gt;I have the following system: Ax = b, where A is a 2x2 block matrix:&lt;/P&gt;&lt;LI-CODE lang="none"&gt;A = [H   A1  
     A1' Z ]&lt;/LI-CODE&gt;&lt;P&gt;H is SPD (symmetric positive definite) and Z is made of zeros.&lt;/P&gt;&lt;P&gt;(It's a Hessian with linear constraints.)&lt;/P&gt;&lt;P&gt;I'm solving the system using Schur complement (iparm[35]=2).&lt;/P&gt;&lt;P&gt;It's fine with mtype=-2 (symm, indefinite), but the factorization fails (-3, bad input) when mtype=2 (SPD).&lt;/P&gt;&lt;P&gt;Just to test the code, I tried it on an SPD A, which is solved fine with mtype=2.&lt;/P&gt;&lt;P&gt;It seems that mtype=2 requires that A is SPD, but for Schur it should only require H to be SPD?&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jan 2025 11:32:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1660861#M36875</guid>
      <dc:creator>Zohar</dc:creator>
      <dc:date>2025-01-27T11:32:30Z</dc:date>
    </item>
    <item>
      <title>Re: Pardiso: Schur complement for an SPD matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1661310#M36882</link>
      <description>&lt;P&gt;For a refresher on Schur complement, see section 3.5 in&lt;/P&gt;&lt;P&gt;&lt;A href="https://igl.ethz.ch/projects/sparse-cholesky-update/sparse-cholesky-update-paper.pdf" target="_blank"&gt;https://igl.ethz.ch/projects/sparse-cholesky-update/sparse-cholesky-update-paper.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;My system is similar to eq. (20).&lt;/P&gt;&lt;P&gt;Only A is factorized, and it's SPD (mtype=2).&lt;/P&gt;&lt;P&gt;B is decomposed using lapacke (see the example&amp;nbsp;pardiso_schur.c).&lt;/P&gt;&lt;P&gt;I can do the whole thing by myself: i) factorize A as SPD, ii) solve for B, iii) solve a small dense system with B. The bottleneck, however, is (ii). Forward/backward substitution for a single RHS is fast. For a matrix RHS, it's slow--which pardiso overcomes somehow.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jan 2025 21:31:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1661310#M36882</guid>
      <dc:creator>Zohar</dc:creator>
      <dc:date>2025-01-28T21:31:03Z</dc:date>
    </item>
    <item>
      <title>Re:Pardiso: Schur complement for an SPD matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1661844#M36888</link>
      <description>&lt;P&gt;Hi, Zohar:&lt;/P&gt;&lt;P&gt;Thanks for reporting these findings. Would you please provide more details of your test?&lt;/P&gt;&lt;P&gt;1, what is your OS?&lt;/P&gt;&lt;P&gt;2, what is your hardware?&lt;/P&gt;&lt;P&gt;3, what is your programming language?&lt;/P&gt;&lt;P&gt;4, would you please provide the source code of your test and the instruction of how you build your source code with Intel MKL?&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 30 Jan 2025 16:11:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1661844#M36888</guid>
      <dc:creator>Shiquan_Su</dc:creator>
      <dc:date>2025-01-30T16:11:37Z</dc:date>
    </item>
    <item>
      <title>Re: Re:Pardiso: Schur complement for an SPD matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1661905#M36889</link>
      <description>&lt;P&gt;1. win11.&lt;/P&gt;&lt;P&gt;2. pc.&lt;/P&gt;&lt;P&gt;3. c++.&lt;/P&gt;&lt;P&gt;4. Use the mkl example "&lt;SPAN&gt;pardiso_schur.c". Feed to it the matrix:&lt;/SPAN&gt;&lt;/P&gt;&lt;LI-CODE lang="none"&gt;A =
     1     0     1
     0     1     0
     1     0     0&lt;/LI-CODE&gt;&lt;P&gt;where H = eye(2) and A1' = [1 0].&lt;BR /&gt;H is SPD and A is indefinte.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Jan 2025 21:21:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1661905#M36889</guid>
      <dc:creator>Zohar</dc:creator>
      <dc:date>2025-01-30T21:21:56Z</dc:date>
    </item>
    <item>
      <title>Re: Pardiso: Schur complement for an SPD matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1666417#M36944</link>
      <description>&lt;P&gt;Let M=[A B;C D], mtype is for the type of the whole matrix M. oneMKL Pardiso will decide internally how to compute for A^(-1)B when calculating the Schur complement of A which is D-C*A^(-1)*B. The user doesn't need to (actually can not) specify the type of A.&lt;/P&gt;</description>
      <pubDate>Sat, 15 Feb 2025 01:35:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1666417#M36944</guid>
      <dc:creator>Fengrui</dc:creator>
      <dc:date>2025-02-15T01:35:45Z</dc:date>
    </item>
    <item>
      <title>Re: Pardiso: Schur complement for an SPD matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1666542#M36945</link>
      <description>&lt;P&gt;Yeah, that was the point. M has a special structure where A is SPD while M isn't. Computing inv(A) using Cholesky (for SPD) is more efficient than L'DL (for symmetric only). Thus, it's a design question: shouldn't you let the user specify the type of A, and guessing the algorithm you use, it would be more efficient?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Specifically, if A is inverted, then why care about M definiteness at all?&lt;/P&gt;</description>
      <pubDate>Sun, 16 Feb 2025 00:05:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1666542#M36945</guid>
      <dc:creator>Zohar</dc:creator>
      <dc:date>2025-02-16T00:05:10Z</dc:date>
    </item>
    <item>
      <title>Re:Pardiso: Schur complement for an SPD matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1677440#M37011</link>
      <description>&lt;P&gt;&lt;SPAN style="font-family: inherit; font-size: 11pt;"&gt;The user can use mtype=2 (SPD) in this case for Schur complement, but then iparm[35]=1 has to be set.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: inherit; font-size: 11pt;"&gt;In this approach, the user will then solve the Schur part on his own.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: inherit; font-size: 11pt;"&gt;If the user is using iparm[35]=2 then they cannot specify mtype=2, because PARDISO does the complete factorization and at one point it cannot proceed without pivoting for these kinds of matrices.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: inherit; font-size: 11pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: inherit; font-size: 11pt;"&gt;Also note PARDISO is not going to do LU factorization for symmetric indefinite matrices (mtype=-2) but an LDL^{T} factorization.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: inherit; font-size: 11pt;"&gt;So, it might not be as expensive as it seems.&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 24 Mar 2025 21:38:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-Schur-complement-for-an-SPD-matrix/m-p/1677440#M37011</guid>
      <dc:creator>Shiquan_Su</dc:creator>
      <dc:date>2025-03-24T21:38:25Z</dc:date>
    </item>
  </channel>
</rss>

