From michael.m.spiegel at gmail.com  Sun Oct 31 17:41:24 2010
From: michael.m.spiegel at gmail.com (Michael Spiegel)
Date: Sun, 31 Oct 2010 12:41:24 -0400
Subject: [Rd] BLAS benchmarks on R 2.12.0
Message-ID: <AANLkTi=Er4FQYh-JO4eSA3PFefWdT6fuHr2S1ocwEe7t@mail.gmail.com>

Hi,

I saw on the mailing list and in the NEWS file that some unsafe math
transformations were disabled for the reference BLAS implementation
that is used in R.  We have a set of performance tests for the OpenMx
library, and some of the tests have a x3-10 slowdown in R 2.12.0
versus 2.11.1.  When I copy the shared library libRblas.0.dylib from
the 2.11.1 installation into the 2.12.0 installation, the slowdown
goes away.  It seems reasonable that BLAS should conform to IEEE
requirements.  For the purposes of our library, we are considering two
options but I need some advice on both choices:

1) Compile the reference BLAS implementation with unsafe optimizations
and include it as a part of the OpenMx library.  I can't seem to
reproduce the speed of the 2.11.1 reference BLAS library.  What
compiler, which version of the compiler, and what flags are used when
an R binary is distributed? My test machine is a Mac Pro, that may
change the answer.

2) Is there any support for adding a libRblas.unsafe.dylib shared
library in the R installation, much like libRblas.veclib.dylib is
currently included in OS X binaries? Then we could just change the
OpenMx shared library to use the unsafe library when we give it to
users.  We currently change the OpenMx shared library to use the
reference blas implementation, because it is faster than the veclib
implementation for small matrices.

Thank you!
--Michael


[Rd] BLAS benchmarks on R 2.12.0
Michael Spiegel