[R] R and ATLAS
Dirk Eddelbuettel
edd at debian.org
Thu May 27 13:03:06 CEST 2010
On 26 May 2010 at 20:29, Jonathan Greenberg wrote:
| Peter and Dirk:
|
| Thanks for the quick response -- I'm trying to get multiple CPU
| responses as Peter indicated should happen, but those R commands only
| illicit a single CPU response.
|
| When I check the libraries:
|
| ldd /usr/lib/R/bin/exec/R
| linux-vdso.so.1 => (0x00007fffd05ff000)
| libR.so => /usr/lib/R/lib/libR.so (0x00007f5f3b667000)
| libc.so.6 => /lib/libc.so.6 (0x00007f5f3b313000)
| libblas.so.3gf => /usr/lib/libblas.so.3gf (0x00007f5f3a7fe000)
| libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007f5f3a512000)
| libm.so.6 => /lib/libm.so.6 (0x00007f5f3a290000)
| libreadline.so.6 => /lib/libreadline.so.6 (0x00007f5f3a04b000)
| libpcre.so.3 => /lib/libpcre.so.3 (0x00007f5f39e1c000)
| libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007f5f39c0c000)
| libz.so.1 => /usr/lib/libz.so.1 (0x00007f5f399f4000)
| libdl.so.2 => /lib/libdl.so.2 (0x00007f5f397f0000)
| /lib64/ld-linux-x86-64.so.2 (0x00007f5f3bbec000)
| libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f5f395da000)
| libpthread.so.0 => /lib/libpthread.so.0 (0x00007f5f393bd000)
| libncurses.so.5 => /lib/libncurses.so.5 (0x00007f5f39177000)
|
| Following /usr/lib/libblas.so.3gf :
| ls -l /usr/lib/libblas.so.3gf
| /usr/lib/libblas.so.3gf -> /etc/alternatives/libblas.so.3gf
|
| And again following this:
| ls -l /etc/alternatives/libblas.so.3gf
| /etc/alternatives/libblas.so.3gf -> /usr/lib/atlas-base/atlas/libblas.so.3gf
|
| So it appears to be properly linked to Atlas. Note that I got this
| same response from both the binary install of r-base (apt-get install
| r-base) and the source build of r-base-dev (apt-get source -b
| r-base-dev). Also, I did a "tuned" install of ATLAS 3.8.3 using:
|
| apt-get source atlas -t unstable
| cd atlas-3.8.3
| DEFAULTS=n fakeroot debian/rules custom
|
| I did notice during the VERY long compilation that it seemed to
| correctly identify that I have 4 CPUs.
|
| Can someone confirm that the test:
|
| a = matrix(rnorm(5000*5000), 5000, 5000)
| b = matrix(rnorm(5000*5000), 5000, 5000)
| c = a%*%b
|
| Should illicit a multi-CPU response with R/ATLAS? If so, any
| suggestions on how to tweak my install to get it working? Thanks!
I suggest that you
a) talk to Sylvestre, the Atlas maintainer (CC'ed), as the last time I
checked I thought our Atlas 3.8.* package were configure to be
single-threaded so while you did the right thing with the local tuning,
you may have omitted another toggle to give you multi-threaded Atlas
b) look into Goto Blas from tacc.utexas.edu and/or Intel MKLs as well.
Lastly, my preferred test is
N <- someNumber
a <- matrix(rnorm(N*N), ncol=N)
n <- someOtherNumber
summary(replicate(n,system.time(crossprod(A))[3]))
:)
Dirk
| --j
|
| On Wed, May 26, 2010 at 3:17 PM, Peter Langfelder
| <peter.langfelder at gmail.com> wrote:
| > If you didn't specify an external BLAS when you ran R configure
| > script, you are not using ATLAS. If you're not sure and you still have
| > the output of the configure script, at the end it'll say whether it
| > uses an external BLAS.
| >
| > Alternatively, you may also want to generate two random 5000x5000
| > matrices and do their multiplication
| >
| > a = matrix(rnorm(5000*5000), 5000, 5000)
| > b = matrix(rnorm(5000*5000), 5000, 5000)
| > c = a%*%b
| >
| > While the calculation is running, in a separate terminal, run top and
| > watch how much CPU R takes. AFAIK standard installation of R is single
| > threaded and will only use one CPU (up to 100%). ATLAS is
| > multithreaded and (unless you configured it otherwise) it will use all
| > available processors, so if you have a 4-core machine, you will see
| > CPU usage of nearly 400%. Note though that this will not discriminate
| > ATLAS from other multi-threaded BLASes.
| >
| > HTH,
| >
| > Peter
| >
| >
| > On Wed, May 26, 2010 at 2:16 PM, Jonathan Greenberg
| > <greenberg at ucdavis.edu> wrote:
| >> Rhelpers:
| >>
| >> I recently installed the 64-bit version of R on my Debian system, and
| >> afterwards was asked if it was compiled using ATLAS. Is there a way
| >> to test to see if R is using ATLAS?
| >>
| >> --j
| >>
| >> ______________________________________________
| >> R-help at r-project.org mailing list
| >> https://stat.ethz.ch/mailman/listinfo/r-help
| >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
| >> and provide commented, minimal, self-contained, reproducible code.
| >>
| >
| > ______________________________________________
| > R-help at r-project.org mailing list
| > https://stat.ethz.ch/mailman/listinfo/r-help
| > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
| > and provide commented, minimal, self-contained, reproducible code.
| >
|
| ______________________________________________
| R-help at r-project.org mailing list
| https://stat.ethz.ch/mailman/listinfo/r-help
| PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
| and provide commented, minimal, self-contained, reproducible code.
--
Regards, Dirk
More information about the R-help
mailing list