[petsc-users] Pseudoinverse of a large matrix

Matthew Knepley knepley at gmail.com
Mon Dec 19 13:21:48 CST 2011


On Mon, Dec 19, 2011 at 1:00 PM, Modhurita Mitra <modhurita at gmail.com>wrote:

> I am trying to express the radiation pattern of an antenna in terms of
> spherical harmonic basis functions. I have radiation pattern data at
> N=324360 points. Therefore, my matrix is spherical harmonic basis functions
> evaluated till order sqrt(N) (which makes up at total of N elements),
> evaluated at N data points. So this is a linear least squares problem, and
> I have been trying to solve it by finding its pseudoinverse which uses SVD.
> The elements of the matrix are complex, and the matrix is non-sparse. I
> have solved it in MATLAB using a subsample of the data, but MATLAB runs out
> of memory while calculating the SVD at input matrix size 2500 X 2500. I
> need to solve this problem using the entire data.
>
> I was thinking of using SLEPc because I found a ready-to-use code which
> computes the SVD of a complex-valued matrix (
> http://www.grycap.upv.es/slepc/documentation/current/src/svd/examples/tutorials/ex14.c.html). I don't know how to use either PETSc or SLEPc (or Elemental) yet, so I
> am trying to figure out where to start and what I should learn.
>

1) You could try Elemental in parallel (would probably use QR)

2) You could try LSQR in PETSc (preconditioner isa mystery)

3) The "right" solution for large LS problems is probably this compressed
sensing
    approach (there is a great review on arXiv by Martinsson).

   Matt


> Thanks,
> Modhurita
>
>
> On Mon, Dec 19, 2011 at 12:31 PM, Matthew Knepley <knepley at gmail.com>wrote:
>
>> On Mon, Dec 19, 2011 at 12:21 PM, Modhurita Mitra <modhurita at gmail.com>wrote:
>>
>>> Hi,
>>>
>>> I have to compute the pseudoinverse of a 324360 X 324360 matrix. Can
>>> PETSc compute the SVD of this matrix without parallelization? If
>>> parallelization is needed, do I need to use SLEPc?
>>>
>>
>> With enough memory, yes. However, I am not sure you want to wait. I am
>> not sure how SLEPc would help here.
>> From the very very little detail you have given, you would need parallel
>> linear algebra, like Elemental. However,
>> I would start out from a more fundamental viewpoint. Such as replacing
>> "compute the psuedoinverse" with
>> "solve a least-squares problem" if that is indeed the case.
>>
>>    Matt
>>
>>
>>>
>>> Thanks,
>>> Modhurita
>>>
>>
>>
>>
>> --
>> 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
>>
>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111219/dbc8ec91/attachment.htm>


More information about the petsc-users mailing list