From ripley at stats.ox.ac.uk  Tue Jul 27 14:17:48 2004
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue Jul 27 14:17:50 2004
Subject: [Rd] Problems with Lapack's eigen() on 64-bit
In-Reply-To: <16646.13212.240890.26590@gargle.gargle.HOWL>
Message-ID: <Pine.LNX.4.44.0407271155110.24352-100000@gannet.stats>

Our `public' Opteron (dual 248, FC2 + Goto BLAS) is right, as is Solaris
64-bit. FC2 is using gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7), 
quite a lot later.

I would try updating your compiler (to 3.4.1?) and perhaps try a different 
BLAS.

We do have RHEL for Opteron, but AFAIK it is not on a system at present.
(There are others running SuSE 9.0/.1, I believe.)

On Tue, 27 Jul 2004, 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.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


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