Skip to main content

AI Workflows for Science

Reason this release was yanked:

Unbounded Python requires

Project description



Home    Install    Documentation    Slack Invite    Cray Labs   


License GitHub last commit GitHub deployments GitHub tag (latest by date) Language Code style: black


SmartSim

SmartSim makes it easier to use common Machine Learning (ML) libraries like PyTorch and TensorFlow, in High Performance Computing (HPC) simulations and workloads.

SmartSim provides an API to connect HPC (MPI + X) simulations written in Fortran, C, C++, and Python to an in-memory database called the Orchestrator. The Orchestrator is built on Redis, a popular caching database written in C. This connection between simulation and database is the fundamental paradigm of SmartSim. Simulations in the aforementioned languages can stream data to the Orchestrator and pull the data out in Python for online analysis, visualization, and training.

In addition, the Orchestrator is equipped with ML inference runtimes: PyTorch, TensorFlow, and ONNX. From inside a simulation, users can store and execute trained models and retrieve the result.

Supported ML Libraries

SmartSim 0.3.0 uses Redis 6.0.8 and RedisAI 1.2

Library Supported Version
PyTorch 1.7.0
TensorFlow 1.15.0
ONNX 1.2.0

At this time, PyTorch is the most tested within SmartSim and we recommend users use PyTorch at this time if possible.

SmartSim is made up of two parts

  1. SmartSim Infrastructure Library (This repository)
  2. SmartRedis

SmartSim Infrastructure Library

The Infrastructure Library (IL) helps users get the Orchestrator running on HPC systems. In addition, the IL provides mechanisms for creating, configuring, executing and monitoring HPC workloads. Users can launch everything needed to run converged ML and simulation workloads right from a jupyter notebook using the IL Python interface.

Dependencies

The following third-party (non-Python) libraries are used in the SmartSim IL.

SmartRedis

The SmartSim IL Clients (SmartRedis) are implementations of Redis clients that implement the RedisAI API with additions specific to scientific workflows.

SmartRedis clients are available in Fortran, C, C++, and Python. Users can seamlessly pull and push data from the Orchestrator from different languages.

Language Version/Standard
Python 3.7+
Fortran 2003
C C99
C++ C++11

SmartRedis clients are cluster compatible and work with the OSS Redis/RedisAI stack.

Dependencies

SmartRedis utilizes the following libraries.

Publications

The following are public presentations or publications using SmartSim (more to come!)

Cite

Please use the following citation when referencing SmartSim, SmartRedis, or any SmartSim related work.

Partee et al., “Using Machine Learning at Scale in HPC Simulations with SmartSim: An Application to Ocean Climate Modeling,” arXiv:2104.09355, Apr. 2021, [Online]. Available: http://arxiv.org/abs/2104.09355.

bibtex

```latex
@misc{partee2021using,
      title={Using Machine Learning at Scale in HPC Simulations with SmartSim: An Application to Ocean Climate Modeling},
      author={Sam Partee and Matthew Ellis and Alessandro Rigazzi and Scott Bachman and Gustavo Marques and Andrew Shao and Benjamin Robbins},
      year={2021},
      eprint={2104.09355},
      archivePrefix={arXiv},
      primaryClass={cs.CE}
}
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smartsim-0.3.1.tar.gz (132.0 kB view hashes)

Uploaded Source

Built Distributions

smartsim-0.3.1-cp39-cp39-manylinux2010_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

smartsim-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl (984.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

smartsim-0.3.1-cp38-cp38-manylinux2010_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

smartsim-0.3.1-cp38-cp38-macosx_10_9_x86_64.whl (984.3 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

smartsim-0.3.1-cp37-cp37m-manylinux2010_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

smartsim-0.3.1-cp37-cp37m-macosx_10_9_x86_64.whl (984.3 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page