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-whileconstructs - 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
python3withvirtualenv- Have
sshaccess 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.
Metadata
Release files for st4sd-runtime-core 2.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| st4sd_runtime_core-2.7.0.tar.gz | 752.6 kB | Without provenance | Details for st4sd_runtime_core-2.7.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| st4sd_runtime_core-2.7.0-py3-none-any.whl | Python 3 | none | any | Details for st4sd_runtime_core-2.7.0-py3-none-any.whl |
Total release size: 1.5 MB
Release files / st4sd_runtime_core-2.7.0.tar.gz
| Download URL | st4sd_runtime_core-2.7.0.tar.gz |
|---|---|
| Size | 752.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dff337d68dc640ddbb43709cd61fb74299d3601b9c6a6729e66f97fb909e52cd
|
|
BLAKE2b-256 checksum How to use checksums |
0e07c351d455762ea2cb040cd9bcdc28582fa712be56092807d735c1a4c5b6a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / st4sd_runtime_core-2.7.0-py3-none-any.whl
| Download URL | st4sd_runtime_core-2.7.0-py3-none-any.whl |
|---|---|
| Size | 708.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
358d114b45109e4b2247b83c685866ce1b4c38fe660b6cfdf33b42c5a6148e25
|
|
BLAKE2b-256 checksum How to use checksums |
a1e1937f9c0bf11173050eed719f884adf04c71b945e03401f46c0c4308310a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Security for st4sd-runtime-core 2.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.