[R] R on Linux, and R on Windows , any difference in maturity+stability?

Duncan Murdoch murdoch at stats.uwo.ca
Tue Oct 6 20:20:04 CEST 2009


On 10/6/2009 1:43 PM, David M Smith wrote:
> On Tue, Oct 6, 2009 at 10:30 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>> When running a 32 bit program, 64 bit Windows hides most of itself outside
>> the address space visible to the program, so almost all of the 4 Gb address
>> space is available to the user.  But no more: no matter how much RAM you
>> install, it's not possible to address it using a 32 bit address.
> 
> That's true when running a 32-bit version of R under 64-bit Windows.
> But on the 64-bit version of REvolution R Enterprise for Windows, you
> can create objects much larger than 4Gb, for example:
> 
>> memory.limit(2e+9)
>> v<-double(1e+9) # 8GB vector
>> sum(v)
> [1] 0
> 
> The same is true of 64-bit versions of R on other platforms, too.

Yes, I was only talking about running 32 bit R.

64 bit R has another advantage on all platforms:  since we're still 
using such a small fraction of the whole 64 bit address space, 
fragmentation isn't such a problem as it is with 32 bits.

For those unfamiliar with the term:  fragmentation happens when you 
allocate things at particular addresses, limiting the size of future 
allocations to the space available above or below or between those 
allocations.  For the allocation David did, R needs a full 8Gb of memory 
at contiguous addresses.  The hardware can remap physical or virtual 
memory to any 64 bit address it likes (within some fairly relaxed 
limits), so that's not a problem in 64 bit R.  In 32 bit R, it means 
that a few small objects could easily cut your maximum allocation 
substantially. Pictorially,

-------X------X------X------X------X------

those 5 X objects have limited future allocations to at most 6 dashes in 
size.

Duncan Murdoch




More information about the R-help mailing list