"Unable to allocate sufficient memory" or "Read Access Violation" when estimating large Mixed Logit model in PROC MDC


While attempting to estimate a large mixed logit model, PROC MDC may terminate prematurely due to insufficient memory, writing one or more of the following errors to the SAS log:

ERROR: Unable to allocate sufficient memory. You must either increase the amount of memory available, or approach the problem differently.

and/or

ERROR: Read Access Violation In Task ( MDC ]

To circumvent the problem, increase the number of simulation replications using the NSIMUL= option on the MODEL statement (which has a default value of 200) in order to force PROC MDC to make use of utility files in addition to RAM. The minimum number of simulation replications to avoid the problem depends on several factors including the hardware, the input data, and the mixed logit model specified. Still, increments of 300 is a good place to begin for many problems.

Note that increased processing time is required when utility files are used.