prism

Programming Repository for In Situ Modeling

https://github.com/lanl/prism

Science Score: 62.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    3 of 7 committers (42.9%) from academic institutions
  • Institutional organization owner
    Organization lanl has institutional domain (www.lanl.gov)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Programming Repository for In Situ Modeling

Basic Info
  • Host: GitHub
  • Owner: lanl
  • License: other
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 6.54 MB
Statistics
  • Stars: 2
  • Watchers: 9
  • Forks: 7
  • Open Issues: 0
  • Releases: 1
Created almost 6 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

PRISM

HSVGP Build Status Codecov

Programming Repository for In Situ Modeling

PRISM

The Programming Repository for In Situ Modeling (PRISM) is a set of tools for fitting statistics and machine learning models to simulation data inside the simulations as they are running. By fitting models inside running simulations, PRISM can be used to analyze simulation data that is otherwise inaccessible because of I/O and storage bottlenecks associated with exascale and other future high performance computing architectures. The tools are designed to implement a wide variety of data analyses with an emphasis on spatiotemporal hierarchical Bayesian models. PRISM is efficient, scalable, and streaming with estimation based on variational inference, advanced Monte Carlo techniques, and fast optimization methods. The core modeling components aid this goal by imposing sparsity and approximate inference wherever possible. These components are written in Julia, a high-level programming language designed for high performance. PRISM also contains tools for interfacing with large-scale scientific simulations written in Fortran and C/C++. This layer of abstraction allows the data scientist to construct analysis models in Julia without concern for the implementation details of the simulation capability. With these components, PRISM can be used to unlock the full scientific potential of next-generation HPC simulations.

Description of tools

HSVGP.jl

Package for fitting stochastic, variational, sparse Gaussian process regression for in-situ statistical modeling. This contains implementations of the Hensman 2013 / Hensman 2015 sparse Gaussian process models for general likelihoods with mini-batch optimization, the structure for fitting in a distributed environment, and an implementation of a hierarchical, distributed Gaussian process model.

TributaryPCA.jl

TributaryPCA.jl is a Julia implementation of the AdaOja streaming PCA algorithm in a distributed computing setting with MPI. This contains implementations of online principal components analysis with distributed linear algebra via two routines (partitioned Cholesky decomposition and direct tall-skinny QR decomposition).

Julienne.jl

Julienne.jl is a Julia implementation of streaming linear regression with a modified F-test for online change-point detection. This contains an implementation of Myers et al (2016) “Partitioning a Large Simulation as It Runs” which tests, in a streaming fashion, whether an existing linear fit continues to describe new data or whether a new linear fit would provide a better description.

FastGPEstimation

FastGP estimation is a set of coding tools towards the identification of Gaussian Process hyperparameters using convolutional neural networks and the verification of these parameters using maximum likelihood estimation (using the anisotropic squared kernel). This set of tools also includes code to extract data from E3SM simulation NetCDF outputs.

Helper Functions included in this package

GPCNNRegressor_julia.ipynb

GPCNNRegressor_julia.ipynb is a Julia implementation of a convolutional neural network regression model to identify hyper parameters for a Gaussian distribution.

renderCAMnetCDF.ipynb

renderCAMnetCDF.ipynb is a Python script that takes as input the NetCDF results of an E3SM simulation and converts it into processor-based segments for processing.

gridglobaldata.ipynb

Gridglobaldata.ipynb is a Python script that takes the E3SM output and grids it to a 200 x 100 grid for processing.

FitGP.ipynb

FitGP.ipynb identifies the three hyperparameters, sigma and two correlation lengths for the maximum likelihood estimation given 2D gridded data. Results are saved in paramarddata2.npz.

generateGPfor_ML.ipynb

generateGPfor_ML.ipynb is a helper module to the hyperparameters for a GP.

Owner

  • Name: Los Alamos National Laboratory
  • Login: lanl
  • Kind: organization
  • Email: github-register@lanl.gov
  • Location: Los Alamos, New Mexico, USA

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Lawrence"
  given-names: "Earl"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Urban"
  given-names: "Nathan"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Grosskopf"
  given-names: "Michael"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Klein"
  given-names: "Natalie"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Lui"
  given-names: "Arthur"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Rumsey"
  given-names: "Kelin"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Dutta"
  given-names: "Soumya"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Tang"
  given-names: "Li"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Hazarika"
  given-names: "Subhashis"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Wang"
  given-names: "Yu"
  orcid: "https://orcid.org/0000-0000-0000-0000"
title: "PRISM"
version: 0.2.1
date-released: 2021-08-19
url: "https://github.com/lanl/PRISM"

GitHub Events

Total
Last Year

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 59
  • Total Committers: 7
  • Avg Commits per committer: 8.429
  • Development Distribution Score (DDS): 0.593
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Mike Grosskopf m****s@l****v 24
Earl Lawrence e****l@l****v 11
CompatHelper Julia c****y@j****g 11
Natalie Klein 6****9 7
Arthur Lui l****r@g****m 3
ayanbiswas a****4@g****m 2
dbanesh d****h@p****v 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 1
  • Total pull requests: 16
  • Average time to close issues: 2 months
  • Average time to close pull requests: about 4 hours
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.81
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 11
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • luiarthur (1)
Pull Request Authors
  • github-actions[bot] (11)
  • luiarthur (3)
  • ayanbiswas (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/HSVGP-CI.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • coverallsapp/github-action master composite
  • julia-actions/julia-buildpkg master composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest master composite
  • julia-actions/setup-julia latest composite
.github/workflows/CompatHelper.yml actions