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.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
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.