What is ParaMonte?

ParaMonte is a serial/parallel library of Monte Carlo routines for sampling mathematical density functions of arbitrary dimensions and Machine Learning (ML) algorithms for scientific inference, with the design goal of unifying

  • automation (of simulations and tasks),
  • user-friendliness (of algorithms),
  • accessibility (from any platform or programming environment),
  • high-performance (at runtime), and
  • scalability (across many parallel processors).

Where is ParaMonte maintained?

ParaMonte is maintained on GitHub: https://github.com/cdslaborg/paramonte/

What are the origins of ParaMonte?

The Parallel Monte Carlo library (hence named ParaMonte) grew out of the need for free, readily accessible, user-friendly, unified, robust, high-performance parallel software for stochastic optimization, sampling, and integration problems in scientific inference and Data Science applications. This project started in 2010 to aid the research goals of the primary author of the package in the field of High Energy Astrophysics and Bioinformatics. It remained in private usage until 2018, when we decided to release the package as an open-source project for public usage and contributions. The first major release of the library achieved precisely the goals mentioned above. The most recent release 2 of the library, expands the library’s scope beyond Monte Carlo simulations to scientific machine learning.

What are ParaMonte’s design goals?

Since this project’s inception, many new Monte Carlo and ML packages and programming environments (in particular, in high-level languages) have been developed. What likely makes the ParaMonte library unique among other existing packages is the following set of design goals and features:

  • Full automation of all Monte Carlo simulations to the highest levels possible to ensure the highest level of user-friendliness of the library and minimal time investment requirements for building, running, and post-processing simulation models.
  • Interoperability of the core library with as many programming languages as possible, including C/C++, Fortran, MATLAB, and Python, with ongoing efforts to support other popular programming languages.
  • High-Performance meticulously low-level library implementation to ensure the fastest possible Monte Carlo simulations.
  • Parallelizability of all simulations via two-sided/one-sided MPI/Coarray communications while requiring zero-parallel-coding efforts from the user.
  • Virtually zero-dependence of ParaMonte::Kernel on external libraries to ensure hassle-free ParaMonte library builds and Monte Carlo simulations.
  • Fully deterministic reproducibility and automatically enabled restart functionality for all simulations up to 16 digits of precision, as requested by the user.
  • Comprehensive reporting and post-processing of each simulation and its results, as well as their automatic storage in external files, to ensure the results will be understandable and reproducible anytime in the distant future.

Who are the ParaMonte authors and developers?

In chronological order,

  • Amir Shahmoradi (Contributions: ParaMonte kernel routines + C/C++/Fortran/MATLAB/Python interfaces)
    • astrophysicist/bioinformatician by training (and a science-lover in general),
    • Ph.D. in computational physics/bioinformatics from the University of Texas at Austin,
    • currently a faculty member of Physics and Data Science at The University of Texas at Arlington,
    • with teaching/research experience/background in computational and data sciences, statistics, data analysis and modeling, stochastic processes, Monte Carlo Methods, Bayesian probability theory, high energy physics, astronomy and astrophysics, computational physics, Molecular Dynamics simulations, biomedical science and MRI data analysis, bioinformatics and evolutionary biology (viral evolution, protein dynamics and interactions),
    • contact: shahmoradi@utexas.edu or https://www.cdslab.org
  • Fatemeh Bagheri (Contributions: ParaMonte kernel routines + Python interface)
    • physicist/cosmologist by training,
    • currently a UTA Physics member,
    • deep philosophical thinker,
    • contact: Fatemeh.Bagheri@uta.edu
  • Shashank Kumbhare (Contributions: ParaMonte MATLAB interface)
  • Joshua Alexander Osborne (Contributions: ParaMonte Python interface)

How to acknowledge the use of the ParaMonte library in your work?

The ParaMonte library is an honor-ware and its currency is acknowledgment and citations.

If you use ParaMonte, please acknowledge it by citing the ParaMonte library’s main publications as listed here:

