v0.0.18
Highlights
Runhouse Local Mode and rh.here
Previously, the Runhouse server was strictly designed to allow you to deploy apps to it remotely with my_module.to(my_cluster)
. Now, you can now start the Runhouse server daemon directly to be able to deploy it locally like a traditional web server. Access the local daemon's Cluster object in Python with rh.here
. rh.here
always refers to the locally running daemon, so you can use within an existing Runhouse cluster as well.
Start your local Runhouse server:
$ runhouse restart
$ runhouse status
To send a module:
def concat(a, b):
return a+b
import runhouse as rh
rh.function(concat).to(rh.here)
To try out your service:
curl -X "GET" 'http://localhost:32300/concat/call?a=run&b=house'
>>> {"data":"\"runhouse\"","error":null,"traceback":null,"output_type":"result_serialized","serialization":"json"}
This is also particularly useful for debugging. You can ssh onto your cluster, start a Python shell, and run methods like rh.here.call("my_module", "my_method")
to test or analyze your deployed module's behavior or contents quickly.
Replace nginx with Caddy
Use Caddy as a reverse proxy for the Runhouse server launched on clusters, as well as automatically generating and auto-renewing self-signed certificates, making it easy to secure your cluster with HTTPS right out of the box.
Improvements
- Improved logging to reduce log clutter, and differentiate local and cluster(#436, #475)
- Support packages using setup.cfg (#456)
- Runhouse status updates (#462, #469)
Build
- Remove Sky dependency for SSH command runner
Bug Fixes
- Fix name to properly be updated in cluster when saved (#451, #477)
- Fix bug in sagemaker cluster factory (#459)
- Fix Cluster.from_name to properly load existing config in Den (#468)
- Fix CLI runhouse status for on-demand cluster (#478)
BC-Breaking
reqs
andsetup_cmds
removed from function .to (#373)- Generator module now returns generator rather than streamed results (#373)