Korali

Korali logo

High-Performance Uncertainty Quantification, Optimization, and DRL

Korali is a high-performance framework for uncertainty quantification, optimization, and deep reinforcement learning. Its engine provides support for large-scale HPC systems and a multi-language interface compatible with distributed computational models.

GitHubTwittercircleci

Download

Latest Release (Build Status): Passed build status

(06/11/2020) Korali v2.0.0 - Download / Release Notes / Documentation

What Korali Does

Optimization

Gradient-free optimization algorithms that enable parallel sampling in HPC systems. Additionally, Korali implements many well-known gradient based optimization algorithms.

Bayesian Uncertainty Quantification

Bayesian inference methods for the inference computational models parameters and their associated uncertainty, based on experimental data. Additionally, it provides multiple likelihood models and prior distributions.

Deep Reinforcement Learning

Deep reinforcement learning algorithms for both discrete and continuous actions spaces. Multiple agents can run in parallel, distributed across different nodes.

Design Principles

High-Performance

The work distribution engine is optimized to fully harness computational resources of large-scale supercomputers, maximizing throughput and minimizing workload imbalance. Furthermore, Korali supports the execution of parallel (OpenMP, Pthreads), distributed (MPI, UPC++), and GPU-based (CUDA) models.

Fault Tolerance

Experiments store their internal state regularly, allowing them to be resumed later in case of errors. The result of a resumed experiment is guaranteed to be exactly the same as one in a single run.

Extensible Engine

The framework is open-source, modular and extensible. Developers can integrate and test new modules which will automatically benefit from its parallel engine and fault-tolerance without additional effort.

Multi-Language Support

The API is compatible with C/C++/Fortran and Python models. Additionally, the engine can sample from pre-compiled computational models.

Publications

Journal / Conference / arXiv Papers

