[Trilinos-Users] ansazi question

Hysom, David A. hysom1 at llnl.gov
Fri Feb 13 20:03:35 MST 2015


Alicia,

I polled my collegues, some whom are are computer scientists, others are more
math inclined, and was rather surprised at their quick replies:

Andy Yoo: "I would say definitely yes too."

Geoff Sanders: "Yeah, I think we need it.    Dynamic graphs it would be useful for, too ... It's extremely useful to a numerical analyst that seeks to understand what error modes an algorithm is struggling with."

Lance Ward: "I would vote yes since it is very hard to know in advance what the smallest tolerance you'll be able to obtain is and on the assumption it is better to give the customer some results which may be less than ideal and a warning about it vs giving them nothing like we currently do if it fails?"

regards, David
________________________________
From: trilinos-users-bounces at software.sandia.gov [trilinos-users-bounces at software.sandia.gov] on behalf of Hysom, David A. [hysom1 at llnl.gov]
Sent: Friday, February 13, 2015 3:44 PM
To: Alicia Klinvex
Cc: trilinos-users at software.sandia.gov
Subject: Re: [Trilinos-Users] ansazi question

Alicia,

Thanks for your quick response. Yes, we'd really like to do this.

FYI, we're performing iterative spectral clustering:
  - compute the 2nd smallest eigenvector
  - use it to determine how to split the graph (of the matrix) into two sub-graphs
  - recurse for each subgraph, until some stopping criteria is met

A question is: what is the "best" thing to do if we get convergence failure
at some point, on one of the sub-graphs? In the past, we've thrown an exception.
Currently, we print out an error message and continue processing whatever
sub-graphs are still to be split (and don't attempt to split the sub-graph for which
convergence was not achieved). What we'd like to experiment with:
retrieve the eigenvectors, even if not converged, and run some statistical tests
to determine if they're "good enough" to provide a reasonable splitting.

- David

________________________________
From: Alicia Klinvex [aklinvex at purdue.edu]
Sent: Friday, February 13, 2015 3:29 PM
To: Hysom, David A.
Cc: trilinos-users at software.sandia.gov
Subject: Re: [Trilinos-Users] ansazi question

Hello David,

There is a way to retrieve the eigenpairs if convergence fails, but it's not easy.  The issue is that you use the LOBPCGSolMgr, I assume, which does not give you access to the solver.  The solver has a function to return the Ritz values and vectors; the solver manager does not.  You would need to create a custom debug status test (which allows you to grab the solver) and provide it to the solver manager.  This is not something that we generally recommend doing, but if you desperately want to do so, I can give you more information about how to do this.

Best wishes,
Alicia

On Fri, Feb 13, 2015 at 6:14 PM, Hysom, David A. <hysom1 at llnl.gov<mailto:hysom1 at llnl.gov>> wrote:
Hi,

We're using anasazi's LOBPCG, and have cases where convergence
fails, but we'd still like to retrieve the 2nd smallest eigenvector (we're
computing the smallesBasicEigenproblemt two). When we call:

Anasazi::Eigensolution<scalar_t, mvec_t> sol = problem->getSolution();
Teuchos::RCP<mvec_t> evecs = sol.Evecs;
cout << "evecs.size: " << evecs->getNumVectors() << endl;

we get a single vector. However, since anasazi can print out the
eigenvalues and residuals after every iteration, I'm guessing there
should be a way to retrieve the eigenpairs if convergence fails.

So, is there? If not, how easy would it be to modify the code to
do so, and where should I start?

thanks, David

_______________________________________________
Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov<mailto:Trilinos-Users at software.sandia.gov>
https://software.sandia.gov/mailman/listinfo/trilinos-users


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150214/b9bb6793/attachment.html>


More information about the Trilinos-Users mailing list