[Trilinos-Users] MinTraceDavidson

Sander Schaffner ssander at student.ethz.ch
Fri Feb 13 05:57:56 MST 2015


Hi Alica

The matrix A that I have given you has a slightly other nullspace. Each 
value has to be corrected with the atom_mass.dat vector. Just have a 
look at the test_nullspace script i wrote today (also in the dropbox 
folder). Sorry for the confusion! The point is this: In the beginning I 
had to work on a matrix with no dimensions (physically) and we changed 
this for the new one. So each term in A is also corrected with the 
atom_mass. That's why we have another nullspace now (each 1 has to be 
multiplied by the square root of the according entry of atom_mass.dat)

And I was also able to calculate many more eigenpairs. I'm now on 300 in 
3 hours with ILUT as a preconditioner. And yes the smallest of your 
callculation is correct, altough I'm a bit confused since it should find 
the 3 eigenvalues 0 first?

Is there any progress regarding other sattle point solver for the public 
repository of TraceMinDavidson?

Best wishes,
Sander


Am 12.02.2015 um 20:34 schrieb Alicia Klinvex:
> Hello Sander,
>
> I'm copying the user list, since we probably should have been doing 
> that all along.  This way, you can get help from all the Trilinos 
> folks, not just me.  (I'm definitely the right person to ask about 
> TraceMin, but I don't know much about Ifpack/ML, etc.)  For everyone 
> who is not Sander, here is a recap of his situation: He wants to 
> compute the smallest eigenpairs of a symmetric positive definite 
> matrix, and he's been brave enough to try Anasazi's newest 
> eigensolver, TraceMin-Davidson.  He is having trouble with 
> TraceMin-Davidson, as well as a few of the other eigensolvers.
>
> I had a look at your matrix in Matlab, and it's a little unclear to me 
> what the null space is.  From your code, it looks like the basis is 
> supposed to be [1 0 0 1 0 0 1 0 0 ...; 0 1 0 0 1 0 0 1 0 ...; 0 0 1 0 
> 0 1 0 0 1]'.  When I imported your matrix in Matlab and computed 
> A*[your null space basis], I was getting a nonzero vector (and by 
> nonzero, I mean its norm was 1.2685).
>
> I ran TraceMin-Davidson without calling setAuxVecs, and I did not 
> experience the behavior you did.  (150 eigenpairs were locked, but the 
> three vectors of the null space never converged...which isn't 
> surprising, considering that I asked for a small relative residual, 
> and for those vectors, the relative residual is defined as absolute 
> residual / 0.)  Is it possible that your basis for the null space is 
> incorrect, or did I misread your code?
>
> Best wishes,
> Alicia
>
> PS: The smallest eigenvalue TraceMin-Davidson found was 1.869423e-2.  
> Is the matrix you sent me the same one you used to generate your results?
>
> On Wed, Feb 4, 2015 at 2:49 PM, Sander Schaffner 
> <ssander at student.ethz.ch <mailto:ssander at student.ethz.ch>> wrote:
>
>     Of course: matrixFile.mtx -> its about 2gb
>
>     Best wishes
>
>     Sander
>
>     Am 04.02.2015 um 20:21 schrieb Alicia Klinvex:
>>     Hello Sander,
>>
>>     I don't see the matrices in your dropbox. Can you save them as
>>     [something].mtx?
>>
>>     Thank you,
>>     Alicia
>>
>>     On Wed, Feb 4, 2015 at 2:01 PM, Sander Schaffner
>>     <ssander at student.ethz.ch <mailto:ssander at student.ethz.ch>> wrote:
>>
>>         Hey!
>>
>>         It seems that it is not reproducable. I ran it again 2 times
>>         for 8 hours and once I got 129 eigenpairs and the other time
>>         230. Meanwhile the matrix is in the dropboxfolder in a
>>         MatrixMarket format. If you could feed this matrix once into
>>         your setup it would be nice.
>>
>>         Thanks
>>
>>         Sander
>>
>>         Am 02.02.2015 um 16:18 schrieb Alicia Klinvex:
>>>         Hello,
>>>
>>>         Can you save your matrix as a MatrixMarket or Matlab file?
>>>         Also, can you turn on the debugging output and rerun the
>>>         program?
>>>
>>>         Thank you,
>>>         Alicia
>>>
>>>         On Mon, Feb 2, 2015 at 6:21 AM, Sander Schaffner
>>>         <ssander at student.ethz.ch <mailto:ssander at student.ethz.ch>>
>>>         wrote:
>>>
>>>             Hey Alicia
>>>
>>>             I hope this works for you:
>>>
>>>             https://www.dropbox.com/sh/ouw90m0m00s6kyn/AAAilijMstKYKa_7Mx4hQaQ9a?dl=0
>>>
>>>             I had to write my own TpetraExt for the functions I
>>>             need. Just copy all the files in the same directory and
>>>             change the trilinos-path in the Makefile. In the sbatch
>>>             file you see how I called the programm after compilation.
>>>
>>>             Is this okey for you? Thanks alot
>>>
>>>             Best wishes,
>>>             Sander
>>>
>>>
>>>
>>>             Am 30.01.2015 um 18:52 schrieb Alicia Klinvex:
>>>>             Well that's not good!  It looks like there may be a
>>>>             problem with the restarting.  (I'll have a look at it.)
>>>>
>>>>             My update isn't in the public repo yet, but thanks for
>>>>             reminding me.  I've been running tests with it, and if
>>>>             you're interested in using preconditioners, the block
>>>>             diagonal preconditioning patch will be of interest to
>>>>             you.  (Mark Hoemmen generally helps me out with these
>>>>             things, i.e. wrapping sensitive bits of code so I don't
>>>>             break the Trilinos configuration process, but he was on
>>>>             vacation for most of January.  I'll ping him to see if
>>>>             he can do it now.)
>>>>
>>>>             Can you send me your matrix and driver, so I can see
>>>>             what's going on?  I suspect the solver manager
>>>>             accidentally removed the wrong vector from the subspace
>>>>             when it locked a vector.
>>>>
>>>>             Best wishes,
>>>>             Alicia
>>>>
>>>>             PS: as far as getting unconverged Ritz vectors
>>>>             goes...it's complicated.  It's SUPPOSED to be difficult
>>>>             to access them, because they aren't going to be
>>>>             accurate anyway. What you have to do if you desperately
>>>>             want to get them is create your own custom debug status
>>>>             test.  I can give you more information about this if
>>>>             you like, but I don't think the unconverged Ritz
>>>>             vectors will give you much information.  You could
>>>>             always turn on the Anasazi::Debug output option, which
>>>>             will give you information about loss of orthogonality
>>>>             and whatnot.
>>>>
>>>>             On Fri, Jan 30, 2015 at 9:51 AM, Sander Schaffner
>>>>             <ssander at student.ethz.ch
>>>>             <mailto:ssander at student.ethz.ch>> wrote:
>>>>
>>>>                 Hi Alicia
>>>>
>>>>                 There is a new strange thing that happened to me: I
>>>>                 was able to calculate 400 eigenpairs of matrix A
>>>>                 (dim = 150k, nnz = 60e9) in 4.5 hours. Then I
>>>>                 received a updated matrix. The structure stayed the
>>>>                 same, but the values got an update by either the
>>>>                 square root of mass a or mass b. Therefore the
>>>>                 values changed from 1e1 to 1e27. So I had to
>>>>                 rescale, since the solver did not work for the
>>>>                 values at 1e27.  I have now a matrix B with the
>>>>                 same structure than A but other values that have
>>>>                 more or less the same size.
>>>>
>>>>                 I first calculated 100 eigenpairs which worked in
>>>>                 20min. But I did not give me any results for 150
>>>>                 eigenpairs after 8 hours. The solver doesnt
>>>>                 converge. I had a look at the at the output. After
>>>>                 finding 77 eigenpairs (I start with 3 auxiliary
>>>>                 vectors) where the smallest eigenvalue is 1.92e-4
>>>>                 it suddenly has a new ritz-value of 1.2e-7 after
>>>>                 iteration step 23 (it somehow looks af it whould
>>>>                 smugling itself into the list). And this value must
>>>>                 be wrong since we should not drop behind 1.92e-4.
>>>>                 Do you have any idea how to correct this or why
>>>>                 this happens? In the lower part of the mail you
>>>>                 find two snippets of the TraceMinBase Solver
>>>>                 Status. I thought I should have a look at the
>>>>                 vector which belongs to this value, but I did not
>>>>                 find how to configure the solver so that it stops
>>>>                 after a certain number of iterations. Is there any
>>>>                 possibility to get the ritz-vectors altough the
>>>>                 solver did not finish?
>>>>
>>>>                 At the moment I'm using ILUT as a preconditioner.
>>>>                 I'm working to get MueLu to run and use this to
>>>>                 look if I can get any improvements.
>>>>
>>>>                 Then there is another question: Did your update
>>>>                 made it into the public repo? I would love to try
>>>>                 other saddle point solvers:)
>>>>
>>>>                 Best wishes,
>>>>
>>>>                 Sander
>>>>
>>>>                 ================================================================================
>>>>
>>>>                 TraceMinBase Solver Status
>>>>
>>>>                 The solver is initialized.
>>>>                 The number of iterations performed is 23
>>>>                 The block size is        50
>>>>                 The number of blocks is   30
>>>>                 The current basis size is 450
>>>>                 The number of auxiliary vectors is 80
>>>>                 The number of operations Op*x  is 1200
>>>>                 The number of operations M*x is 0
>>>>
>>>>                 CURRENT EIGENVALUE ESTIMATES
>>>>                 Eigenvalue  Residual(M)    Residual(2)
>>>>                 --------------------------------------------------------------------------------
>>>>                 5.476905e-04    not current     6.561567e-06
>>>>                 8.015696e-04    not current     6.822561e-06
>>>>                 8.067189e-04    not current     8.178570e-06
>>>>                 1.043989e-03    not current     2.537229e-05
>>>>                 1.063398e-03    not current     1.999694e-05
>>>>                 1.077780e-03    not current     2.646044e-05
>>>>                 1.148442e-03    not current     3.388691e-05
>>>>                 1.189898e-03    not current     1.205903e-04
>>>>
>>>>
>>>>                 .
>>>>                 .
>>>>                 .
>>>>
>>>>                 ================================================================================
>>>>
>>>>                 TraceMinBase Solver Status
>>>>
>>>>                 The solver is initialized.
>>>>                 The number of iterations performed is 24
>>>>                 The block size is        50
>>>>                 The number of blocks is   30
>>>>                 The current basis size is 300
>>>>                 The number of auxiliary vectors is 81
>>>>                 The number of operations Op*x  is 1250
>>>>                 The number of operations M*x is 0
>>>>
>>>>                 CURRENT EIGENVALUE ESTIMATES
>>>>                 Eigenvalue  Residual(M)    Residual(2)
>>>>                 --------------------------------------------------------------------------------
>>>>                 1.266381e-07    not current      not current
>>>>                 5.477028e-04    not current      not current
>>>>                 8.015761e-04    not current      not current
>>>>                 8.067281e-04    not current      not current
>>>>                 1.044027e-03    not current      not current
>>>>                 1.063419e-03    not current      not current
>>>>                 1.077814e-03    not current      not current
>>>>                 1.148475e-03    not current      not current
>>>>                 1.190137e-03    not current      not current
>>>>                 1.210246e-03    not current      not current
>>>>                 1.230605e-03    not current      not current
>>>>                 1.233197e-03    not current      not current
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150213/410c50d4/attachment-0001.html>


More information about the Trilinos-Users mailing list