Runhouse

Latest version: v0.1.1

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 7

0.0.13

Highlights
* AWS Sagemaker Cluster (105 115 166)
* facilitates easy access to existing or new AWS SageMaker compute
* HTTPS support (Alpha) (114)
* adds option for starting up the Runhouse API server on the cluster with HTTPS

Sagemaker Cluster
Runhouse is integrating with [Amazon Web Services (AWS) SageMaker](https://aws.amazon.com/sagemaker) to allow rapid onboarding onto SageMaker, usually within minutes, and to remove the need to translate code into SageMaker-specific APIs so it can still be used dynamically with other compute infra.

The [SageMaker cluster](https://www.run.house/docs/api/python/cluster) follows the Runhouse cluster definition and usage, but uses Sagemaker compute under the hood.

If you already use SageMaker with your AWS account, you should already be set to use Runhouse SageMaker support. For full SageMaker setup and dependencies, please refer to the [docs](https://www.run.house/docs/api/python/cluster#sagemaker-hardware-setup).

Example 1: Launch a new SageMaker instance and keep it up indefinitely.

Note: this will use Role ARN associated with the "sagemaker" profile defined in the local AWS config (e.g. `~/.aws/config`).
import runhouse as rh
c = rh.sagemaker_cluster(name='sm-cluster', profile="sagemaker").save()


Example 2: Running a training job with a provided Estimator

c = rh.sagemaker_cluster(name='sagemaker-cluster',
estimator=PyTorch(entry_point='train.py',
role='arn:aws:iam::123456789012:role/MySageMakerRole',
source_dir='/Users/myuser/dev/sagemaker',
framework_version='1.8.1',
py_version='py36',
instance_type='ml.p3.2xlarge'),
).save()


Support HTTPS calls to clusters (Alpha)
Adds an option for starting up the Runhouse API server on the cluster with HTTPS, including optionally creating self-signed certs and proxying through Nginx. This makes it incredibly fast and easy to stand up a microservice with standard bearer token authentication (using a Runhouse token), allowing users to share Runhouse resources with collaborators, teams, customers, etc.

Supports several new server connection types, including `tls`, `ssh`. For more information on these types, please refer to [docs](https://github.com/run-house/runhouse/blob/main/docs/api/python/cluster.rst#server-connection).

BC Breaking
* The default Runhouse HTTP server port is now `32300` (124)

Other
* Remove the `paramiko` dependency for password clusters (131)
* Support running shell commands in `env` (132)
Example code:

rh.env(
name="my_env",
reqs=["torch", "diffusers"],
setup_cmds=["source ~/.bashrc"]
)


* Support an optional `host` parameter for the `runhouse start` and `runhouse restart` commands, which now defaults to `0.0.0.0` (110)
Example code:

0.0.12

Highlights
* In-memory resources, an update to existing remote resource implementations (78)
* includes new `rh.Module` resource, and resulting performance and feature improvements
* Sagemaker Cluster (Alpha) (89)
* facilitates easy access to existing or new SageMaker compute

In-memory Resources
As mentioned in the 0.0.11 Release Notes, we've redesigned how we handle remote resources, resulting in performance and feature improvements, as well as support for a new type of resource. Basic notes can be found below, or a more comprehensive technical overview can be found in our [0.0.12 blog post](https://www.run.house/blog/runhouse-0-0-12-modules-streaming-async-and-too-much-more)

rh.Module Resource
[rh.Module](https://www.run.house/docs/v0.0.12/en/api/python/module) represents a class that can be accessed and used remotely, including all its class methods and variables, and with out-of-the-box support for capabilities like streaming logs/results, async, queuing, etc
* `rh.module()` factory function for wrapping existing Python classes
* `rh.Module` class that can be subclasses to write natively Runhouse-compatible classes

In-Python Object Pinning
Storing large objects, such as models, in Python memory can reduce time spent loading objects from disk or sending them over.
* more stable object pinning in Python memory
* intuitive `rh.here.get()` and `rh.here.put()` APIs, where `rh.here` returns the cluster it is called from

Performance Improvements
* Reduced process overhead and latency, by having each underlying Ray Actor live in it's own process rather than launching

Other resulting improvements
* Streaming support
* Increased logging support
* Async support

Sagemaker Cluster (Alpha)
Runhouse is integrating with SageMaker to make the SageMaker onboarding process more smooth, and removing the need to translate code through SageMaker specific estimators or APIs. This will be described in more detail in the 0.0.13 release, or check out the [documentation](https://www.run.house/docs/v0.0.12/en/api/python/cluster#sagemakercluster-class) in the meantime.

Build
* Remove s3fs dependency
* Upgrade to SkyPilot 0.0.4, to resolve Colab installation issues

BC Breaking
* `.remote()` now returns a remote object, rather than a string associated with the object/run. To get the contents of the result, use `result.fetch()`

0.0.11

What's New

In-memory Resources (Alpha)
We revamped our underlying code implementation for handling remote code execution, resulting in improvements and added support for:
* True in-Python pinning
* Improved performance and decreased process overhead
* Increased support for streaming and logs
* Remote classes and class method calls (`rh.Module` resource)

These new features and updates will be explained in more detail in the following (0.0.12) release

Docs Site
Documentation is now supported and hosted directly in our website, at [run.house/docs](https://www.run.house/docs). Easily access documentation for any of or current and past releases.

Other
* Environment caching, skip env subpackage installations if existing environment is already detected
* ssh proxy tunnel support for BYO clusters (85)
* [troubleshooting and manual setup instructions](https://www.run.house/docs/troubleshooting) for commonly encountered issues
* add `runhouse start` command

BC-Breaking
* rename `runhouse restart_server` command to `runhouse restart`

0.0.10

What's New
**Support for BYO clusters requiring a password**
* To create a Runhouse cluster instance for a cluster that requires password authentication:
rh.cluster("cluster-name", host=["hostname or ips"], ssh_creds={'ssh_user': '...', 'password':'*****'},

**Funhouse/Tutorials Updates**
* Update [funhouse](https://github.com/run-house/funhouse) organization structure
* Deprecate tutorials repo in favor of tutorial walkthroughs in docsite and funhouse for standalone scripts

**Sentry integration for Runhouse error reports**

0.0.9

Patch release to upgrade skypilot version to v0.3.3, which resolves a critical dependency fix for PyYAML following the Cython 3 release. On Runhouse side, fix a bug for handling git function environment requirements.

0.0.8

What's New

Bugfixes
* FastAPI recently released 0.100.0, which upgrades to Pydantic v2. This introduced breakage in Runhouse and for now we've pinned to FastAPI<=0.99.0.
* Autostop for `OnDemandCluster`s broke following the release of SkyPilot 0.3.0, as SkyPilot began to use their own Ray server on a separate port. When we started the Runhouse server, we were inadvertently killing the SkyPilot server, which caused the cluster status to show as in the INIT state indefinitely and suspended autostop.
* The recently introduced Env.working_dir caused the working directory to be synced to the cluster extraneously, which is now fixed.
* Ray does not work with `PyOpenSSL<21.1.0`, which was causing pesky breakage in some multiprocessing scenarios. We've pinned `pyOpenSSL>=21.1.0`.
* Improve performance by removing several RNS lookups.

Page 6 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.