Highlights
Cluster Sharing
We’ve made it easier to share clusters across different environments and with other users. You can now share and load a cluster just as you would any other resource.
my_cluster = rh.cluster("rh-cluster", ips=[...], ...)
my_cluster.share(["user1email.com", "username2"])
load the box with
shared_cluster = rh.cluster("owner_username/rh-cluster")
Shared users will be able to seamlessly run shared apps on that cluster, or SSH directly onto the remote box. To enable this, we persist the SSH credentials for the cluster as a Runhouse Secret object, which can easily be reloaded when another user tries to connect.
Improved rh.Mapper
`rh.Mapper` was first introduced in runhouse v0.0.15, an extension of functions/modules to handle mapping, replicating, and load balancing. Further improvements and some bug fixes were included in this release, plus a BC-breaking variable name (see section below).
def local_sum(arg1, arg2, arg3):
return arg1 + arg2 + arg3
remote_fn = rh.function(local_sum).to(my_cluster)
mapper = rh.mapper(remote_fn, replicas=2)
mapper.map([1, 2], [1, 4], [2, 3])
output: [4, 9]
Improvements
* Use hashed subtoken for cluster requests (270)
* Simplify storage of SSH creds for more reliable cluster access across environments and users (479)
* Remove sky storage dependency (415)
* Replace subprocess check_call with run (503)
* Serialize exceptions properly (516)
* Improved Logging
* Only write out execution logs if stream_logs is set (490)
* Propagate logs from pip installs on cluster (505)
* Write some logs to sys.out (519)
Bug Fixes
* Mapper bug fixes (539)
Deprecation
* Renaming config_for_rns property to config function (553, 554, 555)
BC-Breaking
* `rh.mapper` factory function args renaming
* `num_replicas` -> `replicas`
* `replicas` -> `concurrency`
Docs
See updated tutorials on [Runhouse docs](https://www.run.house/docs)
* New quick start guides -- local, cloud, and Den versions
* Updated API tutorials -- clusters, functions & modules, envs, folders
Examples
See new Runhouse examples on [GitHub](https://github.com/run-house/runhouse/tree/main/examples) or [webpage](https://run.house/examples)
* Llama2 inference on AWS EC2
* Stable Diffusion XL 1.0 on AWS EC2
* Stable Diffusion XL 1.0 on AWS Inferentia
Other
* Remove paramiko as server connection type