[Rd] forwarded message from Dirk Eddelbuettel <edd@debian.org>

Douglas Bates bates@stat.wisc.edu
09 Feb 2000 09:23:21 -0600

Dirk's mail to r-devel bounced because of his peculiar return
address.  He asked me to forward this for him.

P.S. I have tried building R with atlas2 on a Debian GNU/Linux 2.2
system but I have not yet managed to out-fox the configure script to
get it to use the desired shared object library.
Douglas Bates                            bates@stat.wisc.edu
Statistics Department                    608/262-2598
University of Wisconsin - Madison        http://www.stat.wisc.edu/~bates/
------- Start of forwarded message -------
Date: Wed,  9 Feb 2000 08:52:01 -0500 (EST)
To: r-devel@lists.r-project.org
Subject: Atlas 
From: Dirk Eddelbuettel <edd@debian.org>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="KtpR20HXM2"
Content-Transfer-Encoding: 7bit

Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Congrats on getting 0.99 out, and on the rapid convergence towards 1.0.
Attached below is the latest email in a very interesting thread about
building GNU Octave with the 'Atlas' (Automatically Tuned Linear Algebra
Software) libraries that are drop-in replacements for (parts of) Lapack and
the Blas. Speed increases of up to 10 have been reported for simple matrix
multiplication (this is over Lapack/Blas used by Octave).  You can find the
whole thread at http://www.che.wisc.edu/octave/mailing-lists/help-octave/2000/ 

Regards, Dirk

Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit

From: "John W. Eaton" <jwe@bevo.che.wisc.edu>
To: R Clint Whaley <rwhaley@cs.utk.edu>
cc: help-octave@bevo.che.wisc.edu
Subject: Re: ATLAS and octave
Date: Wed, 9 Feb 2000 03:05:13 -0600 (CST)

Here is all I did to build a copy of Octave that uses ATLAS:

  1. build ATLAS

  2. merge all four of the libraries that the ATLAS build creates into
     a single libatlas.a and install it in /some/dir.

  3. relink Octave by running

       make SPECIAL_MATH_LIB=/some/dir/libatlas.a

That seems to be all that is needed.

Would it be possible to modify the ATLAS makefiles to just build a
libatlas.a?  Then Octave could simply have

  AC_CHECK_LIB(atlas, ATL_xerbla)

in the configure script, and set SPECIAL_MATH_LIB accordingly.

Things might get a little more complicated for shared libraries.  Some
systems seem to barf when multiple shared libraries define the same
symbol.  But it would probably be possible to solve that, either by
doing whatever is necesary to tell the dynamic linker not to barf, or
by omitting the duplicate symbols from libcruft.

BTW, I see the following speedup on my system (266MHz Pentium II):

  octave:1> a = rand (1000); b = rand (1000); 
  octave:2> t = cputime (); a * b; cputime () - t

  without ATLAS:  94.4 seconds
  with ATLAS:     10.5 seconds




Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.che.wisc.edu/octave/octave.html
How to fund new projects:  http://www.che.wisc.edu/octave/funding.html
Subscription information:  http://www.che.wisc.edu/octave/archive.html

------- End of forwarded message -------
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch