id for each chain should be unique in multi chain output csvs
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 238
- Forks
- 106
- Avg merge
- 2h 29m
- Merged PRs (30d)
- 6
Description
Summary:
Right now the id for each chain will always be the same in the output csv, but they should be different for each output file
Description:
Describe the issue as clearly as possible.
Reproducible Steps:
make examples/bernoulli/bernoulli
./examples/bernoulli/bernoulli sample num_chains=2 data file="./examples/bernoulli/bernoulli.data.R"
Current Output:
For model_2.csv as an example
# stan_version_major = 2
# stan_version_minor = 34
# stan_version_patch = 1
# model = bernoulli_model
# start_datetime = 2024-03-14 19:00:54 UTC
# method = sample (Default)
# sample
# num_samples = 1000 (Default)
# num_warmup = 1000 (Default)
# save_warmup = 0 (Default)
# thin = 1 (Default)
# adapt
# engaged = 1 (Default)
# gamma = 0.05 (Default)
# delta = 0.8 (Default)
# kappa = 0.75 (Default)
# t0 = 10 (Default)
# init_buffer = 75 (Default)
# term_buffer = 50 (Default)
# window = 25 (Default)
# save_metric = 0 (Default)
# algorithm = hmc (Default)
# hmc
# engine = nuts (Default)
# nuts
# max_depth = 10 (Default)
# metric = diag_e (Default)
# metric_file = (Default)
# stepsize = 1 (Default)
# stepsize_jitter = 0 (Default)
# num_chains = 2
# id = 1 (Default)
# data
Expected Output:
For model_2.csv
# stan_version_major = 2
# stan_version_minor = 34
# stan_version_patch = 1
# model = bernoulli_model
# start_datetime = 2024-03-14 19:00:54 UTC
# method = sample (Default)
# sample
# num_samples = 1000 (Default)
# num_warmup = 1000 (Default)
# save_warmup = 0 (Default)
# thin = 1 (Default)
# adapt
# engaged = 1 (Default)
# gamma = 0.05 (Default)
# delta = 0.8 (Default)
# kappa = 0.75 (Default)
# t0 = 10 (Default)
# init_buffer = 75 (Default)
# term_buffer = 50 (Default)
# window = 25 (Default)
# save_metric = 0 (Default)
# algorithm = hmc (Default)
# hmc
# engine = nuts (Default)
# nuts
# max_depth = 10 (Default)
# metric = diag_e (Default)
# metric_file = (Default)
# stepsize = 1 (Default)
# stepsize_jitter = 0 (Default)
# num_chains = 2
# id = 2
# data
Additional Information:
I swear I did this in the past, but I think what we need to do is pass an iterator for the chain number to parser.print so that when that function is printing the id we can override the value to be the chain id from within the stan program
Current Version:
v2.34.1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the bernoulli example and two chains using the commands in the report. Start by tracing the parser.print call mentioned in Additional Information and the code that writes the output CSV metadata; done means each chain's CSV reports its own distinct id, including model_2.csv showing id = 2.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100