[R] Memory in R on windows running 64bit XP

Duncan Murdoch murdoch at stats.uwo.ca
Wed Sep 16 17:41:38 CEST 2009


On 9/16/2009 10:54 AM, michael watson (IAH-C) wrote:
> Hi Duncan
> 
> Many thanks for the reply.  Here are the results of the commands:
> 
>> Rprofmem() 
> Error in Rprofmem() : memory profiling is not available on this system
>> memory.size(NA)
> [1] 3500
>> memory.size() 
> [1] 16.19
> 
> 
> Clearly Rprofmem() is a dead end, though if there is some way of enabling it, I will be happy to.

I forgot that you need to recompile R to enable it.  Not impossible, but 
probably not worth the trouble just for this problem.  Using 
gcinfo(TRUE) may give you enough information:  it will report whenever 
there's a garbage collection.

> I am only actually using 16.19Mb of memory, as all I do is open R and read in some data (a 2.7Mb text file).

I would guess that mclust does a lot of other allocations before it fails.

> I am not sure how to guard against the memory fragmentation problem.  The machine has 16Gb of RAM and I am only running R and Internet Explorer, but I don't know if that helps.  Is there a way to deliver contiguous memory to R?

R doesn't give you any real control over that.  I would guess that R is 
getting 3.5 Gb in a contiguous chunk based on your memory.size report, 
but then it is fragmenting it.

> Is 64bit R available for Windows?  Sorry to bang on about Windows, I'm waiting for my IT department to build Linux machines, and this is what I have in the meantime.

Revolution Computing sells one.  There's no (reliable) 64 bit version of 
gcc for Windows, so we don't distribute one.

Duncan Murdoch

> 
> Thanks
> Mick
> 
> ________________________________________
> From: Duncan Murdoch [murdoch at stats.uwo.ca]
> Sent: 16 September 2009 15:43
> To: michael watson (IAH-C)
> Cc: r-help at r-project.org
> Subject: Re: [R] Memory in R on windows running 64bit XP
> 
> On 9/16/2009 10:16 AM, michael watson (IAH-C) wrote:
>> Hi
>> I'm running 32-bit R on Windows XP 64bit and the machine has 16Gb of RAM. The help for memory.limit states:
>>
>> If 32-bit R is run on some 64-bit versions of Windows the maximum value of obtainable memory is just under 4GB.
>>
>> So, using the help which states the size parameter can go up to 4095:
>>
>> memory.limit(size=4095)
>>
>> When I run mclust I get:
>>
>> Error: cannot allocate vector of size 1.3 Gb
>>
>> So, now I set the max-mem-size flag:
>>
>> --max-mem-size=3500M
>>
>> Repeat and I still get the same error:
>>
>> Error: cannot allocate vector of size 1.3 Gb
>>
>> So, can anyone help?  32 bit R is reported to be able to use up to 4Gb of RAM on 64 bit windows, yet mine croaks at 1.3Gb.
> 
> You are misreading things in a couple of places.  The most important one
> is the error message: it says allocation of a 1.3 Gb object failed.  You
> may have 4 Gb available in total, but have used so much of it already
> that Windows won't allocate a 1.3 Gb piece to R.  Using Rprofmem() might
> show how the allocations are happening.
> 
> Another possibility is that your particular version of Windows doesn't
> support giving 4 Gb to R.  Run memory.size(NA) to find out the limit,
> memory.size() to find out the current amount in use.
> 
> And even if the limit is close to 4 Gb and you have more than 1.3 Gb
> free, the allocation may fail because there is no sufficiently large
> contiguous block available.  Once memory is allocated, that address is
> in use and is unavailable.  Since the 32 bit address space only covers 4
> Gb, you can fairly easily end up with allocations that are spread out
> across it leaving no large blocks available.  That's the advantage of
> switching to 64 bit R:  even if you still only had 4 Gb of memory
> available, the address space is so much bigger that fragmentation
> probably won't be a problem.
> 
> Duncan Murdoch
> 
>>
>>> sessionInfo()
>> R version 2.9.2 (2009-08-24)
>> i386-pc-mingw32
>> locale:
>> LC_COLLATE=English_United Kingdom.1252;LC_CTYPE=English_United Kingdom.1252;LC_MONETARY=English_United Kingdom.1252;LC_NUMERIC=C;LC_TIME=English_United Kingdom.1252
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>> other attached packages:
>> [1] mclust_3.3.1
>>
>> Thanks
>> Mick
>>
>> ______________________________________________
>> R-help at 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.




More information about the R-help mailing list