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, Sreeram On Mon, May 13, 2024 at 2:13 PM Sreeram R Venkat <[email protected]> wrote: > > Apologies, I accidentally hit "reply" instead of "reply-all." > > 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. > > 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. > > 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. > > Sreeram > > On Mon, May 13, 2024 at 1:54 PM Jose E. Roman <[email protected]> wrote: > >> Please respond to the list. >> >> 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 >> https://urldefense.us/v3/__https://doi.org/10.1016/j.cpc.2010.09.007__;!!G_uCfscf7eWS!f2yCdZSL_oAtFe32noZqGhwa3rbTgx34qUGo9HuXkP6nQm_-ryGpPFxDt_2hEv3HzLy7POL3H28uob9D4qchyj3kXA$ >> includes a discussion on >> the ncv and mpd paramters, mostly in terms of memory usage. >> >> Jose >> >> > El 13 may 2024, a las 20:33, Sreeram R Venkat <[email protected]> >> escribió: >> > >> > 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. >> > >> > Sreeram >> > >> >>