Please use the following article to cite Korali:
  • S. Martin, D. Wälchli, G. Arampatzis, A. E. Economides and P. Karnakov, P. Koumoutsakos, "Korali: Efficient and Scalable Software Framework for Bayesian Uncertainty Quantification and Stochastic Optimization". arXiv 2005.13457. Zürich, Switzerland, March 2021. BibTex @misc{martin2021koral
    title ={Korali: Efficient and Scalable Software Framework for Bayesian Uncertainty Quantification and Stochastic Optimization},
    author = {Sergio M. Martin and Daniel Wälchli and Georgios Arampatzis and Athena E. Economides and Petr Karnakov and Petros Koumoutsakos},
    year = {2021},
    eprint = {2005.13457},
    archivePrefix ={arXiv},
    primaryClass ={cs.DC}
    }
      [PDF]
  • D. Wälchli, S. Martin, A. Economides, L. Amoudruz, G. Arampatzis, X. Bian, P. Koumoutsakos, "Load Balancing in Large Scale Bayesian Inference". Proceedings of the Platform for Advanced Scientific Computing Conference (PASC2020). Geneva, Switzerland, June 2020. BibTex@inproceedings{10.1145/3394277.3401849,
    author = {W\"{a}lchli, Daniel and Martin, Sergio M. and Economides, Athena and Amoudruz, Lucas and Arampatzis, George and Bian, Xin and Koumoutsakos, Petros},
    title = {Load Balancing in Large Scale Bayesian Inference},
    year = {2020},
    isbn = {9781450379939},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3394277.3401849},
    doi = {10.1145/3394277.3401849},
    booktitle = {Proceedings of the Platform for Advanced Scientific Computing Conference},
    articleno = {5},
    numpages = {12},
    keywords = {High Performance Computing, Erythrocyte Membrane Viscosity, Uncertainty Quantification,
    Bayesian Inference, Load Balancing},
    location = {Geneva, Switzerland},
    series = {PASC '20
    }
     [PDF]
  • G. Arampatzis, D. Wälchli, P. Weber, H. Rästas, and P. Koumoutsakos, "(μ, λ)-CCMA-ES for Constrained Optimization with an Application in Pharmacodynamics", Proceedings of the Platform for Advanced Scientific Computing Conference (PASC2019). Zürich, Switzerland, June 2019. BibTex@inproceedings{arampatzis2019,
    author = {Arampatzis, Georgios and W\"{a}lchli, Daniel and Weber, Pascal and R\"{a}stas, Henri and Koumoutsakos, Petros},
    booktitle = {Proceedings of the Platform for Advanced Scientific Computing Conference on - {PASC} {\textquotesingle}19},
    doi = {10.1145/3324989.3325725},
    keywords = {Stochastic optimization, constraint handling, covariance matrix adaptation, evolution strategy, pharmacodynamics, viability evolution},
    publisher = {{ACM} Press},
    title = {(\Μ,{\Lambda})-CCMA-ES for Constrained Optimization with an Application in Pharmacodynamics},
    url = {https://cse-lab.seas.harvard.edu/files/cse-lab/files/arampatzis2019a.pdf},
    year = {2019}
    }
     [PDF]

Publications that used Korali

  • P. Karnakov, G. Arampatzis, I. Kiči ć, F. Wermelinger, D. Wälchli, C. Papadimitriou, P. Koumoutsakos "Data-driven inference of the reproduction number for COVID-19 before and after interventions for 51 European countries". Swiss Medical Weekly. Zürich, Switzerland, July 2020. BibTex@article {Karnakov2020.20313,
    author = {Karnakov, Petr and Arampatzis, Georgios and Ki{\v c}i{\'c}, Ivica and Wermelinger, Fabian and W{\"a}lchli, Daniel and Papadimitriou, Costas and Koumoutsakos, Petros},
    title = {Data-driven inference of the reproduction number for COVID-19 before and after interventions for 51 European countries},
    year = {2020},
    doi = {10.4414/smw.2020.20313},
    publisher = {Swiss Medical Weekly},
    URL = {https://smw.ch/article/doi/smw.2020.20313},
    journal = {Swiss Medical Weekly}}
    }
     [PDF]
  • M. Chatzimanolakis, P. Weber, G. Arampatzis, D. Wälchli, P. Karnakov, I. Kiči ć, C. Papadimitriou, P. Koumoutsakos "Optimal Testing Strategy for the Identification of COVID-19 Infections". medRxiv 2020.07.20.20157818v2. Zürich, Switzerland, July 2020. BibTex@article {Chatzimanolakis2020.07.20.20157818,
    author = {Chatzimanolakis, Michail and Weber, Pascal and Arampatzis, Georgios and W{\"a}lchli, Daniel and Karnakov, Petr and Ki{\v c}i{\'c}, Ivica and Papadimitriou, Costas and Koumoutsakos, Petros},
    title = {Optimal Testing Strategy for the Identification of COVID-19 Infections},
    elocation-id = {2020.07.20.20157818},
    year = {2020},
    doi = {10.1101/2020.07.20.20157818},
    publisher = {Cold Spring Harbor Laboratory Press},
    URL = {https://www.medrxiv.org/content/early/2020/07/27/2020.07.20.20157818},
    eprint = {https://www.medrxiv.org/content/early/2020/07/27/2020.07.20.20157818.ful...},
    journal = {medRxiv}
    }
     [PDF]

Talks, Posters and Lectures

  • S. Martin, Korali Tutorials, Computational Science Zürich's Course on Uncertainty Quantification & Data Analysis in Applied Sciences. (Lecture) Zürich, Switzerland, May 2020. [Part I]  [Part II]
  • S. Martin, Korali, High-performance Framework for Bayesian Uncertainty Quantification and Optimization. (Technical Talk) CSCS Lugano, December 2019. [PDF]
  • G. Arampatzis, Korali, High-performance Multi-Intrusive Bayesian Inference Software For Large-Scale Scientific Models. (Poster), DAEDALUS Winter School, Berlin, December 2019. [PDF]
  • G. Arampatzis, Optimization using Covariance Matrix Adaptation (CMA), (Lecture) ETH Zürich, Spring 2019. [PDF]
  • G. Arampatzis, Transitional Markov Chain Monte Carlo (TMCMC), (Lecture) ETH Zürich, Spring 2019. [PDF]

Contact us

Development Team

  • Sergio Martin
  • Daniel Wälchli
  • George Arampatzis
  • Pascal Weber

Collaborators

  • Ivica Kičić (ETH Zürich)
  • Lucas Amoudruz (ETH Zürich)
  • Susanne Keller (ETH Zürich)
  • Mark Martori (ETH Zürich)

Principal Investigator

Affiliations

CSE Lab logo ETH logo