[R-SIG-Mac] BLAS benchmarks on R 2.12.0

Michael Spiegel michael.m.spiegel at gmail.com
Wed Nov 3 00:07:38 CET 2010


I would like to apologize for cross-posting this message.  But I
realized that one of my questions may be more appropriate for the
SIG-Mac mailing list rather than the R-devel mailing list.  You may
wish to ignore the other parts of the email.  My question is the
following:

"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 [OS X] R binary is distributed? My test machine is a
Mac Pro, so 32-bit x86 architecture."


---------- Forwarded message ----------
From: Michael Spiegel <michael.m.spiegel at gmail.com>
Date: Sun, Oct 31, 2010 at 12:41 PM
Subject: BLAS benchmarks on R 2.12.0
To: r-devel at stat.math.ethz.ch
Cc: OpenMx Developers <openmx-developers at list.mail.virginia.edu>


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nightly-R2.11.1-gcc4.2.results
Type: application/octet-stream
Size: 4910 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-mac/attachments/20101102/ee2737e7/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nightly-R2.12.0-gcc4.2.results
Type: application/octet-stream
Size: 5789 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-mac/attachments/20101102/ee2737e7/attachment-0001.obj>


More information about the R-SIG-Mac mailing list