06-02-2014 01:56 PM
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.
06-02-2014 03:10 PM
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
06-02-2014 04:35 PM
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.
06-02-2014 04:45 PM
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.
06-02-2014 05:02 PM
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?
06-02-2014 03:14 PM
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.
06-03-2014 02:18 AM
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.