[Trilinos-Users] Sparse matrix and Anasazi Solvers,
Mike Atambo
mikeat4999 at gmail.com
Tue Feb 10 08:59:18 MST 2015
Alicia,
Our matrices will include complex entries (i sent one case), but will
always be Hermitian, and we will only need the smallest real,
will the suggestion extend to complex hermitian matrices? What do you
think?
Mike.
On Tue, Feb 10, 2015 at 4:49 PM, Alicia Klinvex <aklinvex at purdue.edu> wrote:
> Hello Mike,
>
> First, I'd like to supply some information about your problem to the
> others on the mailing list. The matrix you sent is order 100 million, with
> 400 nonzeros. The matrix is stored as complex general in the file, but it
> is real symmetric indefinite, and we seek the smallest real or largest real.
>
> The eigenvalues of largest magnitude are (according to MATLAB)
> >> eigs(A)
>
> ans =
>
> -4.0000
> 4.0000
> -3.6180
> 3.6180
> 3.2361
> -3.2361
>
> I misread your original email and thought you were trying to compute the
> eigenvalues of smallest MAGNITUDE rather than smallest real, in which case
> it would have made sense to use shift-and-invert. Here's what I would do
> if I were you:
> Work with C=(A + 5 I). That matrix is symmetric positive definite, and if
> the eigenvalues of C are represented by sigma (and the eigenvalues of A by
> lambda), then \lambda_i = \sigma_i - 5. The eigenvectors will be the
> same. See if that works any better. (That transformation also means that
> asking for the eigenvalues of largest magnitude is the same as asking for
> the largest real eigenvalues.)
>
> Let me know how it goes!
>
> - Alicia
>
> On Tue, Feb 10, 2015 at 8:48 AM, Mike Atambo <mikeat4999 at gmail.com> wrote:
>
>> Alicia,
>> i looked at the examples you suggested, but im not sure i understand the
>> shit-invert
>> procedure, is there and example using the tpetra as opposed to Epetra
>> objects?
>> I have reduced the problem im having to a simple case, and a matrix
>> sample that reproduces
>> the convergence issue. The matrix itself is quite small (sparse with 400
>> non zeros) in matrix market
>> format.
>> Convergence is not achieved with this matrix, using both the Block
>> Davidson and the Krylov-Shur solvers,
>> i decided to attempt to find the largest real as opposed to the smallest,
>> but the behaviour seems
>> the same, therefore im inclined to think that it may not be that a
>> shift-invert is not performed.
>> Since the matrix is small, and these solvers should be able to work,
>> maybe there is something else going on, id appreciate
>> if an experienced eye took a look at my attempt, as its likely there is
>> something im unable to see.
>>
>> Regards
>> Mike
>>
>> On Tue, Feb 10, 2015 at 2:14 PM, Mike Atambo <mikeat4999 at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Thu, Feb 5, 2015 at 8:27 PM, Mike Atambo <mikeat4999 at gmail.com>
>>> wrote:
>>>
>>>> Alicia,
>>>> I will take a look at that try it on my problem
>>>> thanks,
>>>> Mike
>>>>
>>>> On Thu, Feb 5, 2015 at 8:22 PM, Alicia Klinvex <aklinvex at purdue.edu>
>>>> wrote:
>>>>
>>>>> Hello Mike,
>>>>>
>>>>> I'm pretty sure your Trilinos code is NOT using shift-and-invert with
>>>>> BKS. (Shift-and-invert is the spectral transformation I described before.)
>>>>> If you want to use shift-and-invert, you must construct the linear solver
>>>>> yourself and give it to the BKS solver manager. Some examples of that can
>>>>> be found on this page:
>>>>> http://trilinos.org/docs/r11.12/packages/anasazi/doc/html/examples.html
>>>>>
>>>>> If you want to use a sparse factorization, then the Amesos example
>>>>> should be of interest to you. If you want to use a preconditioned Krylov
>>>>> method to solve the linear systems that arise at each iteration of BKS,
>>>>> then look at the Belos example. Let me know if those examples don't make
>>>>> sense to you.
>>>>>
>>>>> Best wishes,
>>>>> Alicia
>>>>>
>>>>> Disclaimer: I am an external collaborator at Sandia, and I did not
>>>>> write the BKS code. I can help you with the mechanics of getting things to
>>>>> run, but Heidi Thornquist and Rich Lehoucq (who are also on the user
>>>>> mailing list) would probably know more about how to get good performance
>>>>> out of BKS and block Davidson.
>>>>>
>>>>> On Thu, Feb 5, 2015 at 1:50 PM, Mike Atambo <mikeat4999 at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Alicia,
>>>>>> Im still trying to figure out what exactly im facing. Maybe what you
>>>>>> described be the issue, but at this
>>>>>> point i would prefer to try out what you have suggested, if it works,
>>>>>> then it would be certain thats what im facing,
>>>>>> if not, then i can rule that out.
>>>>>> Please let me know how to set the krylov-shur solver as you
>>>>>> suggested,
>>>>>> here are the parameters i pass to the anasaziPL for Krylov-Shur at
>>>>>> the moment:
>>>>>>
>>>>>> const double tol = 1.0e-8;
>>>>>> const int maxIters = 500;
>>>>>> anasaziPL.set ("Which", "SR");
>>>>>> anasaziPL.set ("Block Size",1 );
>>>>>> //anasaziPL.set ("Maximum Iterations", maxIters);
>>>>>> anasaziPL.set ("Convergence Tolerance", tol);
>>>>>> anasaziPL.set ("Full Ortho", true);
>>>>>> anasaziPL.set ("Use Locking", true);
>>>>>>
>>>>>> Mike.
>>>>>>
>>>>>>
>>>>>> On Thu, Feb 5, 2015 at 5:47 PM, Alicia Klinvex <aklinvex at purdue.edu>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Mike,
>>>>>>>
>>>>>>> If ARPACK is working for you and block Krylov-Schur is not, I
>>>>>>> suspect that one is using a spectral transformation and the other is not.
>>>>>>>
>>>>>>> I don't know much about scipy's eigs, but I assume it is similar to
>>>>>>> Matlab's eigs (which also uses ARPACK). When you ask Matlab's eigs to find
>>>>>>> the smallest eigenvalues of a matrix, it will automatically transform the
>>>>>>> problem of finding the smallest eigenpairs of A x = \lambda x into the
>>>>>>> equivalent problem of finding the largest eigenpairs of A^{-1} x =
>>>>>>> \lambda^{-1}x. Anasazi's Krylov Schur does not do that unless you
>>>>>>> explicitly tell it to. Could that be the problem you're having? If so, we
>>>>>>> can discuss how to tell Krylov-Schur that's what you want to do.
>>>>>>>
>>>>>>> Best wishes,
>>>>>>> Alicia Klinvex
>>>>>>>
>>>>>>> On Thu, Feb 5, 2015 at 11:21 AM, Mike Atambo <mikeat4999 at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> Im unable to get matrices, ( say a sparse matrix with
>>>>>>>> 885500 non zeros out of about 2822796900 ) to converge
>>>>>>>> with the block davison or the krylov solver,
>>>>>>>>
>>>>>>>> I had a look at the condition number reported by the 'ILUT'
>>>>>>>> preconditioner and it seems to grow rather quickly for my problems, ( 9x9
>>>>>>>> with 39 non zeros has condition number= 10, and at 25*25 and 100 non
>>>>>>>> zeros the condition number is at 250).
>>>>>>>>
>>>>>>>> Im able to solve all these examples here using scipy.sparse.eigs
>>>>>>>> (it uses ARPACK), so there is probably something that im not doing right.
>>>>>>>>
>>>>>>>> The block-davidson solver with 'ILUT' pre-conditioner work for
>>>>>>>> the small systems above, but beyond 300*300 matrix size, this is not
>>>>>>>> longer true.
>>>>>>>>
>>>>>>>> At the moment im following these steps.
>>>>>>>>
>>>>>>>> 1. Create and initialize a matrix,
>>>>>>>> 2. Create an anasazi basic eigenproblem,
>>>>>>>> 3. Create a solver (either block davidson or krylov-shur)
>>>>>>>> 4. Get solution,
>>>>>>>>
>>>>>>>> Id like to find out whether there is a way to tell why the system
>>>>>>>> im working on seems
>>>>>>>> to be unable to converge. Any help would be appreciated.
>>>>>>>>
>>>>>>>> Mike
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> M. O. Atambo
>>>>>>>> mikeat4999 at gmail.com
>>>>>>>> matambo at ictp.it
>>>>>>>> Ext .139
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Trilinos-Users mailing list
>>>>>>>> Trilinos-Users at software.sandia.gov
>>>>>>>> https://software.sandia.gov/mailman/listinfo/trilinos-users
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> M. O. Atambo
>>>>>> mikeat4999 at gmail.com
>>>>>> matambo at ictp.it
>>>>>> Ext .139
>>>>>> Room 209.
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> M. O. Atambo
>>>> mikeat4999 at gmail.com
>>>> matambo at ictp.it
>>>> Ext .139
>>>> Room 209.
>>>>
>>>>
>>>
>>>
>>> --
>>> M. O. Atambo
>>> mikeat4999 at gmail.com
>>> matambo at ictp.it
>>> Ext .139
>>> Room 209.
>>>
>>>
>>
>>
>> --
>> M. O. Atambo
>> mikeat4999 at gmail.com
>> matambo at ictp.it
>> Ext .139
>> Room 209.
>>
>>
>
--
M. O. Atambo
mikeat4999 at gmail.com
matambo at ictp.it
Ext .139
Room 209.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150210/1588ff18/attachment.html>
More information about the Trilinos-Users
mailing list