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

From: Martin Maechler <maechler_at_stat.math.ethz.ch>
Date: Wed 28 Jul 2004 - 18:18:10 EST

>>>>> "BDR" == Prof Brian Ripley <ripley@stats.ox.ac.uk> >>>>> on Tue, 27 Jul 2004 13:17:48 +0100 (BST) writes:

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

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

I've now hand-compiled gcc 3.4.1 and recompiled R-patched and R-devel both configured "--without-blas" and the eigen() problem is gone.

For the record, note that before the problem appeared both for "--with-blas=goto" and "--without-blas".

I've also added a regression test to R-devel which makes sure that "make check" only passes when the mentioned eigen() computation is correct.

Martin

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

    BDR> 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.

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

    BDR> ______________________________________________
    BDR> R-devel@stat.math.ethz.ch mailing list     BDR> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

R-devel@stat.math.ethz.ch mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-devel Received on Wed Jul 28 18:22:21 2004

This archive was generated by hypermail 2.1.8 : Wed 03 Nov 2004 - 22:45:04 EST