Coordinating Dynamic Ensembles of Computations with libEnsemble

July 7, 2022 @ 1:00 pm – 2:30 pm
Stephen Hudson


This tutorial will introduce libEnsemble, a Python toolkit for coordinating asynchronous and dynamic ensembles of calculations across massively parallel resources.

Target participants are researchers running large numbers of computations who would like to train models, perform optimizations based on simulation results, or perform other adaptive parameter studies. Participants will learn to use libEnsemble’s generation and simulation functions to express portable ensembles, and to utilize the growing library of example functions.

The presenters will address how to couple libEnsemble workflows with any user application and apply advanced features including the allocation of variable resources and the cancellation of simulations based on intermediate outputs. Using examples from current ECP software technology and application integrations, the presenters will demonstrate how libEnsemble’s mix-and-match approach can help interface libraries and applications with exascale-level resources.

The tutorial will be presented by Stephen Hudson, Jeffrey Larson and John-Luke Navarro.


  • Overview of libEnsemble
  • Simple sine tutorial (with hands-on)
  • Data workflow
  • Running with user applications (with hands-on)
  • GPU example
  • Variable resource management
  • Optimization using APOSMM
  • Running ensembles across multiple systems