BookmarkSubscribeRSS Feed
JerryLee
Calcite | Level 5

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.

3 REPLIES 3
Rick_SAS
SAS Super FREQ

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.

JerryLee
Calcite | Level 5

I see. I am curious to try increasing memory to see if it can improve the performance. Is there such a command? Thanks.

Rick_SAS
SAS Super FREQ

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.