DATA Step, Macro, Functions and more

Insufficiency memory error

Accepted Solution Solved
Reply
Contributor
Posts: 20
Accepted Solution

Insufficiency memory error

Hi,

 

I ran the following logistic regression (11,590 observations) and got an insufficiency memory error.

980

981 proc logistic data=c11;

982 model deltar (descending) = lev fsize lirisk mb ltenure outsidechmn ceoapptdoutsdirs

982! staggered

983 pctoldoutsdirs pctbusyoutsdirs outsidedirholds lnumberdirs pctfinexpsaud/rsq;

984 output out=p1 p=prob;

985 run;

ERROR: The SAS System stopped processing this step because of insufficient memory.

NOTE: There were 11590 observations read from the data set WORK.C11.

WARNING: The data set WORK.P1 may be incomplete. When this step was stopped there were 0

observations and 272 variables.

NOTE: PROCEDURE LOGISTIC used (Total process time):

real time 2.94 seconds

cpu time 2.66 seconds

 

I looked up information and tried maximizing memory. Where do I need to put this command?

 

987 options memsize=max;

-------

30

WARNING 30-12: SAS option MEMSIZE is valid only at startup of the SAS System. The SAS option is

ignored.

 

Any advice will be highly appreciated.

 

Thank you

 

Sincerely,

Joon1


Accepted Solutions
Solution
‎03-18-2018 06:53 PM
PROC Star
Posts: 2,311

Re: Insufficiency memory error

Please select an answer that solved your problem. Not your own post.

View solution in original post


All Replies
PROC Star
Posts: 2,311

Re: Insufficiency memory error

Please run this:

  data _null_; FREERAM_MB=input(getoption('xmrlmem'),20.)/1024/1024; put FREERAM_MB= 8.; run;

  proc options group=memory; run;

Contributor
Posts: 20

Re: Insufficiency memory error

Thank you so much for your response

Even after entering your code at the first line, I still have the same error message. Any further advice will be highly appreciated.

 

504 data _null_; FREERAM_MB=input(getoption('xmrlmem'),20.)/1024/1024; put FREERAM_MB= 8.; run;

FREERAM_MB=1622

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

cpu time 0.01 seconds

 

505 proc options group=memory; run;

SAS (r) Proprietary Software Release 9.4 TS1M3

 

Group=MEMORY

SORTSIZE=268435456

Specifies the amount of memory that is available to the SORT procedure.

SUMSIZE=0 Specifies a limit on the amount of memory that is available for data

summarization procedures when class variables are active.

MAXMEMQUERY=0 Specifies the maximum amount of memory that is allocated for procedures.

MEMBLKSZ=16777216 Specifies the memory block size for Windows memory-based libraries.

MEMMAXSZ=2147483648

Specifies the maximum amount of memory to allocate for using memory-based

libraries.

LOADMEMSIZE=0 Specifies a suggested amount of memory that is needed for executable programs

loaded by SAS.

MEMSIZE=2147483648

Specifies the limit on the amount of virtual memory that can be used during a

SAS session.

REALMEMSIZE=0 Specifies the amount of real memory SAS can expect to allocate.

NOTE: PROCEDURE OPTIONS used (Total process time):

real time 0.01 seconds

cpu time 0.03 seconds

 

 

 

498

499 proc logistic data=c11;

500 model deltar (descending) = lev fsize lirisk mb ltenure outsidechmn ceoapptdoutsdirs

500! staggered

501 pctoldoutsdirs pctbusyoutsdirs outsidedirholds lnumberdirs pctfinexpsaud/rsq;

502 output out=p1 p=prob;

503 run;

ERROR: The SAS System stopped processing this step because of insufficient memory.

NOTE: There were 11590 observations read from the data set WORK.C11.

WARNING: The data set WORK.P1 may be incomplete. When this step was stopped there were 0

observations and 272 variables.

NOTE: PROCEDURE LOGISTIC used (Total process time):

real time 2.64 seconds

cpu time 2.43 seconds

PROC Star
Posts: 2,311

Re: Insufficiency memory error

You are only giving SAS 2GB of RAM, of which 1.6 GB is usable for procedures..

Is your PC using a 64-bit OS?

How much memory do you have? 4GB or more? 

Is so, try increasing the value of MEMSIZE.

If not, I don't know enough about proc logistic to comment further.

 

You can still increase MEMSIZE with no available RAM, but the processing will then take place on disk and take a looooooooooooooong time.

 

Contributor
Posts: 20

Re: Insufficiency memory error

Thank you
My pc is 64 bit OS. RAM is 8.00 GB (7.49 GB usable). The sample is only
11,590 observations. It is very strange to have memory issue. This may be
not real memory issue.
PROC Star
Posts: 2,311

Re: Insufficiency memory error

Change the MEMSIZE setting then. Maybe to 6 GB to start with.

This is done by changing the SAS configuration. Either in the SAS config file or in the desktop shortcut.

 

Contributor
Posts: 20

Re: Insufficiency memory error

Thank you

Super User
Posts: 10,686

Re: Insufficiency memory error

[ Edited ]

That is really weird. 11,590 observations should NOT be big data for proc logistic.

or try PROC HPLOGISTIC  .

Contributor
Posts: 20

Re: Insufficiency memory error

Thank you so much for your help

I tried hplogistic command and it just runs program without producing results. The hard drive of computer is very noisy and the computer (Dell PC) is not functioning well. Do you have any other advice?  Thank you

 

Sincerely,

Joon1

Super User
Posts: 10,686

Re: Insufficiency memory error

PROC GENMOD also can do logistic regression. But I am not sure if it could work out.

Solution
‎03-18-2018 06:53 PM
PROC Star
Posts: 2,311

Re: Insufficiency memory error

Please select an answer that solved your problem. Not your own post.
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 10 replies
  • 289 views
  • 1 like
  • 3 in conversation