Skip to content

revolution mkl with R 3.01 on Ubuntu 13.04

6 messages · Dirk Eddelbuettel, Elizabeth Tighe, Michael Rutter

#
So I have two Dell power-edge machines running latest Ubuntu (13.04) 
with latest version of R (3.01).  I installed revolution-mkl on one 
machine (T-410) and it works fine.  On the second machine (T-620), it 
says the latest version of revolution-mkl is installed, but I'm getting 
no multi-processor functioning (R-benchmark-25.R) runs on a single 
processor and takes same amount of time before and after installing.

Both machines I've installed using simple sudo apt-get install r-base 
r-base-dev and same for revolution-mkl

Anyone have any tips for debugging, figuring out why it's not working on 
the second machine?  Is there a way to get R to find the mkl libraries 
without reinstalling from scratch from source code?

Any insights anyone out there might have would be appreciated!

Thanks,
Liz
#
On 18 July 2013 at 18:03, Elizabeth Tighe wrote:
| 
| So I have two Dell power-edge machines running latest Ubuntu (13.04) 
| with latest version of R (3.01).  I installed revolution-mkl on one 
| machine (T-410) and it works fine.  On the second machine (T-620), it 
| says the latest version of revolution-mkl is installed, but I'm getting 
| no multi-processor functioning (R-benchmark-25.R) runs on a single 
| processor and takes same amount of time before and after installing.
| 
| Both machines I've installed using simple sudo apt-get install r-base 
| r-base-dev and same for revolution-mkl

The revo-mkl package is stale. It was a one-off; its 'closed source but
freely distributed' annoyed a lot of people, and Revo no longer cares about
Ubuntu (or Debian).
 
| Anyone have any tips for debugging, figuring out why it's not working on 
| the second machine?  Is there a way to get R to find the mkl libraries 
| without reinstalling from scratch from source code?
| 
| Any insights anyone out there might have would be appreciated!

Just install libopenblas-dev --- it is also multithreaded, but open source
and under development (as a successor to the not-really-open-source GotoBLAS).

Dirk
#
Dirk,  That worked! Sort of.  It's gone from running processes on one 
processor to two processors and Rbenchmark ran in 64 seconds rather than 
178.  Is there a way to get it to use more than 2 processors when it 
can?  (revo mkl used all available processors by default).

many thanks!
Liz
On 7/18/2013 8:36 PM, Dirk Eddelbuettel wrote:
#
On 18 July 2013 at 22:14, Elizabeth Tighe wrote:
| 
| Dirk,  That worked! Sort of.  It's gone from running processes on one 
| processor to two processors and Rbenchmark ran in 64 seconds rather than 
| 178.  Is there a way to get it to use more than 2 processors when it 
| can?  (revo mkl used all available processors by default).

That is by R's "design choice" as the parallel package sets the default to
two.  See help(options), and/or the vignette for r-sig-hpc.

There have been helpful discussion over on r-sig-hpc over the months; you
probably want to lurk on that list / google-search its archives.

Dirk
#
On 18 July 2013 at 21:33, Dirk Eddelbuettel wrote:
| That is by R's "design choice" as the parallel package sets the default to
| two.  See help(options), and/or the vignette for r-sig-hpc.

Sorry, I meant: "vignette for package parallel" -- that vignette is a good
read anyway.

And help(options) yields:

  Options set in package parallel:

     These will be set when package ?parallel? (or its namespace) is
     loaded if not already set.

     ?mc.cores?: a integer giving the maximum allowed number of
          _additional_ R processes allowed to be run in parallel to the
          current R process.  Defaults to the setting of the
          environment variable ?MC_CORES? if set.  Most applications
          which use this assume a limit of ?2? if it is unset.

For OpenBLAS, see eg under 'Usage' at the bottom of 

   https://github.com/xianyi/OpenBLAS

It has been a while since I looked into this, but as I recall the option set
by R is respected one one possible option by OpenBLAS, which is why you end
up with 2 unless you set the number explicitly.

Dirk
 
| There have been helpful discussion over on r-sig-hpc over the months; you
| probably want to lurk on that list / google-search its archives.
| 
| Dirk
| 
| -- 
| Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
2 days later
#
On 07/18/2013 10:33 PM, Dirk Eddelbuettel wrote:
I am a little late to this thread, but I have an update.  Many moons 
ago, I filed a bug/request to get the openblas package to run on more 
than two threads.  Every once in a while, I would get an update to that 
request, and finally the said the had fixed that issue.  I added this to 
my "to do" pile, and I have finally gotten around to testing it.

And the good news is that it works.  If you go to my RDev PPA 
(https://launchpad.net/~marutter/+archive/rdev), you will find the 
latest version of Ubuntu's obenblas package backported to Raring, 
Quantal, and Precise.  You will also find updated versions of atlas and 
blas, as the new version of openblas breaks R if those are not installed 
as well.  I think Raring is fine, but Quantal and Precise need at least 
one installed.

If you install the libopenblas-base pacakge, it should work right out of 
the box.  On my quad core machine, it ran 4 threads without having to do 
anything besides installing the package.  R-benchmark-25.R went from 
20.1 to 16.6 seconds, but all cores were being used for the Matrix 
function part of the test.

Hope this helps,
Michael