Skip to content

v0.0.12

Compare
Choose a tag to compare
@carolineechen carolineechen released this 21 Sep 18:50
· 1107 commits to main since this release

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

rh.Module Resource

rh.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 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()