Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: RE: Re: OS memory availability


From   Fred Wolfe <fwolfe@arthritis-research.org>
To   statalist@hsphsun2.harvard.edu, <statalist@hsphsun2.harvard.edu>
Subject   Re: st: RE: Re: OS memory availability
Date   Wed, 31 Mar 2004 04:48:00 -0600

Using systeminfo my machine reports
Total physical memory: 2047
Available physical memory: 1405

However, Stata refuse to set mem until 1100m:

. set mem 1400m
op. sys. refuses to provide memory
r(909);

. set mem 1300m
op. sys. refuses to provide memory
r(909);

. set mem 1200m
op. sys. refuses to provide memory
r(909);

. set mem 1100m

This is the number allowed by the following updated program:

*! memtest.ado v1.0.2 fw 3/30/04 determines maximum allowable memory
*! and current memory. Allowable value in mb is returned in r(osmem_m)
*! keywords: memory
program define memtest, rclass
version 8.2
preserve
clear
qui query memory
local oldmem = `r(memory)'
local memtest = 2000
while `memtest' > 100 {
cap set mem `memtest'm
if _rc == 0 {
di in green "Maximum value of memory allowed by OS is " in yellow"`memtest'm"
continue, break
}
local memtest = `memtest' - 100
}
return scalar osmem_m = `memtest'
set mem `oldmem'k
restore
end


which produces the following output:

. memtest
Maximum value of memory allowed by OS is 1100m

Current memory allocation

current memory usage
settable value description (1M = 1024k)
--------------------------------------------------------------------
set maxvar 5000 max. variables allowed 1.733M
set memory 1100M max. data space 1,100.000M
set matsize 800 max. RHS vars in models 4.950M
-----------
1,106.682M

. return list

scalars:
r(osmem_m) = 1100


Fred

At 04:17 PM 3/30/2004, Nick Cox wrote:

I built a bit on Kevin's useful idea.
If you don't see the downside of this
program, don't use it. If you want to
build on it, feel free.

program systeminfo
  version 8
  tempfile file
  preserve
  clear
  shell systeminfo /FO CSV > `file'
  qui insheet using `"`file'"', comma

  foreach v of var * {
    di as txt `v'[1] ": " `v'[2]
  }
end


Nick
n.j.cox@durham.ac.uk

> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu]On Behalf Of Kevin Turner
> Sent: 30 March 2004 22:40
> To: statalist@hsphsun2.harvard.edu
> Subject: st: Re: OS memory availability
>
>
> Fred Wolfe <fwolfe@arthritis-research.org> writes:
>
> >Thanks for the comments. I wrote the following program to
> try to get at the
> >issue. It reports back the level of memory that does not get
> an "op. sys.
> >refuses to provide memory" error.
>
> Like Fred, I've placed -set mem- inside of a for loop and
> captured the highest
> value that Stata can successfully allocate. I don't know if
> there is a way to
> obtain the highest value apart from experimentation because
> the value is
> not guaranteed to be constant over time. The reason for this
> is that, on
> Windows, it represents the largest _continuous_ free block of
> memory. As
> programs request and free up portions of memory, this space
> can potentially
> change in size.
>
> However, if you want to dynamically find the amount of
> physical memory (like
> David was asking) you can get this value using a DOS command.
>
> From Stata:
>
> . shell systeminfo /FO CSV > systeminfo.csv
> . insheet using systeminfo.csv, comma
>
> This imports a dataset with various system specifications. The first
> observation contains all the variable names and the second
> observation contains
> their values. Get the values you want and then clear the dataset.
>
> To prevent thrashing of virtual memory, stay at or below the
> value in v23 and
> make sure that Stata is not competing for memory resources
> with another
> running program.
>
> . list v23 in 2
>
> Hope this helps,
>
> --Kevin
> kturner@stata.com
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

Fred Wolfe
National Data Bank for Rheumatic Diseases
Wichita, Kansas
Tel (316) 263-2125     Fax (316) 263-0761
fwolfe@arthritis-research.org


*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index