04-10-2013 04:01 PM
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.
04-10-2013 06:06 PM
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.
04-10-2013 07:50 PM
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
If you have questions about memory, search for 'memsize' in this forum.