From pauljohn32 at gmail.com  Mon Dec 27 04:34:51 2010
From: pauljohn32 at gmail.com (Paul Johnson)
Date: Sun, 26 Dec 2010 21:34:51 -0600
Subject: [Rd] 'libRblas.so' missing in R 2.12.1
In-Reply-To: <4D0A149B.7090901@klinik.uni-regensburg.de>
References: <4D0A149B.7090901@klinik.uni-regensburg.de>
Message-ID: <AANLkTimmiOw+mj=wdEHwOHV_kXS3pPbyuV4vvrchj6Df@mail.gmail.com>

On Thu, Dec 16, 2010 at 7:31 AM, Christian Kohler
<christian.kohler at klinik.uni-regensburg.de> wrote:
> Dear R developers,
>
> I just compiled the latest version of R (2.12.1) and noticed that 'libRblas.so' is missing in the '/x86_64/src/extra/blas' subdirectory of my
> R-installation.
>
> Did I miss ongoing discussions on the Mailinglist about this or might it be a local problem?
>
> Christian Kohler

Hi, Christian:

Did  you get an answer? I'm guessing you asked because you want to
follow along with the optimization advice in the R Install Guide,
section "A.3.1.5 Shared BLAS"

I've asked the same thing myself.  Depending on the configure options
you specified, libRblas may be built as a shared library or R may be
linked against an external blas.   There seems to be some tension and
the experts will give you differing advice about whether R should be a
shared library and whether you should allow libRblas.so to be built.
The Install manual says that a non-shared library will load more
quickly, but, of course, if the blas is built into R itself, then you
can't play games pointing the symbolic link to other shared library
implementations.

If you have access to a Ubuntu system, you will notice there is no
libRblas.so supplied in the packages they provide.  They are pointing
to a shared library blas from the intel kernel math library.

The last time I looked, that was configured like this:

      ./configure --prefix=/usr                       \
                   --with-cairo                        \
                   --with-jpeglib                      \
                   --with-pango                        \
                   --with-png                          \
                   --with-readline                     \
                   --with-tcltk                        \
                   --with-system-bzlib                 \
                   --with-system-pcre                  \
                   --with-system-zlib                  \
                   --mandir=/usr/share/man             \
                   --infodir=/usr/share/info           \
                   --datadir=/usr/share/R/share        \
                   --includedir=/usr/share/R/include   \
                   $(atlas)            \
                   $(lapack)           \
                   --without-gnome                     \
                   --enable-R-profiling                \
                   --enable-R-shlib                    \
                   --enable-memory-profiling           \
                   --without-recommended-packages      \
                   --build $(buildarch)

$(atlas) draws its value from the rules file

atlas           = --with-blas

Similarly, $(lapack)

lapack          = --with-lapack


If you want to get libRblas.so out, you need to remove the atlas and
lapack lines. Also, watch out for this configure option:

--disable-BLAS-shlib.

If you take out the atlas/lapack statements, you get libRblas.so, and
then you can follow along with R install manual to replace that with a
link to one of the optimized blas libraries.

However, my experience, and that of at least one other person, is that
the speedup you will observe from that is not too substantial.

http://www.cybaea.net/Blogs/Data/Faster-R-through-better-BLAS.html


-- 
Paul E. Johnson
Professor, Political Science
1541 Lilac Lane, Room 504
University of Kansas



[Rd] 'libRblas.so' missing in R 2.12.1
Paul Johnson