ParaDRAM: A Cross-Language Toolbox for Parallel High-Performance Delayed-Rejection Adaptive Metropolis Markov Chain Monte Carlo Simulations

08/21/2020
by   Amir Shahmoradi, et al.
0

We present ParaDRAM, a high-performance Parallel Delayed-Rejection Adaptive Metropolis Markov Chain Monte Carlo software for optimization, sampling, and integration of mathematical objective functions encountered in scientific inference. ParaDRAM is currently accessible from several popular programming languages including C/C++, Fortran, MATLAB, Python and is part of the ParaMonte open-source project with the following principal design goals: 1. full automation of Monte Carlo simulations, 2. interoperability of the core library with as many programming languages as possible, thus, providing a unified Application Programming Interface and Monte Carlo simulation environment across all programming languages, 3. high-performance 4. parallelizability and scalability of simulations from personal laptops to supercomputers, 5. virtually zero-dependence on external libraries, 6. fully-deterministic reproducibility of simulations, 7. automatic comprehensive reporting and post-processing of the simulation results. We present and discuss several novel techniques implemented in ParaDRAM to automatically and dynamically ensure the good-mixing and the diminishing-adaptation of the resulting pseudo-Markov chains from ParaDRAM. We also discuss the implementation of an efficient data storage method used in ParaDRAM that reduces the average memory and storage requirements of the algorithm by, a factor of 4 for simple simulation problems, to an order of magnitude and more for sampling complex high-dimensional mathematical objective functions. Finally, we discuss how the design goals of ParaDRAM can help users readily and efficiently solve a variety of machine learning and scientific inference problems on a wide range of computing platforms.

READ FULL TEXT

page 3

page 23

research
09/29/2020

ParaMonte: A high-performance serial/parallel Monte Carlo simulation library for C, C++, Fortran

ParaMonte (standing for Parallel Monte Carlo) is a serial and MPI/Coarra...
research
10/08/2020

MatDRAM: A pure-MATLAB Delayed-Rejection Adaptive Metropolis-Hastings Markov Chain Monte Carlo Sampler

Markov Chain Monte Carlo (MCMC) algorithms are widely used for stochasti...
research
11/07/2018

CARAVAN: a framework for comprehensive simulation

We present a software framework called CARAVAN, which was developed for ...
research
11/07/2018

CARAVAN: a framework for comprehensive simulations on massive parallel machines

We present a software framework called CARAVAN, which was developed for ...
research
01/27/2023

Automatic Alignment in Higher-Order Probabilistic Programming Languages

Probabilistic Programming Languages (PPLs) allow users to encode statist...
research
03/21/2018

A Markov Chain Monte Carlo Approach to Cost Matrix Generation for Scheduling Performance Evaluation

In high performance computing, scheduling of tasks and allocation to mac...
research
03/11/2020

Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages

Probabilistic programming languages (PPLs) make it possible to reason un...

Please sign up or login with your details

Forgot password? Click here to reset