I would like to initialize a matrix using the j function thus A=j(20000,20000) but I get the following error:
ERROR: (execution) Unable to allocate sufficient memory. At least 2147483647 more bytes required.
I have 4GB RAM on a PC running Windows 7, I tried it in SAS 9,2 and 9,3 to no avail. How can I initialize vector A for large values of the rows and columns? How far does IML go in this regard?
Many thanks in advance,
George
A 20000 x 20000 matrix has 4x10^8 elements. Each element is a double, which requires 8 bytes, for a total of roughly 3.2GB. The current version of SAS/IML software supports matrices up to 2BG of addressable space. For 32-bit operating systems, this is the maximum size of memory that the OS allows you to allocate in a single chunk.
A 20000 x 20000 matrix has 4x10^8 elements. Each element is a double, which requires 8 bytes, for a total of roughly 3.2GB. The current version of SAS/IML software supports matrices up to 2BG of addressable space. For 32-bit operating systems, this is the maximum size of memory that the OS allows you to allocate in a single chunk.
Thanks for the information, Rick.
Will there be a future release of IML which is able to adress more than 2GB? I have tons of RAM and cant use it to handle huge matrices with SAS:-(
I can't comment on future releases, but SAS developers are aware that customers would like to use 64-bit operating systems to address more RAM.
We are working to overcome this memory limitation on 64-bit windows within the next few releases. 64-bit linux or unix hosts do not have this limitation.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!