Specifying manual blocking in cobaya
Posted: March 24 2020
I have some slow cosmology parameters and some fast bias parameters, and would like to take advantage of blocking to speed up my chains in cobaya. However, I'm having some trouble manually specifying the blocking scheme via the python interface. In the python code I specify the blocking as follows:
info['sampler']['mcmc']['blocks'] = [['logA','Omegam'],['logSN','b1','b2','alpha_cross','alpha_auto','alpha_matter']]
info['sampler']['mcmc']['oversampling_factors'] = [1,100]
which is reflected in the .updated.yaml file:
blocking: null
blocks:
- - logA
- Omegam
- - logSN
- b1
- b2
- alpha_cross
- alpha_auto
- alpha_matter
oversample: true
oversampling_factors:
- 1
- 100
but cobaya insists that it is blocking in a different way:
[mcmc] Oversampling with factors:
5 : ['logA', 'logSN', 'Omegam', 'b1', 'alpha_cross']
138 : ['b2', 'alpha_auto', 'alpha_matter']
backed up by the .checkpoint file:
sampler:
mcmc:
converged: false
Rminus1_last: .inf
proposal_scale: 2.4
blocks:
- - 0
- 1
- 2
- 3
- 5
- - 4
- 6
- 7
oversampling_factors:
- 5
- 138
What mistake am I making here?
info['sampler']['mcmc']['blocks'] = [['logA','Omegam'],['logSN','b1','b2','alpha_cross','alpha_auto','alpha_matter']]
info['sampler']['mcmc']['oversampling_factors'] = [1,100]
which is reflected in the .updated.yaml file:
blocking: null
blocks:
- - logA
- Omegam
- - logSN
- b1
- b2
- alpha_cross
- alpha_auto
- alpha_matter
oversample: true
oversampling_factors:
- 1
- 100
but cobaya insists that it is blocking in a different way:
[mcmc] Oversampling with factors:
5 : ['logA', 'logSN', 'Omegam', 'b1', 'alpha_cross']
138 : ['b2', 'alpha_auto', 'alpha_matter']
backed up by the .checkpoint file:
sampler:
mcmc:
converged: false
Rminus1_last: .inf
proposal_scale: 2.4
blocks:
- - 0
- 1
- 2
- 3
- 5
- - 4
- 6
- 7
oversampling_factors:
- 5
- 138
What mistake am I making here?