![]() For back-of-the envelope computations I use the simpler formula: an r x c matrix double-precision matrix requires r* c*8/10 9 gigabytes of RAM.īecause RAM is traditionally measured by using the second definition, the following SAS/IML module accurately calculates the number of gigabytes of RAM (using the computer science definition) required to hold a matrix of a given dimension: These competing definitions are sufficiently close that you don't usually have to worry about the difference. However, the historical definition in computer science is 1024 3 = 2 30 bytes, which is 1.07 x 10 9. Disk drives and storage devices use 1 GB to mean 10 9 bytes. ![]() Therefore, if you know the size of a matrix, you can write a simple formula that computes the gigabytes (GB) of RAM required to hold the matrix in memory. Each element in a double-precision numerical matrix requires eight bytes. The IML procedure holds all matrices in RAM, so whenever I see this question I compute how much RAM is required for the specified matrix. Sometimes the matrix is not square, but it is always big. Sometimes it is 250,000 or one million rows. Several times a month I see a variation of this question. (execution) Unable to allocate sufficient memory.Ĭan IML allocate a matrix of this size? What is wrong? ![]() I am trying to create a numerical matrix with 100,000 rows and columns in PROC IML. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |