Highlights
Custom cluster default env support and lots of new examples!
Cluster Default Env
Runhouse cluster now supports a `default_env` argument to provide more flexibility and isolation for your Runhouse needs. When you set up a cluster with the default env, Runhouse first installs the env on the cluster (any package installations and setup commands), then starts the Runhouse server inside that env, whether it be a bare metal or even conda env. Future Runhouse calls on/to the cluster, such as `cluster.run(cmd)`, `rh.function(local_fn).to(cluster)`, and so one, will default to run on this default env. Simply pass in any runhouse Env object, including it's package requirements, setup commands, working dir, etc, to the cluster factory.
python
my_default_env = rh.env(
name="my_default_env",
reqs=["pytest", "numpy"],
working_dir="./",
)
my_conda_env = rh.conda_env(name="conda_env1", env_vars={...}) conda env
cluster = rh.cluster(
name="my_cluster",
instance_type="CPU:2+",
default_env=my_default_env, or my_conda_env
)
cluster.run(["pip freeze | grep pytest"]) runs on default_env
Improvements
* Introduce support for custom cluster default env (678, 746, 760)
* Start our own Ray cluster instead of using SkyPilot's (742)
* Exception handling for Module (747)
* Disable timeout in AsyncClient (773)
* Only sync rh config to ondemand cluster (782)
Bug Fixes
* Set CPUs for ClusterServlet to 0 (772)
* previously, cluster servlet was taking up 1 cpu resource on the cluster. set this to zero instead
* Set den_auth default to None in cluster factory (784)
* non-None default argument causes the cluster to reconstruct from scratch (rather than reloaded from rns) if there's a non-None argument mismatch
Docs & Examples
See also [docs](https://www.run.house/docs) and [examples](https://www.run.house/examples) webpages.
New Examples
* Llama3 (741, 743, 744)
* Parallel embedding (759, 779, 783, 792)
* Hyperparameter optimization (770)
* Llama2 fine-tuning with LoRA (771)
New Tutorials
* Async tutorial in docs (768)