I have a nonlinear problem that causes out-of-memory error for the solver in SAS. Is there any setting that can enlarge memory allocation to avoid the error, or are there several nonlinear solver options available in SAS so I can try some others solvers other than the default one, or any other recommendation that can help me not to get the out-of-memory error. Thank you.
There are a lot of memory options. Please describe:
- your SAS release and the OS-system environment
- do you have some support staf helping you with SAS
- The hardware you are using with his limits
- which procedure.process you are using getting this error
- The data sizing you are processing
- the exact message you have got
The SAS release is Enterprise 5.1. The system is Windows 7.
The below is the message for the error. The error happens in a second, so I really don't believe the NLP solver has really started to solve the problem.
For the optimization problem, I tried to remove the nonlinearity and reduce the problem to a linear programming problem but force to use NLP solver to solve it. I got the exactly same error even just for the linear programming problem.
357 solve with nlp / multistart seed = 51741 msnumstarts = 12 maxiter = 1;
NOTE: Problem generation will use 16 threads.
NOTE: The problem has 1321716 variables (0 free, 0 fixed).
NOTE: The problem uses 92173 implicit variables.
NOTE: The problem has 105815 linear constraints (4932 LE, 96936 EQ, 3947 GE, 0 range).
NOTE: The problem has 379108 linear constraint coefficients.
NOTE: The problem has 0 nonlinear constraints (0 LE, 0 EQ, 0 GE, 0 range).
NOTE: The OPTMODEL presolver removed 751891 variables, 96984 linear constraints, and 0 nonlinear constraints.
NOTE: The OPTMODEL presolved problem has 569825 variables, 8831 linear constraints, and 0 nonlinear constraints.
NOTE: The OPTMODEL presolver removed 348861 linear constraint coefficients, leaving 30247.
NOTE: Using analytic derivatives for objective.
NOTE: The NLP solver is called.
NOTE: The Interior Point algorithm is used.
NOTE: The MULTISTART option is enabled.
NOTE: The deterministic parallel mode is enabled.
NOTE: The Multistart algorithm is executing on the client.
NOTE: The Multistart algorithm is using up to 16 threads.
NOTE: Random number seed 51741 is used.
NOTE: The Multistart algorithm generated 0 sample points.
NOTE: 0 distinct local optima were found.
ERROR: Out of memory in solver.
Maybe the "Memory Limit" section from the SAS/OR 13.1 documentation will help you:
If possible, can you share your PROC OPTMODEL code and preferably also the data? It looks like the presolver is removing almost all of the constraints and more than half of the variables. You might be able to save some memory by not declaring these in the first place.
Also, I have built corresponding linear programming and Mixed integer programming models using exactly the same data sets. They are all fine.
Don't understand why the NLP solver popped out an error without even starting to solve the problem. If the large size of data sets caused the out of memory issues. Don't the issues happen for the linear programming and MIP solvers as well?
The generic memory management is the Memsize system option.
You can check your current memory settings with
proc options group=memory;run;
Easiest if not running many programs simultaneously is Memsize=Max. But this option needs to be set in the configuration file so it is effective at start of SAS.
You are using Eguide 5.1 with a SAS installation on a Windows-Server belonging to a 9.3 SAS installation using 13.1 or 12.1 SAS/stat.
You need to contact you SAS-admin. He is able to setup/change some settings in the config_usermods file for your wokspace_server (SASApp).
Even a special appserver, one for you higher demands, could be setup.
I am expecting a server with a lot of Gb's on board and hoping for a 64-bit installation. The 32-bit version is limited to about 2Gb.
That 2Gb is the default setting of the memsize SAS(R) 9.3 Companion for Windows. You could check memory usage by defining the fullstimer option.
There are possible more memory settings as I have also seen the contiguous ones. That is when doing further analyses of your issue.
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
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.