A tool for creating and deploying computational experiments
Project description
ST4SD Runtime Core
This repository contains the runtime-core of the Simulation Toolkit for Scientific Discovery (ST4SD). The ST4SD-Runtime is a python framework, and associated services, for creating and deploying virtual-experiments - data-flows which embody the measurement of properties of systems.
A data-flow is a workflow which allows consumers to run concurrently with their producers if desired.
Developers describe their data-flows using a YAML configuration file, which is interpreted and executed by the ST4SD-Runtime.
ST4SD-Runtime supports multiple execution-backends including Kubernetes and LSF and a single YAML file can support multiple-archs and multiple run-modes via overlays.
The ST4SD-Runtime also interacts with the ST4SD-Datastore, a database which allows querying of executed virtual-experiments and retrieval of their data.
There are three parts to the ST4SD-Runtime
st4sd-runtime-core
: The core python framework (this git repository) for describing and executing virtual experimentsst4sd-runtime-k8s
: Extensions which enable to running and managing virtual-experiments on k8s clustersst4sd-runtime-service
: A RESTapi based service allowing users to add, start, stop and query virtual-experiments
Features
- Cross-platform data-flows
- Supports multiple backends (LSF, OpenShift/Kubernetes, local)
- Abstracts differences between backends allowing a single component description to be used
- Variables can be used to encapsulate platform specific options
- Can define component and platform specific environments
- Co-processing model
- Consumers can be configured to run repeatedly while their producers are alive
- Simple to replicate workflow sub-graphs over sets of inputs
- Supports
do-while
constructs - Handles task persistence across backend allocation windows and allows user customisable restarts
- Deploy workflows directly from github (Kubernetes stack)
- Store and retrieve data and metadata from st4sd-datastore
Lightning Start
If you have
python3
withvirtualenv
- Have
ssh
access to GitHub set up
The following snippet will install st4sd-runtime-core
and run a toy-workflow on your laptop
virtualenv -p python3 $HOME/st4sd-runtime-test
source $HOME/st4sd-runtime-test/bin/activate
pip install st4sd-runtime-core[deploy]
git clone http://github.com/st4sd/sum-numbers.git
elaunch.py --nostamp -l40 sum-numbers
This will create a new virtualenv called st4sd-runtime-test
at $HOME/st4sd-runtime-test
and install st4sd-runtime-core
into it. It will also clone a repository into a directory called sum-numbers
in whatever directory you run the above commands in. It will then run a toy-workflow that takes a couple of minutes to run. The toy workflow output will be in a directory called sum-numbers.instance
You can learn more about the toy-workflow, and workflow specification, here.
References
If you use ST4SD in your projects, please consider citing the following:
@software{st4sd_2022,
author = {Johnston, Michael A. and Vassiliadis, Vassilis and Pomponio, Alessandro and Pyzer-Knapp, Edward},
license = {Apache-2.0},
month = {12},
title = {{Simulation Toolkit for Scientific Discovery}},
url = {https://github.com/st4sd/st4sd-runtime-core},
year = {2022}
}
More Information
Our documentation website contains detailed information on installing ST4SD, writing and running virtual-experiments, along with much more.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for st4sd-runtime-core-2.1.1.dev1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a78f752a711bdc733bdf7fd7b764e949ce56cf77a41b9c63fbf6945ec250145b |
|
MD5 | 58763e980837d16ba2435baa045bf343 |
|
BLAKE2b-256 | ebc0c2ee4b1cbec24afbc2d352af1561928a5dcf18b4df7e043b7d6ae0ea8830 |
Hashes for st4sd_runtime_core-2.1.1.dev1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69b7530fee2d3f6db9af561ea81d63b2408be0190825053f5f4d1669be6ef095 |
|
MD5 | bf97a979df934d1d7cde1cb2e8e105a8 |
|
BLAKE2b-256 | 263b5016a85dc1fef9f1ac5309567c1fd73e6739820cbd14c2e978b9a34a1cac |