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.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.