On 10/6/2009 1:43 PM, David M Smith wrote:
On Tue, Oct 6, 2009 at 10:30 AM, Duncan Murdoch <murd...@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
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.