[R] 64 bit version for linux and build huge matrix
Marc Schwartz
marc_schwartz at me.com
Thu Mar 15 21:37:25 CET 2012
On Mar 15, 2012, at 3:19 PM, Rich Shepard wrote:
> On Fri, 16 Mar 2012, Shengyun Peng wrote:
>
>> I downloaded R from http://cran.cnr.berkeley.edu/, with the linux version.
>> But after compile, I don't know how to start 64 bit R, as there is only
>> one R executable under bin folder, not alike windows version which have
>> two executables.
Windows and OSX pre-compiled binaries on CRAN are built with both 32 bit and 64 bit executables. Building from source will typically default to your system architecture.
> If your system has a 64-bit version of the distribution installed then
> that's how applications are built. You start it by typing 'R' (without the
> quotes) on the command line. Linux is not Microsoft.
To verify, use:
.Machine$sizeof.pointer
If it comes back with 8, you are running 64 bit R.
>> Other than that, I want to build a matrix 65536 rows by 65536 columns, but
>> the system tells me: Error in matrix(0, 65536, 65536) : too many elements
>> specified. So, I want to know if there's anything I can do to achieve that
>> and that's one reason I need 64 bit R.
>
> How much memory do you have installed?
>
> Rich
That won't matter here. R uses signed 32 bit signed integers for indexing and a matrix, more generally an array, is essentially a vector with dimensions. Thus, you can only have (2^31) - 1 elements in a vector/matrix/array and 64k^2 is larger than that...It is the case whether you are running 32 bit or 64 bit R.
> (65536 * 65536) < (2 ^ 31) - 1
[1] FALSE
There are others here with hands-on experience that can comment, but a starting place to look for potential solutions would be the High Performance Computing Task View (http://cran.r-project.org/web/views/HighPerformanceComputing.html) under "Large memory and out-of-memory data".
HTH,
Marc Schwartz
More information about the R-help
mailing list