From ripley at stats.ox.ac.uk  Thu Oct 13 13:28:21 2005
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu, 13 Oct 2005 12:28:21 +0100 (BST)
Subject: [Rd] R, Wine, and multi-threadedness.
In-Reply-To: <434E321B.3040603@cimr.cam.ac.uk>
References: <434E321B.3040603@cimr.cam.ac.uk>
Message-ID: <Pine.LNX.4.61.0510131158100.4655@gannet.stats>

On Thu, 13 Oct 2005, Hin-Tak Leung wrote:

> I managed to install Win32 R 2.2.0 with the CRAN Innosetup
> installer under Wine on x86 linux a few days ago. However, on trying
> to run it, MSVCP60.DLL is missing. So here is a sort of a bug
> report, and a couple of questions:

This is a sort of bug report on your report.  The rw-FAQ makes clear that 
DLL is _only_ required by R if you select East Asian support, and that is 
not the default.  It seems you chose a non-default option.  Please go back 
and reinstall R without East Asian support.

> (1) I think the R binary in the CRAN Innosetup installer was built with
> mingw. The R-windows FAQ did mention that this DLL is required *for
> Chinese/Japanese/Korean* (which I wasn't trying to do). In this
> circumstance, it isn't particularly legal to copy the dll from
> elsewhere. So I would suggest enhancing R-windows FAQ and even the main
> R FAQ for this...

For what?  As far as we know the rw-FAQ is accurate about all the 
dependencies.

(Note that all current and recently obselete versions of Windows do have 
it, so its absence is a problem of Wine, not for Windows users of R.)

> also, is it possible *not* to have this dependency,
> or have it runtime-determined (i.e. try to load the dll dynamically,
> and fall back to US/ascii only when unsuccessful)?

The MinGW project assumes a tolerably recent version of Windows (from 2000 
or later).

It would be tricky to have MSVCP60.dll loaded and linked on demand, but 
not impossible (and it was considered not to be a worthwile use of the 
core group's time).  We look forwards to your contributing code to do so 
if you think it is worthwhile.

> (2) The interesting question: As I understand it (could be wrong),
> R Win32 is (partly) multi-threaded, and the native linux R is not.
> Is is possible to have better performance or CPU utilisation
> on multi-CPU systems running Win32 R under Wine rather than natively?
> At least on certain specific application areas?

Rterm.exe is multithreaded, but the second thread is only used for input. 
RGui.exe is singlethreaded.  As R for Windows uses a DLL it is about the 
same speed (running Windows natively on the same hardware) as R under ix86 
Linux using a shared library, and that is appreciably slower than R under 
ix86 Linux without (see the R-admin manual).  R under Linux can make use 
of a multithreaded BLAS, but I know of none available for Windows.

-- 
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] R, Wine, and multi-threadedness.
Prof Brian Ripley