Asynchronous, Generation-Free ABC: Streaming AMIS Reweighting for Heterogeneous Simulator Workloads on HPC
Organizations: Scientific Computing Center, Karlsruhe Institute of Technology, Karlsruhe, Germany
Abstract
Approximate Bayesian computation (ABC) enables Bayesian inference for models with intractable likelihoods by estimating parameter posterior distributions from simulated data. Sequential ABC methods improve sampling efficiency by iteratively adapting the proposal distribution toward regions of high posterior probability. However, these methods typically operate in generations, where each generation must wait for its slowest simulation before the next can begin. On a parallel machine, this synchronization barrier leaves workers idle and reduces throughput, particularly when simulation runtimes vary substantially. We introduce a generation-free ABC sampler that updates its proposal when simulation results arrive and sends a new candidate to each available worker. The proposal is based on the best particles evaluated so far. To estimate the posterior, we reuse the full history and reweight particles against a reconstructed mixture of sampling proposals. We show how errors in approximating the mixture of sampling proposals affect the estimated posterior and establish consistency for the smooth-ABC posterior when the approximation becomes asymptotically exact. In our experiments, the method achieves well-calibrated posterior estimates where a pyABC baseline with the same kernel and bandwidth schedule under-covers. From the asynchronous run's timing alone, we predict how much a synchronization barrier would slow the sampler. These predictions agree with measured synchronization penalties ranging from 1.2x to 400x. On a Cellular Potts tissue simulator, the asynchronous sampler completes 2.1-2.4x as many evaluations as pyABC in the same hour, and the discrepancy threshold for its best 100 evaluations is 4.1x smaller. With the starting bandwidth set from prior-predictive discrepancies, it also produces a more concentrated two-parameter posterior with a larger effective sample size than pyABC.
Figures & tables
| Benchmark | cost/sim | runtime spread | budget, workers | role | |
|---|---|---|---|---|---|
| Gaussian mean | 1 | ms | injected: straggler – ; lognormal | s, ( in the straggler study) | calibration; barrier cost under a known runtime distribution; the near-instantaneous end of the cost boundary |
| g-and-k | 4 | ms | none | s, | 4-D calibration and recovery against a reference posterior |
| Lotka–Volterra | 4 | ms | trajectory-dependent; extinct | s, ; scaling to | strong scaling; the cost boundary |
| Cellular Potts | 2 | s | CV | s, ; scaling to | posterior recovery against a known truth; barrier cost on a real simulator |
| Cellular Potts | 2 | s | CV – | s, | barrier cost at realistic cost and heterogeneity |
| Benchmark | cost/sim | sims (async / sync) | throughput | per-simulation | equal wall clock |
|---|---|---|---|---|---|
| Gaussian mean | ms | M / M | ( – ) | ( – ) | |
| g-and-k | ms | M / M | ( – ) | ( – ) | |
| Lotka–Volterra | ms | M / M | ( – ) | ( – ) | |
| Cellular Potts | s | / | ( – ) | ( – ) |
| Target | Method | 0.50 | 0.80 | 0.90 | 0.95 |
|---|---|---|---|---|---|
| Gaussian mean (1-D) | asynchronous | 0.51 | 0.80 | 0.90 | 0.94 |
| pyABC | 0.35 | 0.63 | 0.75 | 0.83 | |
| Bimodal (1-D) | asynchronous | 0.50 | 0.82 | 0.91 | 0.96 |
| pyABC | 0.45 | 0.82 | 0.90 | 0.95 | |
| g-and-k (4-D), | asynchronous, full history | 0.62 | 0.91 | 0.96 | 0.99 |
| pyABC | 0.54 | 0.82 | 0.91 | 0.95 |
| contraction | ||||||
|---|---|---|---|---|---|---|
| sims | util. | , end | division rate | cell volume | ESS | |
| Asynchronous, | 13,300 | 99.8% | 645 | |||
| Asynchronous, | 12,900 | 99.8% | 303 | |||
| pyABC, | 5,400 | 42.8% | 66 | |||
| Rejection ABC, best of | 13,000 | — | 100 | |||
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Assumption | Status | Basis |
|---|---|---|
| 1 kernel, Lipschitz part | by construction | Gaussian and Epanechnikov are peak-normalized and Lipschitz in on every , with and . The hard indicator is not, and is excluded from the theory. |
| 1 | holds for Gaussian | The Gaussian kernel is strictly positive, so and the limiting target is non-degenerate whatever the discrepancy distribution. For a compactly supported kernel (Epanechnikov) it requires the achievable discrepancies to reach inside the support, which we do not verify. |
| 2 denominator class | by construction | The prior support is a box and the archive lies in it, so component means do; the covariance carries an additive jitter ( the mean squared box width), whose second term is a run-independent floor, giving , and follows from the archive lying in a bounded box. The truncation normalizer is the product of per-axis in-box masses, so with a correlated covariance does not integrate to one. Assumption 2 does not require that: it constrains a positive function, and the discrepancy is carried by instead (§ A.1 (c)). |
| 4 execution model | holds; implementation property | (B1), (B2): the propagator draws from its own stream, seeded once per rank, and every simulator call receives a fresh seed derived from the run seed, the rank and a per-rank call counter, so the two streams are independent in the sense in which pseudo-random streams are, and no two calls share a seed. (B3): a worker proposes when its own simulation completes and builds the proposal from the results that have reached it; delivery is asynchronous message passing, exogenous to both streams. Lemma 5 then gives the adapted filtration with the emitted density. What asynchrony leaves in is the arrival-order reconstruction of the snapshots, a boundary of at most particles per snapshot (§ A.1 (d)). |
| 3 prior floor | by construction | The retroactive denominator floors the prior component’s mass at (Appendix C ), so and Lemma 6 bounds every posterior weight by , independently of what the sampler does. |
| 5 fidelity ( 9 ) | assumed; two of its four factors measured | The one place the sampler enters for Corollary 2 ; Theorem 1 does not use it. Decomposed into four factors in § A.1 , two of them estimated from stored histories rather than bounded; since the factors multiply, the measured part is a partial accounting rather than a bound on the whole. |
| Property | Classical ABC-SMC | This work |
|---|---|---|
| Update style | generation, barrier-synchronized | event-driven (single-arrival), no barrier |
| Archive | explicit, generational | reconstructed, sliding top- |
| ABC likelihood | hard threshold | smooth kernel |
| Importance weight | against only | balance heuristic over |
| Archive state | mutable, carried | none; reconstructed per call |
| Posterior estimate | final population | pure function of the history |
| Symbol | Meaning | Option | Value |
|---|---|---|---|
| archive size | k | ( in the four-dimensional calibration runs) | |
| starting bandwidth | tol_init | (Gaussian mean), (g-and-k), (Lotka–Volterra), (Cellular Potts; in its earlier parameterization) | |
| ABC kernel | kernel | Gaussian | |
| scale of the perturbation covariance | perturbation_scale | ||
| kept snapshots | amis_snapshots | ||
| snapshot cadence, in calls | amis_interval |
| Experiment | Workers | Budget (s) | Reps | Methods | |
|---|---|---|---|---|---|
| Gaussian mean | 48 | 300 | 5 | 100 | A,S,R |
| g-and-k | 48 | 600 | 5 | 100 | A,S,R |
| Lotka–Volterra | 48 | 600 | 5 | 100 | A,S |
| Cellular Potts | 48 | 3600 | 5 | 100 | A,S,R |
| Cellular Potts | 48 | 3600 | 3 | 100 | A,S,R |
| Straggler | 16 | 300 | 5 | 100 | A,S |
| Straggler slowdown | |||||
|---|---|---|---|---|---|
| Asynchronous, sims/s | 3888 | 3112 | 3241 | 3218 | 3205 |
| Synchronized variant, barrier every | 48.7 | 65.3 | 31.6 | 15.9 | 8.0 |
| Synchronized variant, barrier every | 162.8 | 148.4 | 31.8 | 15.9 | 8.0 |
| Synchronized variant, predicted | (3870) | (154) | 31.8 | 15.9 | 7.98 |
| Ratio, measured (every ) | |||||
| Ratio, predicted | — | — |
| Heterogeneity | |||||
|---|---|---|---|---|---|
| Asynchronous, sims/s | 47.6 | 42.1 | 28.9 | 17.6 | 11.4 |
| Synchronized variant, barrier every | 44.8 | 15.1 | 4.37 | 1.06 | 0.37 |
| Synchronized variant, barrier every | 45.1 | 19.8 | 6.50 | 1.75 | 0.45 |
| pyABC | 23.1 | 18.9 | 9.91 | 4.35 | 2.39 |
| Ratio, measured (every ) | |||||
| Ratio, predicted |
| Workers ( cores) | 48 | 96 | 192 | 384 |
| Throughput ratio, async / synchronized variant | ||||
| utilization ratio | ||||
| simulation-duration ratio | ||||
| Straggler factor of the synchronized variant’s generations | 1.21 | 1.28 | 1.21 | 1.29 |
| Predicted from asynchronous timing | ( ) |
| Workers | 1 | 4 | 16 | 48 | 144 | 192 | 240 | 288 |
|---|---|---|---|---|---|---|---|---|
| Nodes | 1 | 1 | 1 | 1 | 3 | 4 | 5 | 6 |
| Synchronous | 105 | 96 | 437 | 2952 | 3757 | 4322 | 4539 | 6034 |
| Asynchronous ( ) | 149 | 369 | 1983 | 6240 | 4195 | 2615 | 2088 | 1729 |
| Asynchronous ( ) | 106 | 133 | 620 | 3804 | 2804 | 1957 | 1587 | 1336 |
| archive size (at ) | |||||
|---|---|---|---|---|---|
| 50 | 100 | 200 | 400 | 800 | |
| -0.014 | -0.003 | +0.006 | +0.006 | +0.074 | |
| -0.020 | -0.006 | +0.009 | +0.030 | +0.072 | |
| +0.025 | +0.064 | +0.094 | +0.133 | +0.063 | |
| -0.250 | +0.055 | +0.180 | +0.195 | +0.061 | |
| -0.047 | +0.028 | +0.049 | +0.053 | +0.055 | |
| sims/s at | vs. | worst | at | pyABC overtakes | |
|---|---|---|---|---|---|
| 50 | 6684 | 0.250 | beyond 3 nodes | ||
| 100 | 6240 | — | 0.064 | beyond 3 nodes | |
| 200 | 5904 | 0.180 | beyond 3 nodes | ||
| 400 | 5393 | 0.195 | 3 nodes | ||
| 800 | 4331 | 0.074 | 3 nodes | ||
| 1000 | 3804 | — | — | 3 nodes |
Simulation-Based Inference
Simulation-based inference estimates parameters and uncertainty from simulators when evaluating a tractable likelihood is difficult or impossible.
See all 87 papers