Uncertainty Quantification, Autonomous Data Acquisition, and HPC Bayesian Optimization
gpCAM is powered by
CAMERA
The Center for Advanced Mathematics for Energy Research Applications
Lawrence Berkeley National Laboratory
gpCAM is primarily a project for HPC stochastic function approximation, uncertainty quantification, (Bayesian) optimization, decision-making under uncertainty, and autonomous experimentation. It is also an API and software designed to make uncertainty quantification, decision-making, and autonomous data acquisition and analysis for experiments and simulations faster, simpler, and more widely available. The tool is based on a flexible and powerful Gaussian process (GP) regression at its core. The flexibility stems from the modular design of gpCAM, which closely follows the mathematical structure of GPs, allowing the user to implement and import their own Python functions to customize and control almost every aspect of the software. That makes it easy to tune the algorithm to account for various kinds of physics and other domain knowledge, perform UQ on arbitrary domains, and identify and find interesting features and functional characteristics. A specialized methodology embedded in gpCAM, called gp2Scale, enables exact GP inference on millions of data points.
Main Developer: Marcus Noack (MarcusNoack@lbl.gov)
This code was developed with help from Ron Pandolfi (LBNL), Mark Risser (LBNL), Hengrui Luo (Rice U.), and Vardaan Tekriwal (UCB).
Additional contributions and insights came from across the community, in particular, Kevin Yager, Masafumi Fukuto, and their teams (Brookhaven National Lab).
We acknowledge support from several DOE ASCR, BER, and BES projects, including CAMERA (James Sethian, Jeff Donatelli), SPECTRA (Sherry Li), and CASCADE (Bill Collins), as well as support directly from Lawrence Berkeley National Laboratory.
This package uses the HGDL package of David Perryman and Marcus Noack, which is based on the HGDN algorithm by Noack and Funke.
The API is designed to make it easy to use and allows endless customization.
gpCAM is implemented using torch and DASK for fast training and predictions on distributed compute architecture
gpCAM allows the advanced user to import their own Python functions to control the training and predictions.
gpCAM offers basic functionality for novices and unlimited expansion capabilities for experts and advanced applications.
Contact MarcusNoack@lbl.gov to get more information on the project. We also encourage you to join the SLACK channel.