  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.
