From ripley at stats.ox.ac.uk  Tue Jul 10 08:02:50 2007
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 10 Jul 2007 07:02:50 +0100 (BST)
Subject: [Rd] BLAS / LAPACK version information from within R-session?
In-Reply-To: <46923101.4020608@uni-bayreuth.de>
References: <46923101.4020608@uni-bayreuth.de>
Message-ID: <Pine.LNX.4.64.0707091405370.19965@gannet.stats.ox.ac.uk>

AFAIK all platforms by default work the same: they use dynamic libraries 
for BLAS and LAPACK, and these may well be symbolic links.  I know of no 
way to ask a BLAS dynamic library what version it is.

On Mon, 9 Jul 2007, Peter Ruckdeschel wrote:

> Hi,
>
> for diagnostic purposes, I would like to get information about
> the BLAS / LAPACK linked against R from within an R-session.
>
> An obvious application could be safety-checks for packages like
> Matrix and quantreg at load / attach - time.

Why should that be needed?  Those packages assume they are talking to 
working dynamic libraries, and there is no way to check that a particular 
library works (it might work when compiled under gcc 4.1.2 and not under 
4.2.0, to take a non-random example).

> Also you could be more precise on the "framework" in which R
> is running for comparable benchmark timings on different systems.
>
> Perhaps this information may even be included into the output
> of R.Version() :-) ?

I can think of more worthy candidates, e.g. the compilers used to build R, 
and for Linux something more precise about the distro used.  Remember that 
for most R users the BLAS/LAPACK speed is not very important: it 
only matters where linear algebra dominates the computations.  If I run R 
CMD check over CRAN with an optimized BLAS the speedup is barely 
noticeable (but I do get more failures).

> So my question:
>
>    Is this possible/reasonable at all?
>
> My impression is that it is not trivial, as you may ---at least
> on Win32--- even replace the standard Rblas.dll by some of the
> "better" Rblas.dll 's available on
>
>  http://cran.at.r-project.org/bin/windows/contrib/ATLAS/
>
> without telling R in any way before launching R.
>
>
> In the (Win32) case I imagine you could read out the
>
>      StringFileInfo
>
> of the Rblas.dll being used --- which, for the time
> being, however, does not yet contain information on
> the BLAS version. But a (mid term) solution could be:
>
> (1) For building Rblas.dll from source, extend
>
>    src/gnuwin/dllversion.rc
>
> from the standard R tar-ball to a new ressource file, say,
>
> src/gnuwin/blasdllversion.rc
>
> including version information on BLAS/LAPACK which is then
> used for building Rblas.dll.
>
> (2) Successively replace files from
>
>  http://cran.at.r-project.org/bin/windows/contrib/ATLAS/
>
> by ones built against blasdllversion.rc
>
>
>
> Unfortunately, I have no idea whether/how you could use information
> similar to StringFileInfo in other OS's ...
>
> Any suggestions appreciated.
>
> Best,
> Peter Ruckdeschel
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

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



[Rd] BLAS / LAPACK version information from within R-session?
Prof Brian Ripley