stan-dev / stan-dev/stan

time-based refreshes

Open
#2,070 6 comments 0 reactions 1 assignee View on GitHub

@bgoodri is already working on this.

Since Oct 25, 2016.

algorithm feature interface
Dominant language
C++
Stars
2.8k
Forks
388
Avg merge
2d 17h
Merged PRs (30d)
15

Description

Summary:

Stan should output progress every X seconds rather than every X% of iterations

Description:

Stan should output progress every X seconds rather than every X% of iterations

https://groups.google.com/forum/#!searchin/stan-dev/%22time-based%22%7Csort:relevance/stan-dev/za8SWSVugTo/TCE8t6peFwAJ

Reproducible Steps:

Estimate a model

Current Output:
SAMPLING FOR MODEL 'lm' NOW (CHAIN 1).

Chain 1, Iteration:    1 / 2000 [  0%]  (Warmup)
Chain 1, Iteration:  200 / 2000 [ 10%]  (Warmup)
Chain 1, Iteration:  400 / 2000 [ 20%]  (Warmup)
Chain 1, Iteration:  600 / 2000 [ 30%]  (Warmup)
Chain 1, Iteration:  800 / 2000 [ 40%]  (Warmup)
Chain 1, Iteration: 1000 / 2000 [ 50%]  (Warmup)
Chain 1, Iteration: 1001 / 2000 [ 50%]  (Sampling)
Chain 1, Iteration: 1200 / 2000 [ 60%]  (Sampling)
Chain 1, Iteration: 1400 / 2000 [ 70%]  (Sampling)
Chain 1, Iteration: 1600 / 2000 [ 80%]  (Sampling)
Chain 1, Iteration: 1800 / 2000 [ 90%]  (Sampling)
Chain 1, Iteration: 2000 / 2000 [100%]  (Sampling)
 Elapsed Time: 0.795202 seconds (Warm-up)
               0.421444 seconds (Sampling)
               1.21665 seconds (Total)
Expected Output:
 Elapsed Time: 0.795202 seconds (Warm-up)
               0.421444 seconds (Sampling)
               1.21665 seconds (Total)

if X > 1.21665

Additional Information:

The current refresh behavior is sufficiently stupid and isolated from anything statistical that we should just get rid of it immediately without deprecation messages. I would be in favor of reinterpreting the integer passed to the refresh argument as a number of seconds. That way any existing code that specifies refresh would continue to work, although we probably need a higher default than 10 seconds. Alternatively, we could introduce a refresh_seconds argument and make people specify that explicitly to get the new behavior but then they won't get the new behavior unless they RTFM. Or we could introduce a refresh_seconds and just output a nonfatal message if the user specifies refresh saying that refresh is ignored.

Current Version:

v2.12.0

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.