I am running an IML involving optimizing a multivariate function. It took over 40 hours and still running. I tested the algorithm by loosing the convergence criteria and it worked. So I do not think there is anything wrong with the coding. I am wondering if there is anyway to improve the speed by increasing the buffersize of IML? I know there is a command for SQL to increase the buffersize and speed (e.g., proc sql _method buffersize=2097152). Is there a similar command for proc iml? Thanks.
See SAS/IML(R) 12.1 User's Guide and the link at the bottom of the page.
I would be surprised if increasing the workspace memory changes the performance of your algorithm. What will have a more significant effect is making sure that your objective function is vectorized. Avoind DO loops, and use matrix-vector computations whenever possible.
I see. I am curious to try increasing memory to see if it can improve the performance. Is there such a command? Thanks.
Hmmm, I think that IML uses all the memory that SAS can give it, so you'd have to invoke SAS to give you more memory. I don't think I've ever tried it myself, but here's a University web page (http://www.ciser.cornell.edu/FAQ/SAS/MemoryAllocation.shtm) that shows how to edit the sasv9.cfg file. You could try adding
-memsize 0
If you have questions about memory, search for 'memsize' in this forum.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.