MADS (Model Analysis & Decision Support)
MADS is an integrated high-performance computational framework for data/model/decision analyses.
MADS can be applied to perform:
- Sensitivity Analysis
- Parameter Estimation
- Model Inversion and Calibration
- Uncertainty Quantification
- Model Selection and Averaging
- Model Reduction and Surrogate Modeling
- Machine Learning (e.g., Blind Source Separation, Source Identification, Feature Extraction, Matrix / Tensor Factorization, etc.)
- Decision Analysis and Support
MADS has been tested and verified extensively.
MADS can efficiently utilize available computational resources.
MADS utilizes adaptive rules and techniques which allow the analyses to be performed efficiently with minimum user input.
MADS provides a series of alternative algorithms to execute various types of data-based and model-based analyses.
Documentation
Detailed documentation including description of all MADS modules and functions is available at GitHub, ReadtheDocs and LANL sites.
See also mads.gitlab.io and madsjulia.github.io
Detailed model diagnostics problem is demonstrated here
Installation
After starting Julia, execute in the REPL:
import Pkg; Pkg.add("Mads")
to access the latest released version.
To utilize the latest updates (commits) use:
import Pkg; Pkg.add(Pkg.PackageSpec(name="Mads", rev="master"))
Docker
docker run --interactive --tty montyvesselinov/madsjulia
Testing
Execute:
import Mads; Mads.test()
or
import Pkg; Pkg.test("Mads")
Examples
To explore getting-started instructions, execute:
import Mads; Mads.help()
Various examples located in the examples
directory of the Mads
repository.
To run some of these examples, execute:
include(Mads.dir * "/../examples/contamination/contamination.jl")
to perform various example analyses related to groundwater contaminant transport, or execute
include(Mads.dir * "/../examples/bigdt/bigdt.jl")
to perform Bayesian Information Gap Decision Theory (BIG-DT) analysis.
Installation behind a firewall
Set proxies executing the following lines in the bash command-line environment:
export ftp_proxy=http://proxyout.<your_site>:8080
export rsync_proxy=http://proxyout.<your_site>:8080
export http_proxy=http://proxyout.<your_site>:8080
export https_proxy=http://proxyout.<your_site>:8080
export no_proxy=.<your_site>
For example, at LANL, you will need to execute the following lines in the bash command-line environment:
export ftp_proxy=http://proxyout.lanl.gov:8080
export rsync_proxy=http://proxyout.lanl.gov:8080
export http_proxy=http://proxyout.lanl.gov:8080
export https_proxy=http://proxyout.lanl.gov:8080
export no_proxy=.lanl.gov
Proxies can be setup directly in the Julia REPL as well:
ENV["ftp_proxy"] = "http://proxyout.lanl.gov:8080"
ENV["rsync_proxy"] = "http://proxyout.lanl.gov:8080"
ENV["http_proxy"] = "http://proxyout.lanl.gov:8080"
ENV["https_proxy"] = "http://proxyout.lanl.gov:8080"
ENV["no_proxy"] = ".lanl.gov"
Julia uses git for package management.
In some cases, you may need to add in the .gitconfig
file in your home directory the following lines to support git behind a firewall:
[url "git@github.com:"]
insteadOf = https://github.com/
[url "git@gitlab.com:"]
insteadOf = https://gitlab.com/
[url "https://"]
insteadOf = git://
[url "http://"]
insteadOf = git://
or execute:
git config --global url."https://".insteadOf git://
git config --global url."http://".insteadOf git://
git config --global url."git@gitlab.com:".insteadOf https://gitlab.com/
git config --global url."git@github.com:".insteadOf https://github.com/
Related Julia Packages
- SmartTensors: Unsupervised and Physics-Informed Machine Learning based on Matrix/Tensor Factorization
- RegAE: Regularization with a variational autoencoder for inverse analysis
- Geostatistical Inversion with randomized + sketching optimization