[R] R and ATLAS

Jonathan Greenberg greenberg at ucdavis.edu
Thu May 27 05:29:12 CEST 2010


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!

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



More information about the R-help mailing list