dstack is an open-source orchestration engine for cost-effectively running AI workloads in the cloud as well as on-premises. Discord: https://discord.gg/u8SmfwPpMd
MPL-2.0 License
Bot releases are visible (Hide)
Published by peterschmidt85 over 1 year ago
The dstack 0.2.1
release introduces several significant improvements:
The docker
provider now supports passing credentials to use Docker images from private registries.
Here's an example:
workflows:
- name: private-registry
provider: docker
image: ghcr.io/my-organization/top-secret-image:v1
registry_auth:
username: ${{ secrets.GHCR_USER }}
password: ${{ secrets.GHCR_TOKEN }}
Note
To avoid storing credentials in plain text, it is recommended to add them as secrets.
Previously, the docker
provider always used bash
as the entrypoint for running provided commands. With this update, the default shell has been changed to sh
, which is more commonly used. Also, it is now possible to override the entrypoint by using the entrypoint
property in the YAML file.
The bash
and docker
providers can now run background processes. This can be achieved in the same way as in a regular shell, by adding &
to the end of the command.
Here's an example:
workflows:
- name: train-with-tensorboard
provider: bash
ports: 1
commands:
- pip install torchvision pytorch-lightning tensorboard
- tensorboard --port $PORT_0 --host 0.0.0.0 --logdir lightning_logs &
- python train.py
artifacts:
- path: lightning_logs
In this example, the tensorboard
application runs in the background, allowing for browsing of training script logs while the script is still in progress.
To install the latest version of dstack
, simply run the following command
pip install dstack --upgrade
Should you have any feedback, whether it be regarding an issue with the functionality or a question, please share it in our Slack chat or report it as a GitHub issue.
Published by peterschmidt85 over 1 year ago
With the release of version 0.2 of dstack, configuring a GCP as a remote is now possible. All the features that were previously available for AWS except real-time artifacts are now available for GCP as well.
To use GCP with dstack
, you will require a service account.
For more details on how to configure GCP, refer to the documentation.
Once you have created a service account, proceed to execute the dstack config command. After that, you're good to go! Use the --remote
flag with the dstack run
command to execute workflows in GCP, and dstack
will automatically create and destroy cloud instances based on resource requirements, including cost strategies like using spot instances.
To install the update, run the following command:
pip install dstack --upgrade
Have a question, need help, or just want to stay updated? Make sure to join our Slack chat.
Published by peterschmidt85 over 1 year ago
The dstack 0.1.2
release brings a fix to the following bug:
To install the update, run the following command
pip install dstack --upgrade
Should you have any feedback, whether it be regarding an issue with the functionality or a question, please share it in our Slack chat or report it as a GitHub issue.
Published by peterschmidt85 over 1 year ago
The dstack 0.1.1
release brings a number of important bug fixes:
dstack ls
command fails on macOS and Windows #189dstack tags add
#173To install the latest version of dstack
, simply run the following command
pip install dstack --upgrade
Should you have any feedback, whether it be regarding an issue with the functionality or a question, please share it in our Slack chat or report it as a GitHub issue.
Published by peterschmidt85 over 1 year ago
Previously, dstack
required a cloud account for use, even when running workflows locally, as the artifacts would automatically be pushed to cloud storage. The new update resolves this by introducing two distinct backends: local
and remote
.
By default, all workflows now run locally. If you prefer to run a workflow in the cloud, simply add the --remote
flag:
dstack run train-mnist --remote
RUN WORKFLOW SUBMITTED STATUS TAG BACKENDS
chicken-0 mnist-data now Submitted aws
Provisioning... It may take up to a minute. ✓
To interrupt, press Ctrl+C.
When a workflow is run locally, the resulting artifacts are also stored locally.
A cloud account is no longer mandatory to use dstack locally.
Reusing output artifacts across workflows is a core feature of dstack
.
The latest update allows for local workflows to reuse the output artifacts of other local workflows, and for remote workflows to reuse the output artifacts of other remote workflows.
To reuse the output artifacts of a remote workflow locally, use the dstack pull
command to retrieve the remote run locally.
dstack pull --help
usage: dstack pull [-h] (RUN | :TAG)
positional arguments:
(RUN | :TAG) A name of a run or a tag
To reuse the output artifacts of local workflows in the cloud, use the dstack push
command to upload the local run to the configured cloud.
Below is a list of other notable changes:
dstack artifacts list
command was renamed to dstack ls
dstack artifacts download
command was discontinued and replaced with dstack pull
before_run
property in YAML was renamed to setup
The changes have been incorporated into the updated documentation and examples.
To install the latest version of dstack
, simply run the following command
pip install dstack --upgrade
Should you have any feedback, whether it be regarding an issue with the functionality or a question, please share it in our Slack chat or report it as a GitHub issue.
Meanwhile, stay tuned, everyone! We're hard at work on some really cool things that we'll be sharing with you soon.
Published by peterschmidt85 over 1 year ago
dstack 0.1 RC1 is a preview of the new upcoming major release.
In this release, we've entirely reworked how workflows run locally and remotely.
TL;DR:
Here's a more detailed changelog:
--local
in the dstack run CLI command (as well as the property local: true
in the YAML) is dropped.dstack config
is not required anymore. If you want to try dstack, and for example run workflows only locally, you can use dstack without AWS at all.dstack config
and want to run a workflow there, you need to use the --remote
flag in the dstack run CLI command (or the property remote: true
in the YAML).push command
(followed by the name of the run).pull command
(followed by the name of the run). This command will download the artifacts of a remote run to local storage (~/.dstack/artifacts
).dstack artifacts list
was renamed to dstack ls
.dstack artifacts download
was replaced with dstack pull
before_run
property in YAML was renamed to setup
While these changes may theoretically sound not as major, they actually are. They make local and remote runs a lot more convenient from the user experience point of view, and also prepare dstack for the upcoming even more significant changes (which we’ll write about pretty soon).
How to install the preview:
pip install dstack --upgrade --pre
Note
The documentation has not been updated yet and doesn't reflect the listed changes. The docs will be updated right after the release will go public (within less than a week).
Published by peterschmidt85 almost 2 years ago
dstack 0.0.14 is a minor update that brings several improvements.
.dstack/workflows
directory #133dstack run
#1320.0.13
)Last but not least, thanks to #133, we've done a massive refactoring of the dstack-examples
repository.
Published by peterschmidt85 almost 2 years ago
dstack 0.0.13 is a minor update that fixes two important bugs:
dstack tags create -a PATH
#121Published by peterschmidt85 almost 2 years ago
The dstack 0.0.12
update is here. Inside, you'll find several major new features and a couple of important bug-fixes.
Now you can use dstack
with GitLab, GitHub Enterprise, and any other Git repos (regardless of where they are hosted).
Just make sure the hostname of the repo is accessible from AWS (be it the default VPN or any other selected one).
All built-in providers now come with Miniforge pre-installed.
Now you can use all the benefits Conda provides without worrying about the license.
Moreover, you can use conda env create
and conda activate
within your workflows to create custom Conda environments, save them as artifacts, and reuse them from other workflows.
Here's an example of two workflows, where one creates an environment, and another one reuses it:
workflows:
- name: setup-conda
help: Prepares an environment
provider: bash
commands:
- conda env create --file environment.yml
artifacts:
- path: /opt/conda/envs/myenv
- name: use-conda
provider: bash
deps:
- workflow: setup-conda
commands:
- conda activate myenv
If your environment is sophisticated and has a lot of dependencies, downloading it as an artifact will be a lot faster than preparing in inside the workflow.
The workflow output is now fully interactive and colorful.
The dstack ps
command, for every run, now shows who submitted it.
dstack ps -a
RUN WORKFLOW SUBMITTED OWNER STATUS TAG
cuddly-dragonfly-1 code 6 days ago olgenn Aborted
terrible-bear-1 bash 6 days ago peterschmidt85 Stopped
mighty-chicken-1 download yesterday ivan-bokov Done mnist_data
bitter-zebra-1 train yesterday peterschmidt85 Aborted
This feature will be helpful if multiple users are working on the same repo together.
The full changelog, including bugfixes, can be found here.
In case you have feedback, if either something doesn't work as expected, or you have a question, please share it in our Slack chat, or report as a GitHub issue.
Published by peterschmidt85 almost 2 years ago
The dstack 0.0.11 update brings support for local workflows.
If you want, now you can run workflows on your local machine instead of the cloud. This is helpful if you want to quickly test something locally before spinning resources in the cloud.
Here's an example of how to define such a workflow:
workflows:
- name: hello
provider: bash
commands:
- echo "Hello world"
resources:
local: true
Alternatively, you can use the -l
(or --local
) argument with the dstack run
command:
dstack run hello -l
This will run the hello
workflow locally.
Note
Running workflows locally requires Docker or NVIDIA Docker to be installed locally.
Last but not least, the update brings updates to the documentation. For example, we've added the list of AWS permissions that the dstack
requires.
Published by peterschmidt85 about 2 years ago
dstack 0.0.9 is a minor update that brings the following improvements to the dstack config
command:
Besides that, we've added support for the Singapore region (ap-southeast-1
).
Finally, the source code has the runner's code.
Published by peterschmidt85 about 2 years ago
dstack 0.0.8 is a bugfix update that brings the following improvements:
dstack run
(e.g. tqdm
and alike)dstack run
command (via -t TAG
argument)deps
) to be downloaded in a broken state (#99)dstack ps
commandPublished by peterschmidt85 about 2 years ago
dstack 0.0.7 is the first public beta release of the dstack
CLI.