projects → picongpu surrogate pipeline
Active Learning-Driven Surrogate Modeling for PIConGPU
Particle-in-cell simulations are the workhorse of laser-plasma physics, and their cost is the bottleneck: a single PIConGPU run of our laser wakefield acceleration setup takes about 30 minutes on GPU, and the base parameter sweep covers 625 combinations of laser amplitude, spot size, focus position and plasma density. That makes iterative optimization, uncertainty quantification or anything close to real-time exploration impractical, which is exactly the niche for a learned surrogate. My Master's thesis at Babeș-Bolyai University, carried out with the HZDR Radiation Physics institute, built the full pipeline: from raw simulations to a surrogate that knows where in parameter space it is ignorant, and an active learning loop that sends the next simulations exactly there.
The data side is orchestrated with Snakemake on a SLURM cluster over GPFS storage: compile, simulate and transform rules per parameter set, with openPMD/ADIOS output post-processed into physics targets: a Hilbert transform extracts the laser envelope from the oscillating field, yielding peak normalized amplitude, beam waist, pulse duration and the self-focusing timestep. The study targets the laser self-focusing effect: where in the 5-dimensional parameter space it occurs, and when in the simulation timeline.
The surrogate is a five-member deep ensemble of 1D-CNNs (the architecture comes from the parallel thesis of my colleague Maria-Alexandra Iacob; I rewrote the original TensorFlow implementation in PyTorch and built the ensemble machinery on top). Ensemble disagreement provides the epistemic uncertainty signal, which I validated on synthetic data first: when I deliberately cut regions out of the training domain, the high-uncertainty points landed inside the removed regions. The signal genuinely locates missing knowledge.
The core methodological contribution is a Monte Carlo adaptive uncertainty threshold. Instead of hand-picking a cutoff, candidate thresholds are sampled between the 50th and 99th percentile and scored on information gain, coverage, diversity and batch efficiency; a neighborhood validation step then filters out isolated uncertainty spikes by checking that a candidate's surroundings are uncertain too. Selected points flow straight back into Snakemake, new simulations run, and the ensemble retrains: a closed loop between the ML side and the HPC scheduler.
The honest result: with the baseline ensemble already at R² ≈ 0.998 on the initial sweep, 45 active learning iterations produced fluctuations rather than headline gains. The model was near its ceiling, so the thesis reads as a proof-of-concept that the gap-identification mechanism works and reduces the simulations needed for coverage, rather than a claim of dramatic accuracy improvement. The pipeline, the uncertainty machinery and the threshold algorithm are the deliverables, and they transfer to any expensive simulation code.
- Stack
- PIConGPU, Snakemake, SLURM, GPFS, openPMD, PyTorch, Weights & Biases, NVIDIA V100


