[R] LCG with modulo 2^30
Sean O'Riordain
seanpor at acm.org
Sun Feb 29 07:17:23 CET 2004
Hi Raheem,
Firstly - fair warning...I'm not an R expert at all! However it is my
understanding that the expression "for i in 1:m" creates a full vector
in memory of all the consecutive numbers 1 to m... (i presume these are
4-byte ints here otherwise it would have fallen over before 2^29), but
taking the minimal assumption of ints these take 4 bytes... 1:2^29
requires (2^29)*4 bytes of memory - running on a 32-bit platform you
have an absolute maximum of about 2^32 bytes of addressable memory (some
memory will be taken by the os...).
if you start R and say "gc()" it'll tell you about memory allocated...
then try k<-c(1:2^24); gc() and you might get a response something like...
> gc()
used (Mb) gc trigger (Mb)
Ncells 208431 5.6 407500 10.9
Vcells 73157 0.6 786432 6.0
> k <- c(1:2^24)
> gc()
used (Mb) gc trigger (Mb)
Ncells 208431 5.6 407500 10.9
Vcells 8428997 64.4 17108043 130.6
if you REALLY want to interate to 2^32 without allocating a huge memory
vector like that try using your own counter and a while loop instead
which won't allocate more memory than you have - but this will likely be
SLOW... something along the lines of
i <- 0
while (i < 2^32) {
# now we do stuff
i <- i+1
}
i'm quite sure that there are more 'R-ish' ways of doing things...
btw. what are you trying to achieve?
Sean
Enayetur Raheem wrote:
>
> I can't run a function which generates random numbrers using linear
> congruential generator. My multiplier is a=5+8^6, increment is b=1 and
> modulo is m=2^30.
>
> the code I have written works for modulo upto m=2^28.
>
> For m= 2^29 , it says, can not allocate memory for the vector or
> something like that.
> For m= 2^31 or more, its says the argument "for i in 1:m " is too
> large in magnitude.
>
> I tried to increase the memory size but it did not work.
>
> Any help will be appreciated.
>
> Thanks.
> Raheem
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
More information about the R-help
mailing list