[Rd] Problems with Lapack's eigen() on 64-bit

Liaw, Andy andy_liaw at merck.com
Tue Jul 27 16:03:56 CEST 2004


On our Opteron with SLES8, the GCC 3.2 is only 32-bit, and does not support
the -mcpu=k8 flag.  I had to install GCC33 to get them.

Andy

> From: Roger D. Peng
> 
> On our AMD dual Opteron system running SuSE SLES 8 with
> 
> gcc version 3.2.2 (SuSE Linux)
> 
> and with R built with `./configure --without-blas' I get
> 
>  > eigen(cbind(1, 3:1, 1:3))
> $values
> [1]  5.000000e+00  1.000000e+00 -4.440892e-16
> 
> $vectors
>            [,1]       [,2]       [,3]
> [1,] 0.5773503 -0.8451543 -0.9428090
> [2,] 0.5773503 -0.1690309  0.2357023
> [3,] 0.5773503  0.5070926  0.2357023
> 
> -roger
> 
> Martin Maechler wrote:
> > I'm only now realizing that we have severe problems with R on our
> > AMD 'Opteron' and 'Athlon64' clients running Redhat Enterprise
> > with all 64-bit libraries (AFAICS).
> > 
> > The Lapack problem happens for R-patched and R-devel both on
> > the Opteron and the Athlon64.
> > 
> > Here are platform details:
> > 
> > o  "gcc -v" and "g77 -v" both end with the line
> >    gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-34)
> > 
> > o  I've used ...../configure --without-blas
> > 
> > 1) Opteron ("deb7", a dual-processor compute server):
> > 
> >   - uname -a :
> >     Linux deb7 2.4.21-9.0.3.ELsmp #1 SMP Tue Apr 20 
> 19:44:29 EDT 2004 x86_64 x86_64 x86_64 GNU/Linux
> >   - /proc/cpuinfo  contains (among much more)
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 5
> >     model name      : AMD Opteron(tm) Processor 248
> > 
> > 2) Athlon64 (a simple "new generation" client - to become 
> my desktop soon):
> >   
> >   - uname -a :
> >     Linux setup-12 2.4.21-15.0.2.EL #1 Wed Jun 16 22:41:44 EDT
> >     2004 x86_64 x86_64 x86_64 GNU/Linux 
> > 
> >   - /proc/cpuinfo  contains
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 14
> >     model name      : AMD Athlon(tm) 64 Processor 2800+
> > 
> > ----------------
> > 
> > Now the Lapack problem, easily seen from the base eigen()
> > example:
> > 
> >     > eigen(cbind(1, 3:1, 1:3))
> >     $values
> >     [1]  5.7015621  1.0000000 -0.7015621
> > 
> >     $vectors
> > 	      [,1]       [,2]       [,3]
> >     [1,] 0.4877939 -0.7181217 -0.9576161
> >     [2,] 0.6172751 -0.3893848  0.2036804
> >     [3,] 0.6172751  0.5767849  0.2036804
> > 
> > which is simply plainly wrong and  
> >     eigen(cbind(1, 3:1, 1:3), EISPACK=TRUE)
> > gives the correct eigen values c(5, 1, 0)  and corresponding
> > eigenvectors.
> > 
> > IIRC, we've already dealt with a Lapack problem, and that
> > workaround (built into R-devel's Makefiles) has been to use
> > -ffloat-store for the compilation of src/modules/lapack/dlamc.f
> > 
> > ----------
> > 
> > Thank you for hints / suggestions.
> > 
> > Others with 64-bit platforms might also try to see what
> >    eigen(cbind(1, 3:1, 1:3)) 
> > gives there.
> > 
> > Martin Maechler
> > 
> > ______________________________________________
> > R-devel at stat.math.ethz.ch mailing list
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-devel
> >
> 
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel
> 
>



More information about the R-devel mailing list