<head><!-- BaNnErBlUrFlE-HeAdEr-start -->
<style>
  #pfptBannereqrp0yh { all: revert !important; display: block !important; 
    visibility: visible !important; opacity: 1 !important; 
    background-color: #D0D8DC !important; 
    max-width: none !important; max-height: none !important }
  .pfptPrimaryButtoneqrp0yh:hover, .pfptPrimaryButtoneqrp0yh:focus {
    background-color: #b4c1c7 !important; }
  .pfptPrimaryButtoneqrp0yh:active {
    background-color: #90a4ae !important; }
</style>

<!-- BaNnErBlUrFlE-HeAdEr-end -->
</head><!-- BaNnErBlUrFlE-BoDy-start -->
<!-- Preheader Text : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">
 I also just ran with cupy. linalg. eigvalsh (which wraps cuSOLVER), and it only took 3. 1 seconds. I will probably use this, but it is good to know about the SLEPc cases if I don't need the full spectrum or have sparse matrices, etc. Thanks,SreeramOn
</div>
<!-- Preheader Text : END -->

<!-- Email Banner : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerStart</div>

<!--[if ((ie)|(mso))]>
  <table border="0" cellspacing="0" cellpadding="0" width="100%" style="padding: 16px 0px 16px 0px; direction: ltr" ><tr><td>
    <table border="0" cellspacing="0" cellpadding="0" style="padding: 0px 10px 5px 6px; width: 100%; border-radius:4px; border-top:4px solid #90a4ae;background-color:#D0D8DC;"><tr><td valign="top">
      <table align="left" border="0" cellspacing="0" cellpadding="0" style="padding: 4px 8px 4px 8px">
        <tr><td style="color:#000000; font-family: 'Arial', sans-serif; font-weight:bold; font-size:14px; direction: ltr">
          This Message Is From an External Sender
        </td></tr>
        <tr><td style="color:#000000; font-weight:normal; font-family: 'Arial', sans-serif; font-size:12px; direction: ltr">
          This message came from outside your organization.
        </td></tr>

      </table>

    </td></tr></table>
  </td></tr></table>
<![endif]-->

<![if !((ie)|(mso))]>
  <div dir="ltr"  id="pfptBannereqrp0yh" style="all: revert !important; display:block !important; text-align: left !important; margin:16px 0px 16px 0px !important; padding:8px 16px 8px 16px !important; border-radius: 4px !important; min-width: 200px !important; background-color: #D0D8DC !important; background-color: #D0D8DC; border-top: 4px solid #90a4ae !important; border-top: 4px solid #90a4ae;">
    <div id="pfptBannereqrp0yh" style="all: unset !important; float:left !important; display:block !important; margin: 0px 0px 1px 0px !important; max-width: 600px !important;">
      <div id="pfptBannereqrp0yh" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #D0D8DC !important; color:#000000 !important; color:#000000; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-weight:bold !important; font-weight:bold; font-size:14px !important; line-height:18px !important; line-height:18px">
        This Message Is From an External Sender
      </div>
      <div id="pfptBannereqrp0yh" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #D0D8DC !important; color:#000000 !important; color:#000000; font-weight:normal; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-size:12px !important; line-height:18px !important; line-height:18px; margin-top:2px !important;">
This message came from outside your organization.
      </div>

    </div>

    <div style="clear: both !important; display: block !important; visibility: hidden !important; line-height: 0 !important; font-size: 0.01px !important; height: 0px"> </div>
  </div>
<![endif]>

<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerEnd</div>
<!-- Email Banner : END -->

<!-- BaNnErBlUrFlE-BoDy-end -->
<div dir="ltr">I also just ran with cupy.linalg.eigvalsh (which wraps cuSOLVER), and it only took 3.1 seconds. I will probably use this, but it is good to know about the SLEPc cases if I don't need the full spectrum or have sparse matrices, etc.<div><br></div><div>Thanks,</div><div>Sreeram</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 13, 2024 at 2:13 PM Sreeram R Venkat <<a href="mailto:srvenkat@utexas.edu">srvenkat@utexas.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div>Apologies, I accidentally hit "reply" instead of "reply-all."</div><div><br></div><div>Thank you for the reference. Actually, I just tested that N ~ 1e4 case where I had saved the dense matrix to a python-readable format. Using scipy.linalg.eigvalsh, I got the eigenvalues in ~1.5 minutes. They agree with the ones I got from SLEPc as well. I believe the scipy routine just calls LAPACK in the backend, so I assume I would get similar results if I used the LAPACK solver in SLEPc. </div><div><br></div><div>The MatShell object I am working with requires me to operate on multiple processes to fit all the data, so to use the LAPACK solver in SLEPc, I believe I would have to read/write the dense matrix as well.</div><div><br></div><div>So at the cost of storing the dense matrix, I think the dense eigensolver seems to be the way to go. I will need to store at least one large dense matrix of this size for my application, so that should not be the limiting factor.</div><div><br></div><div>Sreeram</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 13, 2024 at 1:54 PM Jose E. Roman <<a href="mailto:jroman@dsic.upv.es" target="_blank">jroman@dsic.upv.es</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Please respond to the list.<br>
<br>
The mpd parameter means "maximum projected dimension". You can think of the projected problem as the "sequential" part of the computation, that is not parallelized ("small" dense eigenproblem). When you run with MPI, everything will scale reasonably well except that part, so it is better to keep it small, specially when you request many eigenvalues. A value mpd=2000 might be too large, it may be better to reduce it to 500, say. The paper <a href="https://urldefense.us/v3/__https://doi.org/10.1016/j.cpc.2010.09.007__;!!G_uCfscf7eWS!f2yCdZSL_oAtFe32noZqGhwa3rbTgx34qUGo9HuXkP6nQm_-ryGpPFxDt_2hEv3HzLy7POL3H28uob9D4qchyj3kXA$" rel="noreferrer" target="_blank">https://doi.org/10.1016/j.cpc.2010.09.007</a> includes a discussion on the ncv and mpd paramters, mostly in terms of memory usage.<br>
<br>
Jose<br>
<br>
> El 13 may 2024, a las 20:33, Sreeram R Venkat <<a href="mailto:srvenkat@utexas.edu" target="_blank">srvenkat@utexas.edu</a>> escribió:<br>
> <br>
> Thank you for the suggestions. I will try out LAPACK/ELPA and the n/2 method. For the latter, how should I choose the MPD? In the examples I could find online, it looked like they were using something like mpd ~ nev/10.<br>
> <br>
> Sreeram<br>
> <br>
<br>
</blockquote></div>
</blockquote></div>