The ParaMonte Python library

  • Amir Shahmoradi, Fatemeh Bagheri, Joshua Alexander Osborne (2020). Fast fully-reproducible streamlined serial/parallel Monte Carlo/MCMC simulations and visualizations via ParaMonte Python library.. Journal of Open Source Software (JOSS), to be submitted, PDF link.
    BibTeX citation entries:
        
    @article{2020arXiv201000724S,
           author = { {Shahmoradi}, Amir and {Bagheri}, Fatemeh and {Osborne}, Joshua Alexand
            er},
            title = "{Fast fully-reproducible serial/parallel Monte Carlo and MCMC simulations and visualizations via ParaMonte Python library}",
          journal = {arXiv e-prints},
         keywords = {Computer Science - Mathematical Software, Astrophysics - Instrumentation and Methods for Astrophysics, Quantitative Biology - Quantitative Methods, Statistics - Machine Learning},
             year = 2020,
            month = oct,
              eid = {arXiv:2010.00724},
            pages = {arXiv:2010.00724},
    archivePrefix = {arXiv},
           eprint = {2010.00724},
     primaryClass = {cs.MS},
           adsurl = {https://ui.adsabs.harvard.edu/abs/2020arXiv201000724S},
          adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
        
    

The ParaMonte C/C++/Fortran library

  • Amir Shahmoradi, Fatemeh Bagheri (2020). ParaMonte: A high-performance serial/parallel Monte Carlo simulation library for C, C++, Fortran. Journal of Open Source Software (JOSS), submitted, PDF link.
    BibTeX citation entries:
        
    @article{2020arXiv200914229S,
           author = { {Shahmoradi}, Amir and {Bagheri}, Fatemeh},
            title = "{ParaMonte: A high-performance serial/parallel Monte Carlo simulation library for C, C++, Fortran}",
          journal = {arXiv e-prints},
         keywords = {Computer Science - Mathematical Software, Astrophysics - Instrumentation and Methods for Astrophysics, Physics - Data Analysis, Statistics and Probability, Quantitative Biology - Quantitative Methods, Statistics - Machine Learning},
             year = 2020,
            month = sep,
              eid = {arXiv:2009.14229},
            pages = {arXiv:2009.14229},
    archivePrefix = {arXiv},
           eprint = {2009.14229},
     primaryClass = {cs.MS},
           adsurl = {https://ui.adsabs.harvard.edu/abs/2020arXiv200914229S},
          adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
        
    

The ParaDRAM sampler

  • Amir Shahmoradi, Fatemeh Bagheri (2020). ParaDRAM: A Cross-Language Toolbox for Parallel High-Performance Delayed-Rejection Adaptive Metropolis Markov Chain Monte Carlo Simulations. Journal of Computer Methods in Applied Mechanics and Engineering (CMAME), submitted, PDF link.
    BibTeX citation entries:
            
        @article{2020arXiv200809589S,
                   author = { {Shahmoradi}, Amir and {Bagheri}, Fatemeh},
                    title = "{ParaDRAM: A Cross-Language Toolbox for Parallel High-Performance Delayed-Rejection Adaptive Metropolis Markov Chain Monte Carlo Simulations}",
                  journal = {arXiv e-prints},
                 keywords = {Computer Science - Computational Engineering, Finance, and Science, Astrophysics - Instrumentation and Methods for Astrophysics, Physics - Data Analysis, Statistics and Probability, Statistics - Computation, Statistics - Machine Learning},
                     year = 2020,
                    month = aug,
                      eid = {arXiv:2008.09589},
                    pages = {arXiv:2008.09589},
            archivePrefix = {arXiv},
                   eprint = {2008.09589},
             primaryClass = {cs.CE},
                   adsurl = {https://ui.adsabs.harvard.edu/abs/2020arXiv200809589S},
                  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
        }
            
    

The ParaMonte MatDRAM MATLAB library

  • Shashank Kumbhare, Amir Shahmoradi (2020). MatDRAM: A pure-MATLAB Delayed-Rejection Adaptive Metropolis-Hastings Markov Chain Monte Carlo Sampler. Journal of Computer Physics Communications (CPC), submitted, PDF link.
    BibTeX citation entries:
            
        @article{2020arXiv201004190K,
                   author = { {Kumbhare}, Shashank and {Shahmoradi}, Amir},
                    title = "{MatDRAM: A pure-MATLAB Delayed-Rejection Adaptive Metropolis-Hastings Markov Chain Monte Carlo Sampler}",
                  journal = {arXiv e-prints},
                 keywords = {Physics - Data Analysis, Statistics and Probability, Astrophysics - Instrumentation and Methods for Astrophysics, Computer Science - Computational Engineering, Finance, and Science, Quantitative Biology - Quantitative Methods, Statistics - Applications},
                     year = 2020,
                    month = oct,
                      eid = {arXiv:2010.04190},
                    pages = {arXiv:2010.04190},
            archivePrefix = {arXiv},
                   eprint = {2010.04190},
             primaryClass = {physics.data-an},
                   adsurl = {https://ui.adsabs.harvard.edu/abs/2020arXiv201004190K},
                  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
        }
    
    


For more information, visit the ParaMonte library homepage.


If you have any questions about the topics discussed on this page, feel free to ask in the comment section below, or raise an issue on the GitHub page of the library, or reach out to the ParaMonte library authors.