Eigenvalues did not converge
I'm bumping into the old "Eigenvalues did not converge" error using numpy.linalg.eigh() on several different linux builds of numpy (1.4.1). The matrix is 166x166. I can compute the eigenvalues on a Macintosh build of numpy, and I can confirm that there aren't degenerate eigenvalues, and that the matrix appears to be negative definite. I've seen this before (though not for several years), and what I normally do is to build lapack with -O0. This trick did not work in the current instance. Does anyone have any tricks to getting eigh to work? Other weird things that I've noticed about this case: I can compute the eigenvalues using eigvals and eigvalsh, and can compute the eigenvals/vecs using eig(). The matrix is real symmetric, and I've tested that it's symmetric enough by forcibly symmetrizing it. Thanks in advance for any help you can offer. -- Rick Muller rpmuller@gmail.com 505-750-7557
I posted a similar question about the non-convergence of numpy.linalg.svd a few weeks ago. I'm not sure I can help but I wonder if you compiled numpy with ATLAS/MKL support (try numpy.show_config()) and whether it made a difference? Also what is the condition number and Frobenius norm of the matrix in question? Charanpal On Mon, 29 Aug 2011 08:56:31 -0600, Rick Muller wrote:
Im bumping into the old "Eigenvalues did not converge" error using numpy.linalg.eigh() on several different linux builds of numpy (1.4.1). The matrix is 166x166. I can compute the eigenvalues on a Macintosh build of numpy, and I can confirm that there arent degenerate eigenvalues, and that the matrix appears to be negative definite.
Ive seen this before (though not for several years), and what I normally do is to build lapack with -O0. This trick did not work in the current instance. Does anyone have any tricks to getting eigh to work?
Other weird things that Ive noticed about this case: I can compute the eigenvalues using eigvals and eigvalsh, and can compute the eigenvals/vecs using eig(). The matrix is real symmetric, and Ive tested that its symmetric enough by forcibly symmetrizing it.
Thanks in advance for any help you can offer.
I recently got into trouble with these calculations (although I used scipy). I actually got segfaults and "bus errors". The solution for me was to not link against ATLAS, but rather link against Apple's blas/lapack libraries. That got everything working again. I would suggest trying to install against something other than ATLAS and see if that helps (or, more generally, determining which blas/lapack you are linking against, and try something else). Paul On 29. aug. 2011, at 16.21, Charanpal Dhanjal wrote:
I posted a similar question about the non-convergence of numpy.linalg.svd a few weeks ago. I'm not sure I can help but I wonder if you compiled numpy with ATLAS/MKL support (try numpy.show_config()) and whether it made a difference? Also what is the condition number and Frobenius norm of the matrix in question?
Charanpal
On Mon, 29 Aug 2011 08:56:31 -0600, Rick Muller wrote:
Im bumping into the old "Eigenvalues did not converge" error using numpy.linalg.eigh() on several different linux builds of numpy (1.4.1). The matrix is 166x166. I can compute the eigenvalues on a Macintosh build of numpy, and I can confirm that there arent degenerate eigenvalues, and that the matrix appears to be negative definite.
Ive seen this before (though not for several years), and what I normally do is to build lapack with -O0. This trick did not work in the current instance. Does anyone have any tricks to getting eigh to work?
Other weird things that Ive noticed about this case: I can compute the eigenvalues using eigvals and eigvalsh, and can compute the eigenvals/vecs using eig(). The matrix is real symmetric, and Ive tested that its symmetric enough by forcibly symmetrizing it.
Thanks in advance for any help you can offer.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Yes, as I pointed out, the problem does run on the Macintosh systems. But I'd like to be able to run these on our linux supercomputers. Surely this is possible, right? On Mon, Aug 29, 2011 at 9:31 AM, Paul Anton Letnes < paul.anton.letnes@gmail.com> wrote:
I recently got into trouble with these calculations (although I used scipy). I actually got segfaults and "bus errors". The solution for me was to not link against ATLAS, but rather link against Apple's blas/lapack libraries. That got everything working again. I would suggest trying to install against something other than ATLAS and see if that helps (or, more generally, determining which blas/lapack you are linking against, and try something else).
Paul
On 29. aug. 2011, at 16.21, Charanpal Dhanjal wrote:
I posted a similar question about the non-convergence of numpy.linalg.svd a few weeks ago. I'm not sure I can help but I wonder if you compiled numpy with ATLAS/MKL support (try numpy.show_config()) and whether it made a difference? Also what is the condition number and Frobenius norm of the matrix in question?
Charanpal
On Mon, 29 Aug 2011 08:56:31 -0600, Rick Muller wrote:
Im bumping into the old "Eigenvalues did not converge" error using numpy.linalg.eigh() on several different linux builds of numpy (1.4.1). The matrix is 166x166. I can compute the eigenvalues on a Macintosh build of numpy, and I can confirm that there arent degenerate eigenvalues, and that the matrix appears to be negative definite.
Ive seen this before (though not for several years), and what I normally do is to build lapack with -O0. This trick did not work in the current instance. Does anyone have any tricks to getting eigh to work?
Other weird things that Ive noticed about this case: I can compute the eigenvalues using eigvals and eigvalsh, and can compute the eigenvals/vecs using eig(). The matrix is real symmetric, and Ive tested that its symmetric enough by forcibly symmetrizing it.
Thanks in advance for any help you can offer.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
-- Rick Muller rpmuller@gmail.com 505-750-7557
As Paul suggested I'd try compiling numpy with something other than the BLAS/LAPACK libraries currently in use. Here is a good place to start: http://www.scipy.org/Installing_SciPy/Linux. Charanpal On Thu, 1 Sep 2011 12:20:46 -0600, Rick Muller wrote:
Yes, as I pointed out, the problem does run on the Macintosh systems. But Id like to be able to run these on our linux supercomputers. Surely this is possible, right?
On Mon, Aug 29, 2011 at 9:31 AM, Paul Anton Letnes wrote:
I recently got into trouble with these calculations (although I used scipy). I actually got segfaults and "bus errors". The solution for me was to not link against ATLAS, but rather link against Apples blas/lapack libraries. That got everything working again. I would suggest trying to install against something other than ATLAS and see if that helps (or, more generally, determining which blas/lapack you are linking against, and try something else).
Paul
On 29. aug. 2011, at 16.21, Charanpal Dhanjal wrote:
I posted a similar question about the non-convergence of numpy.linalg.svd a few weeks ago. Im not sure I can help but I wonder if you compiled numpy with ATLAS/MKL support (try numpy.show_config()) and whether it made a difference? Also what is the condition number and Frobenius norm of the matrix in question?
Charanpal
On Mon, 29 Aug 2011 08:56:31 -0600, Rick Muller wrote:
Im bumping into the old "Eigenvalues did not converge" error using numpy.linalg.eigh() on several different linux builds of numpy (1.4.1). The matrix is 166x166. I can compute the eigenvalues on a Macintosh build of numpy, and I can confirm that there arent degenerate eigenvalues, and that the matrix appears to be negative definite.
Ive seen this before (though not for several years), and what I normally do is to build lapack with -O0. This trick did not work in the current instance. Does anyone have any tricks to getting eigh to work?
Other weird things that Ive noticed about this case: I can compute the eigenvalues using eigvals and eigvalsh, and can compute the eigenvals/vecs using eig(). The matrix is real symmetric, and Ive tested that its symmetric enough by forcibly symmetrizing it.
Thanks in advance for any help you can offer.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org [1] http://mail.scipy.org/mailman/listinfo/numpy-discussion [2]
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org [3] http://mail.scipy.org/mailman/listinfo/numpy-discussion [4]
-- Rick Muller rpmuller@gmail.com [6] 505-750-7557
Links: ------ [1] mailto:NumPy-Discussion@scipy.org [2] http://mail.scipy.org/mailman/listinfo/numpy-discussion [3] mailto:NumPy-Discussion@scipy.org [4] http://mail.scipy.org/mailman/listinfo/numpy-discussion [5] mailto:paul.anton.letnes@gmail.com [6] mailto:rpmuller@gmail.com
I'm not sure if I got my point across. My point was that the ATLAS installation that numpy linked against was broken on Mac OS X but not on Linux (afaik). Hence, your code may run better on your supercomputer. So, try linking against a different BLAS/LAPACK implementation, and, with some luck, your problem could potentially disappear. ymmv, Paul. On Thu, Sep 1, 2011 at 8:20 PM, Rick Muller <rpmuller@gmail.com> wrote:
Yes, as I pointed out, the problem does run on the Macintosh systems. But I'd like to be able to run these on our linux supercomputers. Surely this is possible, right?
On Mon, Aug 29, 2011 at 9:31 AM, Paul Anton Letnes < paul.anton.letnes@gmail.com> wrote:
I recently got into trouble with these calculations (although I used scipy). I actually got segfaults and "bus errors". The solution for me was to not link against ATLAS, but rather link against Apple's blas/lapack libraries. That got everything working again. I would suggest trying to install against something other than ATLAS and see if that helps (or, more generally, determining which blas/lapack you are linking against, and try something else).
Paul
On 29. aug. 2011, at 16.21, Charanpal Dhanjal wrote:
I posted a similar question about the non-convergence of numpy.linalg.svd a few weeks ago. I'm not sure I can help but I wonder if you compiled numpy with ATLAS/MKL support (try numpy.show_config()) and whether it made a difference? Also what is the condition number and Frobenius norm of the matrix in question?
Charanpal
On Mon, 29 Aug 2011 08:56:31 -0600, Rick Muller wrote:
Im bumping into the old "Eigenvalues did not converge" error using numpy.linalg.eigh() on several different linux builds of numpy (1.4.1). The matrix is 166x166. I can compute the eigenvalues on a Macintosh build of numpy, and I can confirm that there arent degenerate eigenvalues, and that the matrix appears to be negative definite.
Ive seen this before (though not for several years), and what I normally do is to build lapack with -O0. This trick did not work in the current instance. Does anyone have any tricks to getting eigh to work?
Other weird things that Ive noticed about this case: I can compute the eigenvalues using eigvals and eigvalsh, and can compute the eigenvals/vecs using eig(). The matrix is real symmetric, and Ive tested that its symmetric enough by forcibly symmetrizing it.
Thanks in advance for any help you can offer.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
-- Rick Muller rpmuller@gmail.com 505-750-7557
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
participants (3)
-
Charanpal Dhanjal
-
Paul Anton Letnes
-
Rick Muller