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.

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 3 replies
  • 1332 views
  • 3 likes
  • 2 in conversation