MatTranspose Question
Sarah Osentoski
sosentos at cs.umass.edu
Mon Jul 14 14:23:42 CDT 2008
Hi Toby,
The first thing I did was to run my code to check for correctness on
a matrix of size 202x200. It gave me, what looked to be, the
singular values i was expecting on that matrix. The code ran
extremely quickly on this size of matrix. I suppose could keep
generating larger and larger fake matrices until I get stuck but not
too stuck. But at some point I think I will have to solve this
specific problem.
Theoretically I might be able to work around this problem by creating
the transpose of my matrix when I read in my original matrix from
several files. (I could just create another matrix and do another
call to MatSetValue w/ the row and column values switched.) This
would just require hacking some code in SLEPc but it seems possible.
And my very very naive way of loading the data into the matrix only
takes about an hour or so which is substantially better than the
times that I'm seeing.
However, I am wondering if there is something I'm doing that is
really wrong in some way. I am trying to dig through the transpose
code to understand but any input anyone can give me would be great.
Sarah
On Jul 14, 2008, at 2:21 PM, Toby D. Young wrote:
>
>
>> I'll start out by saying I'm a new user to PETSc. I'm actually using
>> SLEPc
>
> Me too. :-)
>
>> I have a very large, very sparse matrix with dimensions on the order
>> of 3 million by 1 million. I created my matrix using MatCreateMPIAIJ
>> and it seems to be evenly distributed across my machines. I've hit a
>> bottleneck when running some code to compute the SVD of the matrix
>> and the bottleneck seems to be using the MatTranspose operation on my
>> matrix.
>
> I can not directly help you with your questions Sarah, sorry. Out of
> sheer academic interest in your problem (I had a similar problem
> once and
> found a work-around): Have you tried to run your code for very small
> matrices (say, 300x100)? Just to check that the bottleneck problem
> is in
> fact not something else!
>
> Transposing a HUGE matrix such as the one you have is an expensive
> operation in anyone's book. As far as I know, PETSc does not store
> zero-components of a matrix but uses a sparsity pattern to "remember"
> them... (Someone please correct me if I am wrong).
>
> Hope that is somehow helpful for you.
>
> Best,
> Toby
>
>
> -----
>
> Toby D. Young - Adiunkt (Assistant Professor)
> Department of Computational Science
> Institute of Fundamental Technological Research
> Polish Academy of Sciences
> Room 206, ul. Swietokrzyska 21
> 00-049 Warszawa, Polska
>
> +48 22 826 12 81 ext. 184
> http://rav.ippt.gov.pl/~tyoung
More information about the petsc-users
mailing list