[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