ParaMonte  1.5.1
Plain Powerful Parallel Monte Carlo Library
ParaMonte: Plain Powerful Parallel Monte Carlo Library

This is the ParaMonte::Kernel developer documentation website.

What is ParaMonte?

ParaMonte is a serial / parallel library of Monte Carlo routines for sampling mathematical objective functions of arbitrary-dimensions, in particular, the posterior distributions of Bayesian models in data science, Machine Learning, and scientific inference, with the design goal of unifying the

  • automation of Monte Carlo simulations,
  • user-friendliness of the library,
  • accessibility from multiple programming environments,
  • high-performance at runtime, and,
  • scalability across many parallel processors.

ParaMonte project's repository

The ParaMonte library is open-source is permanently located and maintained on GitHub at:

    https://github.com/cdslaborg/paramonte

ParaMonte usage and examples website

For information about the usage and examples visit the ParaMonte documentation and examples website at:

    https://www.cdslab.org/paramonte

ParaMonte API documentation website

For the API developer documentation, visit:

    https://cdslaborg.github.io/paramonte-kernel-doc/html

ParaMonte samplers

The routines currently supported by the ParaMonte kernel library include:

ParaDRAM

Parallel Delayed-Rejection Adaptive Metropolis-Hastings Markov Chain Monte Carlo Sampler. For a quick start, example scripts, and instructions on how to use he ParaDRAM sampler in your language of choice, visit:

    https://www.cdslab.org/paramonte/notes/usage/paradram/interface

Naming conventions

  • The CamelCase naming style is used throughout the entire ParaMonte kernel library.
  • Although the Fortran language is case-insensitive, by convention, all scalar variable names begin with a lower case, whereas all vectors, arrays, types, and module names begin with an upper-case letter.
  • The name of any variable that represents a vector of values is normally suffixed with Vec or Vector, for example: StartPointVec, ...
  • The name of any variable that represents a matrix of values is normally suffixed with Mat, for example: proposalStartCorMat, ...
  • The name of any variable that represents a list of varying-size values is normally suffixed with List, like: variableNameList, ...
  • All static functions or methods of classes begin with a lowercase verb.
  • Significant attempt has been made to end all boolean variables with a passive verb, such that the full variable name virtually forms a proposition, that is, an English-language statement that should be either .true. or .false., set by the user.

ParaMonte: Plain Powerful Parallel Monte Carlo Library  © Copyright 2020, The Computational Data Science Lab