2 research outputs found
Recommended from our members
ParaMonte: An Efficient Serial/Parallel MCMC Library
The scientific inference is a multistep process requiring observational data from which a model/hypothesis is derived. The parameters of this physical model then have to be tuned to more accurately represent data in a process known as model calibration. This calibrated model is then validated and is finally used to predict different quantities of interest. The most fundamental tool for model calibration and uncertainty quantification is the Markov Chain Monte Carlo (MCMC). While existing packages achieve many of the goals of the MCMC simulations, none currently addresses all critical aspects of an MCMC simulation. For instance, packages are frequently limited to only one programming language environment, perform serial or parallel simulations, or lack restart functionality. We present ParaMonte, a generic user-friendly, high- performance Monte Carlo simulation toolbox for serial and parallel Monte Carlo simulations accessible from multiple programming languages. ParaMonte features automatically-enabled restart functionality of all simulations in serial or parallel and comprehensive post-processing and visualization of the simulation results. This package is available to the public under the MIT license from its permanent repository: https://github.com/cdslaborg/paramont
Recommended from our members
ParaMonte: A High-Performance Serial/Parallel Monte Carlo and MCMC Library for Python, MATLAB, R, Fortran, C++, and C
Predictive science is a multilevel process requiring observational data and a model/hypothesis which will have to be calibrated and validated to eventually predict the quantity of interest. For decades, Monte Carlo simulations have been the primary method for model calibration. Here we present and discuss a collection of popular and powerful Monte Carlo techniques that can aid inference and uncertainty quantification in Machine learning and Bayesian problems that have both serial and parallel implementations within our package, ParaMonte. The primary focus in the development of ParaMonte has been on user-friendliness, accessibility from different programming languages and platforms, high-performance, parallelism and scalability, as well as reproducibility and comprehensive post-processing and visualization of the simulation results. Users can simply pass a user-made objective function to the samplers and upon completion, a series of files will be generated for comprehensive-reporting and post-processing of each simulation and its results. Automatic restart functionality is the core feature of all ParaMonte samplers and simulations. Other than the optional MPI runtime library for parallel simulations, the ParaMonte kernel is completely self-contained, having zero dependencies upon external third-party libraries or packages. The MIT-licensed ParaMonte library is currently accessible from Python, MATLAB, R, Fortran, C++, and C programming languages and is permanently located at https://github.com/cdslaborg/paramonte