Configuration-Driven Workflow
HIcosmo supports Cobaya-like YAML configuration.
Parallel Initialization
Before running any configuration, initialize the parallel environment:
import hicosmo as hc
hc.init(8) # 8 parallel devices
Note
hc.init(N) creates N JAX logical devices, enabling true parallelism for N chains.
hc.init(8)- 8 parallel devices (recommended)hc.init()- Auto-detect (up to 8)hc.init("GPU")- GPU mode
YAML Configuration Example
name: joint_sn_bao
theory: LCDM
likelihood:
- name: sn
dataset: pantheon+
- name: bao
dataset: sdss_dr12
params:
H0: {prior: {dist: uniform, min: 50, max: 100}, ref: 70.0}
Omega_m: {prior: {dist: uniform, min: 0.1, max: 0.5}, ref: 0.3}
sampler:
name: numpyro
num_samples: 1000
num_chains: 8 # Default = number of devices
num_warmup: 300
output:
root: results
chain_name: joint_sn_bao
Running a Configuration
# 1. Initialize first
import hicosmo as hc
hc.init(8)
# 2. Run the configuration
from hicosmo import run_from_config
run_from_config("examples/tutorials/configs/joint_sn_bao.yaml")