ParallelParticleSwarms.jl

Particle swarm optimization inside GPU kernels, made to scale to any problem dimension and to handle ill-conditioned problems.

Organisation
SciML
Period
2026 – present
Stack
Julia, KernelAbstractions.jl, CUDA.jl
Code
SciML/ParallelParticleSwarms.jl

ParallelParticleSwarms.jl runs global optimization with whole particle swarms inside GPU kernels, for problems such as fitting the parameters of ODE models.

What I did

  • GPU kernels that scale with dimension. The kernels kept full particles in shared memory, so they stopped compiling once problems had more than a few dimensions. I restructured the reductions so shared memory no longer depends on the problem size.
  • A working hybrid local search. The L-BFGS phase that refines the swarm’s best points minimized the wrong quantity and could not solve ill-conditioned problems. I rewrote it as a projected L-BFGS with a Strong Wolfe line search that runs inside the GPU kernel.
  • Benchmarks. I built the particle swarm benchmarks in SciMLBenchmarks.jl, including neural ODE parameter estimation.