<?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 SSOR preconditioner in RCI  in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/SSOR-preconditioner-in-RCI/m-p/919610#M12862</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;

&lt;P&gt;I have a question related to the SSOR precondtioner for the cg algorithm, and would appreciate it if someone can help me with that.&lt;/P&gt;

&lt;P&gt;The system of equation in my case is symmetric positive and it is stored in CSR format (3 array version). My cg solver is based on RCI from MKL. I already have Jacobi preconditioner implemented which, works fine. For the SSOR, there is an example in mkl/example directory, but I cannot really understand the example. That example assumes the the diagonal&amp;nbsp; of the equation system is identity matrix. There is an iterative section in the example which I do not understand!&lt;/P&gt;

&lt;P&gt;Let me explain the SSOR which I know:&lt;/P&gt;

&lt;P&gt;M rho = r where r is the current residual (&amp;amp;tmp[2n] in rci) , rho is the modified residual (&amp;amp;tmp[3n]), and M is the precondtioner.&lt;/P&gt;

&lt;P&gt;The SSOR precondtioner is as follows [SAAD2002]&lt;/P&gt;

&lt;P&gt;M = LU&lt;/P&gt;

&lt;P&gt;To solve the above equation system we do the following&lt;/P&gt;

&lt;P&gt;1. Solve L z = r where L = (D-wE)*D^-1 = I-wED^-1&lt;/P&gt;

&lt;P&gt;2. Solve U rho = z where U = D-wF&lt;/P&gt;

&lt;PRE&gt;

where:
D = diagonal of A
-E = strict lower triangular part of A
-F = strict upper triangular part of A
w = parameter in SOR method; should be 0&amp;lt;w&amp;lt;2 (if w=1, this is the Symmetric Gauss-Seidel (SGS) preconditioner&lt;/PRE&gt;

&lt;P&gt;now the question is, I don't understand how to implement this! Do I need to store L, U and D separately? Or is there a way to take advantage of the mkl Blas function to do that more efficiently?&lt;/P&gt;

&lt;P&gt;Thank you so much guys for any hint.&lt;/P&gt;

&lt;P&gt;Regards,Meysam&lt;/P&gt;</description>
    <pubDate>Tue, 26 Nov 2013 09:39:03 GMT</pubDate>
    <dc:creator>Meysam_J_</dc:creator>
    <dc:date>2013-11-26T09:39:03Z</dc:date>
    <item>
      <title>SSOR preconditioner in RCI</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/SSOR-preconditioner-in-RCI/m-p/919610#M12862</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;

&lt;P&gt;I have a question related to the SSOR precondtioner for the cg algorithm, and would appreciate it if someone can help me with that.&lt;/P&gt;

&lt;P&gt;The system of equation in my case is symmetric positive and it is stored in CSR format (3 array version). My cg solver is based on RCI from MKL. I already have Jacobi preconditioner implemented which, works fine. For the SSOR, there is an example in mkl/example directory, but I cannot really understand the example. That example assumes the the diagonal&amp;nbsp; of the equation system is identity matrix. There is an iterative section in the example which I do not understand!&lt;/P&gt;

&lt;P&gt;Let me explain the SSOR which I know:&lt;/P&gt;

&lt;P&gt;M rho = r where r is the current residual (&amp;amp;tmp[2n] in rci) , rho is the modified residual (&amp;amp;tmp[3n]), and M is the precondtioner.&lt;/P&gt;

&lt;P&gt;The SSOR precondtioner is as follows [SAAD2002]&lt;/P&gt;

&lt;P&gt;M = LU&lt;/P&gt;

&lt;P&gt;To solve the above equation system we do the following&lt;/P&gt;

&lt;P&gt;1. Solve L z = r where L = (D-wE)*D^-1 = I-wED^-1&lt;/P&gt;

&lt;P&gt;2. Solve U rho = z where U = D-wF&lt;/P&gt;

&lt;PRE&gt;

where:
D = diagonal of A
-E = strict lower triangular part of A
-F = strict upper triangular part of A
w = parameter in SOR method; should be 0&amp;lt;w&amp;lt;2 (if w=1, this is the Symmetric Gauss-Seidel (SGS) preconditioner&lt;/PRE&gt;

&lt;P&gt;now the question is, I don't understand how to implement this! Do I need to store L, U and D separately? Or is there a way to take advantage of the mkl Blas function to do that more efficiently?&lt;/P&gt;

&lt;P&gt;Thank you so much guys for any hint.&lt;/P&gt;

&lt;P&gt;Regards,Meysam&lt;/P&gt;</description>
      <pubDate>Tue, 26 Nov 2013 09:39:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/SSOR-preconditioner-in-RCI/m-p/919610#M12862</guid>
      <dc:creator>Meysam_J_</dc:creator>
      <dc:date>2013-11-26T09:39:03Z</dc:date>
    </item>
  </channel>
</rss>

