Hi all, I've only now noticed that on our Opteron boxes running Suse Enterprise Server 8 that R-2.0.1 did not pass make chek-all. It bombed in tests/lapack.R at:> eigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) {V <- E$vect lam <- E$values stopifnot(abs(A %*% V - V %*% diag(lam)) < Eps, .... [TRUNCATED]> Ceigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) {V <- E$vect lam <- E$values stopifnot(Mod(A %*% V - V %*% diag(lam)) < Eps, .... [TRUNCATED]> sm <- cbind(1, 3:1, 1:3)> eigenok(sm, eigen(sm))Error: abs(A %*% V - V %*% diag(lam)) < Eps is not TRUE This is using: ~/R-2.0.1> gcc -v Reading specs from /opt/gcc33/lib64/gcc-lib/x86_64-suse-linux/3.3/specs Configured with: ../configure --enable-threads=posix --prefix=/opt/gcc33 --with-local-prefix=/usr/local --infodir=/opt/gcc33/share/info --mandir=/opt/gcc33/share/man --libdir=/opt/gcc33/lib64 --enable-languages=c,c++,f77,objc,java,ada --disable-checking --enable-libgcj --with-gxx-include-dir=/opt/gcc33/include/g++ --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux Thread model: posix gcc version 3.3 20030312 (prerelease) (SuSE Linux) compiled with the following setting: R is now configured for x86_64-unknown-linux-gnu Source directory: . Installation directory: /usr/local C compiler: gcc -g -O2 C++ compiler: g++ -g -O2 Fortran compiler: g77 -g -O2 Interfaces supported: X11, tcltk External libraries: readline Additional capabilities: PNG, JPEG Options enabled: R profiling Recommended packages: yes Actually, I've only noticed this when the samething happens on a RH-based box (same hardware), using: $ gcc -v Reading specs from /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++,objc,java,f77 --host=x86_64-redhat-linux Thread model: posix gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-24) I'd very much appreciate any pointers! Best, Andy Andy Liaw, PhD Biometrics Research PO Box 2000, RY33-300 Merck Research Labs Rahway, NJ 07065 andy_liaw <at> merck.com 732-594-0820
Martin Maechler brought this up a while back (and added the regression test). I believe it was a compiler problem and upgrading to gcc 3.4.1 fixed it. See the thread starting here: https://stat.ethz.ch/pipermail/r-devel/2004-July/030260.html -roger Liaw, Andy wrote:> Hi all, > > I've only now noticed that on our Opteron boxes running Suse Enterprise > Server 8 that R-2.0.1 did not pass make chek-all. It bombed in > tests/lapack.R at: > > >>eigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) { > > V <- E$vect > lam <- E$values > stopifnot(abs(A %*% V - V %*% diag(lam)) < Eps, .... [TRUNCATED] > > >>Ceigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) { > > V <- E$vect > lam <- E$values > stopifnot(Mod(A %*% V - V %*% diag(lam)) < Eps, .... [TRUNCATED] > > >>sm <- cbind(1, 3:1, 1:3) > > >>eigenok(sm, eigen(sm)) > > Error: abs(A %*% V - V %*% diag(lam)) < Eps is not TRUE > > This is using: > ~/R-2.0.1> gcc -v > Reading specs from /opt/gcc33/lib64/gcc-lib/x86_64-suse-linux/3.3/specs > Configured with: ../configure --enable-threads=posix --prefix=/opt/gcc33 > --with-local-prefix=/usr/local --infodir=/opt/gcc33/share/info > --mandir=/opt/gcc33/share/man --libdir=/opt/gcc33/lib64 > --enable-languages=c,c++,f77,objc,java,ada --disable-checking > --enable-libgcj --with-gxx-include-dir=/opt/gcc33/include/g++ > --with-slibdir=/lib64 --with-system-zlib --enable-shared > --enable-__cxa_atexit x86_64-suse-linux > Thread model: posix > gcc version 3.3 20030312 (prerelease) (SuSE Linux) > > compiled with the following setting: > > R is now configured for x86_64-unknown-linux-gnu > > Source directory: . > Installation directory: /usr/local > > C compiler: gcc -g -O2 > C++ compiler: g++ -g -O2 > Fortran compiler: g77 -g -O2 > > Interfaces supported: X11, tcltk > External libraries: readline > Additional capabilities: PNG, JPEG > Options enabled: R profiling > > Recommended packages: yes > > Actually, I've only noticed this when the samething happens on a RH-based > box (same hardware), using: > $ gcc -v > Reading specs from /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/specs > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man > --infodir=/usr/share/info --enable-shared --enable-threads=posix > --disable-checking --with-system-zlib --enable-__cxa_atexit > --enable-languages=c,c++,objc,java,f77 --host=x86_64-redhat-linux > Thread model: posix > gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-24) > > I'd very much appreciate any pointers! > > Best, > Andy > > > Andy Liaw, PhD > Biometrics Research PO Box 2000, RY33-300 > Merck Research Labs Rahway, NJ 07065 > andy_liaw <at> merck.com 732-594-0820 > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >-- Roger D. Peng http://www.biostat.jhsph.edu/~rpeng/
"Liaw, Andy" <andy_liaw at merck.com> writes:> Hi all, > > I've only now noticed that on our Opteron boxes running Suse Enterprise > Server 8 that R-2.0.1 did not pass make chek-all. It bombed in > tests/lapack.R at: > > > eigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) { > V <- E$vect > lam <- E$values > stopifnot(abs(A %*% V - V %*% diag(lam)) < Eps, .... [TRUNCATED] > > > Ceigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) { > V <- E$vect > lam <- E$values > stopifnot(Mod(A %*% V - V %*% diag(lam)) < Eps, .... [TRUNCATED] > > > sm <- cbind(1, 3:1, 1:3) > > > eigenok(sm, eigen(sm)) > Error: abs(A %*% V - V %*% diag(lam)) < Eps is not TRUE > > This is using: > ~/R-2.0.1> gcc -v > Reading specs from /opt/gcc33/lib64/gcc-lib/x86_64-suse-linux/3.3/specs > Configured with: ../configure --enable-threads=posix --prefix=/opt/gcc33 > --with-local-prefix=/usr/local --infodir=/opt/gcc33/share/info > --mandir=/opt/gcc33/share/man --libdir=/opt/gcc33/lib64 > --enable-languages=c,c++,f77,objc,java,ada --disable-checking > --enable-libgcj --with-gxx-include-dir=/opt/gcc33/include/g++ > --with-slibdir=/lib64 --with-system-zlib --enable-shared > --enable-__cxa_atexit x86_64-suse-linux > Thread model: posix > gcc version 3.3 20030312 (prerelease) (SuSE Linux) > > compiled with the following setting: > > R is now configured for x86_64-unknown-linux-gnu > > Source directory: . > Installation directory: /usr/local > > C compiler: gcc -g -O2 > C++ compiler: g++ -g -O2 > Fortran compiler: g77 -g -O2 > > Interfaces supported: X11, tcltk > External libraries: readline > Additional capabilities: PNG, JPEG > Options enabled: R profiling > > Recommended packages: yes > > Actually, I've only noticed this when the samething happens on a RH-based > box (same hardware), using: > $ gcc -v > Reading specs from /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/specs > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man > --infodir=/usr/share/info --enable-shared --enable-threads=posix > --disable-checking --with-system-zlib --enable-__cxa_atexit > --enable-languages=c,c++,objc,java,f77 --host=x86_64-redhat-linux > Thread model: posix > gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-24) > > I'd very much appreciate any pointers!Hmm. Not the first time we see eigen() in that role... First thing to check is of course whether it is a case of "Eps too low" or true miscomputation. For the record, it is not happening for me with SuSE 9.1 on Opteron:> sm <- cbind(1, 3:1, 1:3) > A <- sm > E <- eigen(sm) > V <- E$vect > lam <- E$values > abs(A %*% V - V %*% diag(lam))[,1] [,2] [,3] [1,] 0.000000e+00 1.110223e-16 3.354246e-16 [2,] 2.220446e-15 8.326673e-17 2.712063e-16 [3,] 8.881784e-16 0.000000e+00 3.267174e-16> .Machine$double.eps[1] 2.220446e-16 pd at linux:~> gcc -v Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/specs Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib64 --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux Thread model: posix gcc version 3.3.3 (SuSE Linux) Compile settings similar to yours, except that I have -O3. -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
Thanks for reminding me of that thread, Roger. I've forgotten all about it... Strangely, several people reported no problem with optimized BLAS, but I tried linking against the latest version (0.96, threaded), and got the same failure. I will try to see if I can upgrade GCC. Best, Andy> From: Roger D. Peng > > Martin Maechler brought this up a while back (and added the > regression > test). I believe it was a compiler problem and upgrading to > gcc 3.4.1 > fixed it. > > See the thread starting here: > > https://stat.ethz.ch/pipermail/r-devel/2004-July/030260.html > > -roger > > Liaw, Andy wrote: > > Hi all, > > > > I've only now noticed that on our Opteron boxes running > Suse Enterprise > > Server 8 that R-2.0.1 did not pass make chek-all. It bombed in > > tests/lapack.R at: > > > > > >>eigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) { > > > > V <- E$vect > > lam <- E$values > > stopifnot(abs(A %*% V - V %*% diag(lam)) < Eps, .... > [TRUNCATED] > > > > > >>Ceigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) { > > > > V <- E$vect > > lam <- E$values > > stopifnot(Mod(A %*% V - V %*% diag(lam)) < Eps, .... > [TRUNCATED] > > > > > >>sm <- cbind(1, 3:1, 1:3) > > > > > >>eigenok(sm, eigen(sm)) > > > > Error: abs(A %*% V - V %*% diag(lam)) < Eps is not TRUE > > > > This is using: > > ~/R-2.0.1> gcc -v > > Reading specs from > /opt/gcc33/lib64/gcc-lib/x86_64-suse-linux/3.3/specs > > Configured with: ../configure --enable-threads=posix > --prefix=/opt/gcc33 > > --with-local-prefix=/usr/local --infodir=/opt/gcc33/share/info > > --mandir=/opt/gcc33/share/man --libdir=/opt/gcc33/lib64 > > --enable-languages=c,c++,f77,objc,java,ada --disable-checking > > --enable-libgcj --with-gxx-include-dir=/opt/gcc33/include/g++ > > --with-slibdir=/lib64 --with-system-zlib --enable-shared > > --enable-__cxa_atexit x86_64-suse-linux > > Thread model: posix > > gcc version 3.3 20030312 (prerelease) (SuSE Linux) > > > > compiled with the following setting: > > > > R is now configured for x86_64-unknown-linux-gnu > > > > Source directory: . > > Installation directory: /usr/local > > > > C compiler: gcc -g -O2 > > C++ compiler: g++ -g -O2 > > Fortran compiler: g77 -g -O2 > > > > Interfaces supported: X11, tcltk > > External libraries: readline > > Additional capabilities: PNG, JPEG > > Options enabled: R profiling > > > > Recommended packages: yes > > > > Actually, I've only noticed this when the samething happens > on a RH-based > > box (same hardware), using: > > $ gcc -v > > Reading specs from /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/specs > > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man > > --infodir=/usr/share/info --enable-shared --enable-threads=posix > > --disable-checking --with-system-zlib --enable-__cxa_atexit > > --enable-languages=c,c++,objc,java,f77 --host=x86_64-redhat-linux > > Thread model: posix > > gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-24) > > > > I'd very much appreciate any pointers! > > > > Best, > > Andy > > > > > > Andy Liaw, PhD > > Biometrics Research PO Box 2000, RY33-300 > > Merck Research Labs Rahway, NJ 07065 > > andy_liaw <at> merck.com 732-594-0820 > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > > > -- > Roger D. > Peng > http://www.biostat.jhsph.edu/~rpeng/ > >