{"id":15716393,"url":"https://github.com/cdslaborg/paramonte","last_synced_at":"2025-04-04T16:16:30.716Z","repository":{"id":37269460,"uuid":"238326708","full_name":"cdslaborg/paramonte","owner":"cdslaborg","description":"ParaMonte: Parallel Monte Carlo and Machine Learning Library for Python, MATLAB, Fortran, C++, C.","archived":false,"fork":false,"pushed_at":"2024-05-20T06:02:02.000Z","size":55150,"stargazers_count":243,"open_issues_count":16,"forks_count":31,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-05-20T07:53:01.008Z","etag":null,"topics":["adaptive-learning","bayesian-inference","bayesian-statistics","c","cpp","fortran","machine-learning","machine-learning-algorithms","machine-learning-library","markov-chain","matlab","mcmc","monte-carlo","monte-carlo-simulations","mpi","numerical-integration","openmp","python","sampling"],"latest_commit_sha":null,"homepage":"https://www.cdslab.org/paramonte","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdslaborg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.MIT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-04T23:16:39.000Z","updated_at":"2024-05-27T19:10:54.989Z","dependencies_parsed_at":"2024-04-08T09:40:04.137Z","dependency_job_id":"d9af1a92-b390-4a2a-b82c-ce4d9dab0e14","html_url":"https://github.com/cdslaborg/paramonte","commit_stats":{"total_commits":1588,"total_committers":6,"mean_commits":264.6666666666667,"dds":0.03148614609571787,"last_synced_commit":"08b5ee74e1dc9045fca8fd7d94e3bbc979a3c425"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdslaborg%2Fparamonte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdslaborg%2Fparamonte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdslaborg%2Fparamonte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdslaborg%2Fparamonte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdslaborg","download_url":"https://codeload.github.com/cdslaborg/paramonte/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208183,"owners_count":20901570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive-learning","bayesian-inference","bayesian-statistics","c","cpp","fortran","machine-learning","machine-learning-algorithms","machine-learning-library","markov-chain","matlab","mcmc","monte-carlo","monte-carlo-simulations","mpi","numerical-integration","openmp","python","sampling"],"created_at":"2024-10-03T21:45:25.393Z","updated_at":"2025-04-04T16:16:30.679Z","avatar_url":"https://github.com/cdslaborg.png","language":"Fortran","readme":"\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://www.cdslab.org/paramonte\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://github.com/cdslaborg/paramonte/blob/main/img/paramonte.png\" alt=\"ParaMonte: Parallel Monte Carlo and Machine Learning Library\" style=\"width:500px;height:500px;\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/releases\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/release-date/cdslaborg/paramonte?color=orange\u0026style=flat-square\" alt=\"GitHub Release Date\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/releases\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/cdslaborg/paramonte?color=purple\u0026label=release%20version\u0026style=flat-square\" alt=\"GitHub release (latest by date)\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/paramonte/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/paramonte?color=orange\u0026label=pypi%20release\u0026style=flat-square\" alt=\"PyPI - release version\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/releases\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/pypi/status/paramonte?style=flat-square\" alt=\"PyPI - Status\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.cdslab.org/paramonte/codecov/fortran/2/serial/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Fortran%20code%20coverage-serial%20:%2077.0%25-brightgreen?style=flat-square\" alt=\"Fortran code coverage - serial\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/issues\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/cdslaborg/paramonte?style=flat-square\" alt=\"GitHub issues\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/tree/main/src\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/available%20in-C%20%2F%20C%2B%2B%20%2F%20Fortran%20%2F%20MATLAB%20%2F%20Python-brightgreen?style=flat-square\" alt=\"supported languages\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.openhub.net/p/paramonte\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Open%20Hub-stats?color=brightgreen\u0026label=stats\u0026message=Open%20Hub\u0026style=flat-square\" alt=\"stats - Open Hub\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/graphs/traffic\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/cdslaborg/paramonte/total?color=brightgreen\u0026label=GitHub%20downloads\u0026style=flat-square\" alt=\"GitHub All Releases\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://libraries.io/pypi/paramonte\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/pypi/dm/paramonte?color=brightgreen\u0026label=PyPI%20downloads\u0026style=flat-square\" alt=\"PyPI - Downloads\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://pypistats.org/packages/paramonte\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/stats-green?style=flat-square\u0026label=PyPI\u0026labelColor=grey\u0026color=brightgreen\" alt=\"PyPI stats\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.mathworks.com/matlabcentral/fileexchange/78946-paramonte\" target=\"_blank\"\u003e\u003cimg src=\"https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg\" alt=\"View ParaMonte on File Exchange\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/repo-size/cdslaborg/paramonte?style=flat-square\" alt=\"GitHub repo size\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/tree/main/src\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/languages/count/cdslaborg/paramonte?style=flat-square\" alt=\"GitHub language count\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/graphs/contributors\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/commit-activity/y/cdslaborg/paramonte?style=flat-square\" alt=\"GitHub commit activity\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cdslaborg/paramonte/commits/main\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/cdslaborg/paramonte?color=blue\u0026style=flat-square\" alt=\"GitHub last commit\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://zenodo.org/record/4076479#.X4Stte17ng4\" target=\"_blank\"\u003e\u003cimg src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.4076479.svg\" alt=\"citations and references\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.cdslab.org/paramonte/generic/latest/overview/preface/#how-to-acknowledge-the-use-of-the-paramonte-library-in-your-work\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/reference-%20%09arXiv%3A1209.4647-blueviolet?style=flat-square\" alt=\"citations and references\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://ascl.net/2008.016\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/ascl-2008.016-blue.svg?colorB=262255\" alt=\"ascl:2008.016\" /\u003e\u003c/a\u003e\n\u003ca style=\"border-width:0\" href=\"https://doi.org/10.21105/joss.02741\"\u003e\u003cimg src=\"https://joss.theoj.org/papers/10.21105/joss.02741/status.svg?style=flat-square\" alt=\"DOI badge\" \u003e\u003c/a\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003ca href=\"https://twitter.com/intent/tweet?text=ParaMonte%20-%20Plain%20Powerfull%20Parallel%20Monte%20Carlo%20Library:\u0026url=https%3A%2F%2Fgithub.com%2Fcdslaborg%2Fparamonte\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Fgithub.com%2Fcdslaborg%2Fparamonte\" alt=\"Twitter\" /\u003e\u003c/a\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003ca href=\"#paramonte-plain-powerful-parallel-monte-carlo-library\"\u003eOverview\u003c/a\u003e |\n\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e |\n\u003ca href=\"#dependencies\"\u003eDependencies\u003c/a\u003e |\n\u003ca href=\"#parallelism\"\u003eParallelism\u003c/a\u003e |\n\u003ca href=\"#example-usage-instructions\"\u003eExamples\u003c/a\u003e |\n\u003ca href=\"#citing-paramonte\"\u003eAcknowledgments\u003c/a\u003e |\n\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e |\n\u003ca href=\"#authors-and-contributors\"\u003eAuthors\u003c/a\u003e\n\u003c/div\u003e\n\nParaMonte: Parallel Monte Carlo and Machine Learning  \n====================================================  \n\nParaMonte is a serial/parallel library of Monte Carlo routines for sampling mathematical density functions of arbitrary dimensions and \nMachine Learning (ML) algorithms for scientific inference, with the design goal of unifying **automation** (of simulations and tasks), \n**user-friendliness** (of algorithms), **accessibility** (from any platform or programming environment), \n**high-performance** (at runtime), and **scalability** (across many parallel processors).  \n\nFor more information on the installation, usage, and examples, visit https://www.cdslab.org/paramonte  \n\nParaMonte Design Goals  \n======================  \n\nParaMonte has been developed while bearing the following design goals in mind:  \n\n-   **Full automation** of Monte Carlo and Machine Learning simulations as much as possible to ensure user-friendliness \n    of the library and minimal time investment requirements for building, running, and post-processing simulation models. \n\n-   **Interoperability** of the core library with as many programming languages as currently possible, \n    including C, C++, Fortran, MATLAB, and Python, with ongoing efforts to support other popular programming languages.  \n\n-   **High-Performance** meticulously-low-level library implementation to ensure the fastest-possible inferences.  \n\n-   **Parallelizability** of all simulations via shared-memory OpenMP threads and two-sided and one-sided \n    MPI/Coarray distributed communications while requiring zero-parallel-coding efforts by the user.  \n\n-   **Zero-dependence** on external libraries to ensure hassle-free ParaMonte library builds and ParaMonte simulation runs.  \n\n-   **Fully-deterministic reproducibility** and automatically-enabled restart functionality \n    for all simulations with arbitrary digits of precision as requested by the user.  \n\n-   **Comprehensive reporting and post-processing** of simulations and ML tasks, as well as their automatic storage in \n    external files to ensure the simulation results will be understandable and reproducible at any time in the foreseeable future.  \n\n\nQuick Start\n===========\n\n+   Follow the quick start instructions in this [QUICKSTART.md](https://github.com/cdslaborg/paramonte/blob/main/QUICKSTART.md) file. \n+   For programming languages other than C, C++, Fortran, see the quick start section of the README.md file in the corresponding \n    language's source subfolder in the [src folder](https://github.com/cdslaborg/paramonte/src) in the root directory of the ParaMonte repository.\n\n\nInstallation  \n============  \n\n\nThe prebuilt, ready-to-use libraries are available on \n[the release page of the ParaMonte library on GitHub](https://github.com/cdslaborg/paramonte/releases).  \nEach prebuilt ParaMonte library automatically ships with a full-fledged set of example codes and build scripts.  \n\nAlternatively, you can build the library from the source \nin the project's [GitHub repository](https://github.com/cdslaborg/paramonte).  \nThe ParaMonte library installation/build process is fully automated for all supported programming languages.  \nCurrently, the following compiler suites are supported **for builds from source**,  \n\n| Compiler Suite                    | Windows (amd64) | Linux (amd64) | macOS (amd64) | macOS (arm64) |  \n|----------------------------------:|:---------------:|:-------------:|:-------------:|:-------------:|  \n| GNU Compiler Collection \u003e= 10.3   | ✅              | ✅            | ✅             | ✅            |  \n| Intel OneAPI \u003e= 2021.8.0          | ✅              | ✅            | ✅             | ❌            |  \n\nwith the following essential build systems,\n\n| Dependency                        | Windows (amd64) | Linux (amd64) | macOS (amd64) | macOS (arm64) |  \n|----------------------------------:|:---------------:|:-------------:|:-------------:|:-------------:|  \n| CMake \u003e= 3.21                     | ✅              | ✅            | ✅             | ✅            |  \n\n+   Read the [`install.md` installation instruction notes](install.md) \n    to learn about the library's optional build configurations.  \n+   For a quickstart in the programming language of your choice, \n    visit the [ParaMonte library homepage](https://www.cdslab.org/paramonte).  \n\n\nDependencies\n============\n\nAside from an optional MPI runtime library for MPI-parallel simulations, \nthe ParaMonte library core has **zero dependency** on external third-party libraries or packages.  \n\n\n\nParallelism\n===========\n\nThe ParaMonte library relies on three independent parallelism paradigms for parallel applications:  \n\n1.  The Coarray parallelism (only available for select routines in the Fortran programming language).  \n2.  The Message Passing Interface (MPI) standard for inter-processor distributed parallelism.  \n    +   On **Windows** and **Linux** operating systems, we highly recommend downloading and \n        installing the [Intel MPI runtime libraries](https://software.intel.com/en-us/mpi-library), \n        which is available to the public free of charge.  \n        The [ParaMonte auxil prerelease](https://github.com/cdslaborg/paramonte/releases/tag/auxil)\n        exclusively contains the optional Intel MPI runtime libraries for users' convenience.  \n        The Intel MPI requires the ParaMonte library to be (or have been prebuilt) using the Intel compilers.  \n    +   On **macOS** (where Intel MPI is unavailable) and **Linux** operating systems, users can install\n        either [Open-MPI](https://www.open-mpi.org/) or [MPICH](https://www.mpich.org/) MPI runtime \n        libraries depending on the prebuilt version of the ParaMonte library that you have \n        downloaded or the configuration with which you intend to build the library.  \n\n**Optional Dependency Compatibility**  \n\n| Dependency                        | Windows (amd64) | Linux (amd64) | macOS (amd64) | macOS (arm64) |  \n|----------------------------------:|:---------------:|:-------------:|:-------------:|:-------------:|  \n| Intel MPI (IMPI) \u003e= 2021.8        | ✅              | ✅            | ✅             | ❌            |  \n| MPICH MPI (MMPI) \u003e= 3             | ❌              | ✅            | ✅             | ✅            |  \n| OpenMPI (OMPI) \u003e= 4               | ❌              | ✅            | ✅             | ✅            |  \n\nRead the [`install.md` installation instruction notes](install.md) to \nlearn more about the library's optional parallel build configurations.\u003cbr\u003e\n\nFor more information, visit [https://www.cdslab.org/paramonte/](https://www.cdslab.org/paramonte/).\n\n\nExample Usage Instructions\n==========================\n\n+   The best way to get started with example usage is to build the language-specific library examples.  \n    The library example build and run scripts are automatically generated for each ParaMonte build and \n    are automatically stored in the output installation directory of the build.\n\n+   For complete, organized, up-to-date instructions, visit: [cdslab.org/pm](https://www.cdslab.org/paramonte)\n\n+   For a quick look into *language-specific* README.md instructions, visit:\n    +   **C**: [https://github.com/cdslaborg/paramonte/tree/main/src/c](https://github.com/cdslaborg/paramonte/tree/main/src/c)\n    +   **C++**: [https://github.com/cdslaborg/paramonte/tree/main/src/cpp](https://github.com/cdslaborg/paramonte/tree/main/src/cpp)\n    +   **Fortran**: [https://github.com/cdslaborg/paramonte/tree/main/src/fortran](https://github.com/cdslaborg/paramonte/tree/main/src/fortran)\n    +   **MATLAB**: [https://github.com/cdslaborg/paramonte/tree/main/src/matlab](https://github.com/cdslaborg/paramonte/tree/main/src/matlab)\n\n+   The ParaMonte library for Python is currently undergoing internal testing before their impending release. \n    For now, the previous versions (1) of the ParaMonte Python libraries can be downloaded and used from the previous \n    library major release on [GitHub Release Page](https://github.com/cdslaborg/paramonte/releases/tag/v1.5.1).\n\n\nCiting ParaMonte\n================\n\nThe ParaMonte library is an honor-ware and its currency is acknowledgment and citations. \n\nIf you use ParaMonte or any ideas from this software, please acknowledge it by citing the ParaMonte library's \nmain publications as listed in [ACKNOWLEDGMENT.md](https://github.com/cdslaborg/paramonte/blob/main/ACKNOWLEDGMENT.md).  \n\nVisit [the ParaMonte library homepage](https://www.cdslab.org/paramonte/generic/latest/overview/preface/#how-to-acknowledge-the-use-of-the-paramonte-library-in-your-work)\nto access the PDF version of these files free of charge.  \n\n\nLicense\n=======\n\nThe majority of the ParaMonte library routines are distributed under the permissive \n[MIT License](LICENSE.md) plus acknowledgments that are detailed in [LICENSE.md](./LICENSE.md).  \n\nHowever, there are occasionally modernized and extended routines from external projects, particularly within the ParaMonte Fortran library. \nThese routines may have a license that does not fully overlap with the default ParaMonte library license [LICENSE.md](./LICENSE.md). \nIn such cases, the documentation and source code of the specific routine explicitly list the original license information. \n\nThis is free software, so help us keep it freely available to the public by acknowledging the usage and contributing to it. \nIf you have questions or concerns about the license, please get in touch with the project's lead (shahmoradi@utexas.edu). \n\n\nAuthors and Contributors\n========================\n\n+   [Amir Shahmoradi](https://www.cdslab.org/people/#amir-shahmoradi)\n    +   Astrophysicist/bioinformatician by training,\n    +   Ph.D. in computational physics/bioinformatics, The University of Texas at Austin,\n    +   Currently a faculty member of the Data Science and Physics programs at UT Arlington,\n    +   Contact: [shahmoradi@utexas.edu](mailto:\"shahmoradi@utexas.edu\")\n\n+   [Fatemeh Bagheri](https://www.linkedin.com/in/fbagheri)\n    +   PhD in Astronomy,\n    +   PhD in Space Physics,\n    +   Deep philosophical thinker,\n    +   Currently at NASA Goddard Space Flight Center,\n    +   Contact: [bagheri.fateme@gmail.com](mailto:\"bagheri.fateme@gmail.com\")\n\n+   [Joshua Osborne](https://www.cdslab.org/people/#joshua-alexander-osborne)\n    +   Physicist / computational data scientist by training,\n    +   Currently a Physics PhD candidate at UT Arlington,\n    +   Contact: [joshuaalexanderosborne@gmail.com](mailto:\"joshuaalexanderosborne@gmail.com\")\n\n\nContributing to ParaMonte\n=========================\n\nPlease read the generic contribution guidelines listed in [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n\n**For more information**, visit [cdslab.org/pm](https://www.cdslab.org/paramonte) or contact Amir Shahmoradi: [shahmoradi@utexas.edu](mailto:\"shahmoradi@utexas.edu\")\n","funding_links":[],"categories":["C++"],"sub_categories":["[Tools](#tools-1)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdslaborg%2Fparamonte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdslaborg%2Fparamonte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdslaborg%2Fparamonte/lists"}