<?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: Find only some eigenvectors with a banded matrix? in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854699#M6865</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;Do you mean LAPACK has no algorithms that are efficient at finding a small number of eigenvectors in a large problem (say n&amp;gt; 2000) ?&lt;BR /&gt;&lt;BR /&gt;These are the speeds it runs on my dual core Intel something-common:&lt;BR /&gt;&lt;BR /&gt;For n=1563:&lt;BR /&gt;3 eigenvectors with dsbgvx: 44 seconds&lt;BR /&gt;1563 eigenvectors with dsbgvx: 61 seconds&lt;BR /&gt;3 eigenvectors with a homemade Visual Basic program without any fancy Intel optimizations: 59 seconds&lt;BR /&gt;&amp;gt;4 eigenvectors with the homemade VB program: Too long to wait&lt;BR /&gt;&lt;BR /&gt;It doesn't show any dramatic slowdown with more e-vectors like I expected bisection was supposed to. This really makes it look like the wrong algorithm is being used?? I hope you're not right or LAPACK will be nearly useless to me.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/337852"&gt;Michael Chuvelev (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;BR /&gt;Hello.&lt;BR /&gt;&lt;BR /&gt;It takes approximately the same time, because most time is spent by tri-diagonalization. The following process is quite quick no matter whether you need 4 or 200 vectors, but sure it will be different duration.&lt;BR /&gt;&lt;BR /&gt;Michael.&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;</description>
    <pubDate>Fri, 30 Jan 2009 11:36:32 GMT</pubDate>
    <dc:creator>crispybits</dc:creator>
    <dc:date>2009-01-30T11:36:32Z</dc:date>
    <item>
      <title>Find only some eigenvectors with a banded matrix?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854695#M6861</link>
      <description>Can this be done with the bisection followed by inverse iteration method?&lt;BR /&gt;&lt;BR /&gt;I notice there don't seem to be any banded routines for finding only some e-vectors.&lt;BR /&gt;&lt;BR /&gt;I tried the driver routine dsbevx, but it apparently must be using QR or divide-and-conquer because it requires an eigenvector matrix big enough to hold all eigenvectors, even if it's told to return only a few.&lt;SPAN style="font-family: verdana;"&gt;It also takes the same amount of time to solve a 1000 DOF system for 4 e-vectors as it does to solve the same system for 200 e-vectors.&lt;/SPAN&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Is this very useful functionality absent from MKL? Will I have to use packed storage to solve large banded eigenproblems with minimum memory and realistic CPU time? I already have a dirty homemade algorithm that does better than this, surely I must be overlooking something??&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 29 Jan 2009 10:24:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854695#M6861</guid>
      <dc:creator>crispybits</dc:creator>
      <dc:date>2009-01-29T10:24:14Z</dc:date>
    </item>
    <item>
      <title>Re: Find only some eigenvectors with a banded matrix?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854696#M6862</link>
      <description>&lt;BR /&gt;
&lt;P&gt;Hello, &lt;BR /&gt;dsbevx is really using bisection followed by inverse iteration if a) you don't need all the eigenvectors, b) a positive tolerance is set, otherwise it goes to QR.&lt;BR /&gt;Actually, if you want eigenvectors, dsbevx needs n^2 memory regardless from the number of eigenvectors needed because it needs to reduce banded form to tri-diagonal and keep track of the orthogonal transformation done during the reduction.&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2009 11:54:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854696#M6862</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2009-01-29T11:54:03Z</dc:date>
    </item>
    <item>
      <title>Re: Find only some eigenvectors with a banded matrix?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854697#M6863</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;Hi Gennady. Thanks but even those conditions aren't making it work properly. I tried abstol = 2 * dlamch('S') (which gives 4.4501477170144E-308 ). I've also treid abstol = 100 * dlamch('S'), and abstol = 0.0000001. In all cases it returns only the eigenvectors I ask for (1 to 4), but takes the same time if I ask for 200 eigenvectors.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/334681"&gt;Gennady Fedorov (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;BR /&gt;
&lt;P&gt;Hello, &lt;BR /&gt;dsbevx is really using bisection followed by inverse iteration if a) you don't need all the eigenvectors, b) a positive tolerance is set, otherwise it goes to QR.&lt;BR /&gt;Actually, if you want eigenvectors, dsbevx needs n^2 memory regardless from the number of eigenvectors needed because it needs to reduce banded form to tri-diagonal and keep track of the orthogonal transformation done during the reduction.&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;</description>
      <pubDate>Fri, 30 Jan 2009 06:21:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854697#M6863</guid>
      <dc:creator>crispybits</dc:creator>
      <dc:date>2009-01-30T06:21:24Z</dc:date>
    </item>
    <item>
      <title>Re: Find only some eigenvectors with a banded matrix?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854698#M6864</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Hello.&lt;BR /&gt;&lt;BR /&gt;It takes approximately the same time, because most time is spent by tri-diagonalization. The following process is quite quick no matter whether you need 4 or 200 vectors, but sure it will be different duration.&lt;BR /&gt;&lt;BR /&gt;Michael.</description>
      <pubDate>Fri, 30 Jan 2009 08:27:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854698#M6864</guid>
      <dc:creator>Michael_C_Intel4</dc:creator>
      <dc:date>2009-01-30T08:27:16Z</dc:date>
    </item>
    <item>
      <title>Re: Find only some eigenvectors with a banded matrix?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854699#M6865</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;Do you mean LAPACK has no algorithms that are efficient at finding a small number of eigenvectors in a large problem (say n&amp;gt; 2000) ?&lt;BR /&gt;&lt;BR /&gt;These are the speeds it runs on my dual core Intel something-common:&lt;BR /&gt;&lt;BR /&gt;For n=1563:&lt;BR /&gt;3 eigenvectors with dsbgvx: 44 seconds&lt;BR /&gt;1563 eigenvectors with dsbgvx: 61 seconds&lt;BR /&gt;3 eigenvectors with a homemade Visual Basic program without any fancy Intel optimizations: 59 seconds&lt;BR /&gt;&amp;gt;4 eigenvectors with the homemade VB program: Too long to wait&lt;BR /&gt;&lt;BR /&gt;It doesn't show any dramatic slowdown with more e-vectors like I expected bisection was supposed to. This really makes it look like the wrong algorithm is being used?? I hope you're not right or LAPACK will be nearly useless to me.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/337852"&gt;Michael Chuvelev (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;BR /&gt;Hello.&lt;BR /&gt;&lt;BR /&gt;It takes approximately the same time, because most time is spent by tri-diagonalization. The following process is quite quick no matter whether you need 4 or 200 vectors, but sure it will be different duration.&lt;BR /&gt;&lt;BR /&gt;Michael.&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;</description>
      <pubDate>Fri, 30 Jan 2009 11:36:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Find-only-some-eigenvectors-with-a-banded-matrix/m-p/854699#M6865</guid>
      <dc:creator>crispybits</dc:creator>
      <dc:date>2009-01-30T11:36:32Z</dc:date>
    </item>
  </channel>
</rss>

