Sometimes you might want to do a quick local test before sending your execution to be run via Valohai. Maybe you don't feel like waiting for the VM to be spun up or that you don't really need any extra computing power apart from what you have on your own laptop.
The disadvantage is that if you run the execution on your local machine, it won't be registered to Valohai and will be left untracked. But why is that? Wouldn't it be useful to have information about these local runs stored as well? The main reason is reproducibility and collaboration with other members in your organization.
All the Valohai executions are reproducible, assuming that the input files are still available in your data store. This means that anyone who has access to the project can re-run the execution by copying it and get the same results as what the original job gave.
- Valohai executions are always run inside a Docker container, the environment will be the same regardless of who is running it and when. This is not the case for local runs, even if you're doing them inside virtual environments.
- When running a Valohai execution, a code snapshot is stored in the project commit store. In local runs there is a risk that there are uncommitted changes in the code and it will be impossible to track those later on.
- When running locally, you're most likely using local data. For Valohai executions, the inputs are downloaded to the worker instance from your data store connected to the project. This allows you or your colleagues to access the same dataset also in the future, assuming it has not been moved or changed in the store.