On Thu, 15 Mar 2012, Bert Gunter wrote:

Bill et. al:

1. This is new to me. Thanks.

2. As I read the man page, this is not guaranteed to work if the model
fitting function does not contain sufficient interrupts. Is that
correct?

Yes. If someone wrote a model fitting package in Fortran with no callbacks then it is not interruptible, including not by timers. In that case all you can do is to kill the R session.

The author of setTimeLimit()


-- Bert

On Thu, Mar 15, 2012 at 4:14 PM, William Dunlap <wdun...@tibco.com> wrote:
There is a setTimeLimit function in base.  It could be encapsulated into
the following to limit the time spent on an expression:

timeOut <- function (expr, ...)  {
   on.exit(setTimeLimit())
   setTimeLimit(...)
   expr
}

Using setTimeLimit(transient = TRUE) is slightly simpler here.

E.g., with the following slow way to compute Euler's phi
  f <- function(n) sum(sapply(seq_len(n), function(i)1/i)) - log(n)
I get
 > timeOut(f(1e5), elapsed=1)
 [1] 0.5772207
 > timeOut(f(1e6), elapsed=1)
 Error in FUN(1:1000000[[711624L]], ...) : reached elapsed time limit
Use try() or tryCatch() to check for the error.  E.g.,
 > sapply(1:7, function(n)tryCatch(timeOut(f(10^n), elapsed=1), 
error=function(e)-1))
 [1]  0.6263832  0.5822073  0.5777156  0.5772657  0.5772207 -1.0000000 
-1.0000000
You could look at 'e' in the error handler to see if it is a time out problem.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

-----Original Message-----
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf
Of Bert Gunter
Sent: Thursday, March 15, 2012 3:05 PM
To: Ramiro Barrantes
Cc: r-help@r-project.org
Subject: Re: [R] Timer on a function

On Thu, Mar 15, 2012 at 2:24 PM, Ramiro Barrantes
<ram...@precisionbioassay.com> wrote:
   Hello,

I have a program that consists of a loop fitting a function over many
models.  Sometimes the fitting on a particular model takes minutes to converge. 
 Is there
a way that I can limit the amount of time that R spends on a given model:

AFAIK, no -- this is an OS level issue.

Of course, most iterative fitting procedures have controls for the
number of iterations, convergence criteria, etc. , but there is no
awareness of timing except when the OS is interrogated, e.g. by
?proc.time or ?system.time . Such calls would have to be built into
the fitting function or OS level services would have to be invoked to
run the R process with timing limitations built in. See e.g. ?Rscript
for one possible approach.

Corrections or clever tricks to get around these perceived limitations
welcomed, of course.

-- Bert

Cheers,
Bert

say if my line is:

fittingFunction( func, model.1)

can I have some function:

stopIfUnderTime(  fittingFunction( func, model.1) , 5 )

where stopIfUnderTime will return the result if it finishes under 5 seconds, or 
NA
otherwise.

Is there anything like this?  (just looked through the web but did not find 
anything)

Thanks,
Ramiro



       [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



--

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-
biostatistics/pdb-ncb-home.htm

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



--

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


--
Brian D. Ripley,                  rip...@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to