[petsc-users] Retireve eigenvectors from a paralell job/ Spectrum slicing in order to solve big eigenvalue problem

Matthew Knepley knepley at gmail.com
Fri Sep 14 11:34:01 CDT 2018


On Fri, Sep 14, 2018 at 12:19 PM Jose E. Roman <jroman at dsic.upv.es> wrote:

> El 14 sept 2018, a las 17:45, Jan Grießer <griesser.jan at googlemail.com>
> escribió:
>
> Hey there,
> first i want to say thanks to Satish and Matt for helping with with my
> last problem with the mpi compilation. I have two questions related to
> solving a big, hermitian, standard eigenvalue problem using SLEPc4py.,
> compiled with Intel MKL and Intel MPI. - I am using slepc4py with mpi and
> run it with around -n 20 cores at the moment and how i wanted to ask if
> there is an easy way to retrieve the eigenvectors? When i run my code and
> print for i in range(nconv):
> for i in range(nconv): val = E.getEigenpair(i, vr, vi) Print(vr.getArray
> ())
> i get the parts of the eigenvectors according to the partition of the
> matrix. Is there any easy way to put them together in an array and write
> them to file ? (I am struggling a little bit with the building them in the
> correct order)
>
>
> You need VecScatterCreateToZero. There must be an equivalent in python.
>

An alternative to this which you should consider, because it is simpler, is
to write the vector to a file
using some format that PETSc understands, Then you just need
vr.view(viewer) for a viewer like
the binary viewer or some ASCII format you like.

  Thanks,

    Matt

> - I need to solve eigenvalue problems up to a dimension of 100000 degrees
> of freedom and i need all eigenvalues and eigenvectors. I think solving
> all eigenvalues in one process is far too much and i thought about if it is
> possible to apply the spectrum slicing described in Chap. 3.4.5. Due to the
> nature of my problem, i am able to simulate smaller systems of 10000 DOF
> and extract the biggest eigenvalue, which will be the same for larger
> systems sizes. Is this in general possible since i have a standard HEP
> problem or is there a better and faster possibility to do this?
>
>
> In general, SLEPc is not intended for computing the whole spectrum. You
> can try with spectrum slicing but this will be competitive if computing
> just a percentage of eigenvalues, 50% say.
>
> Jose
>
>
> Thank you very much!
>
>

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180914/38731f02/attachment.html>


More information about the petsc-users mailing list