We are pleased to announce the 0.5 release of Ray. To upgrade to the latest version, run

pip install -U ray

Refactoring

One primary development is a substantial refactoring of the backend, which is currently off by default, but can be turned on by starting Ray with the environment variable RAY_USE_XRAY=1. This will be turned on soon after more testing and development and will be on by default in the next release. Some highlights of the refactor include the following:

  • Merging the “local scheduler” and the “plasma manager” into a single “raylet” process (consisting of a “node manager” and an “object manager”).
  • Faster object transfers by using multiple threads to send objects in chunks.
  • The introduction of a “lineage cache” to improve latency by removing the global control store from the scheduling critical path.
  • The removal of the global scheduler (which is replaced by direct node-manager to node-manager communication)
  • Providing a standardized table-based interface to the Redis-backed global control store.
  • A preliminary approach for automatically flushing global control store metadata to avoid out-of-memory errors for long-running jobs.

Note that the refactoring is currently under development and does not yet support fault tolerance.

RLlib Improvements

A number of improvements have been made to RLlib:

  • Added DDPG [1877].
  • Added a policy server example [2232].
  • Multi-agent support [2286].
  • Modular policy graphs [2294].
  • RNN support [2299].
  • Vectorized environments [2170].
  • Many bug fixes.

Tune

A number of improvements have been made to Tune:

  • HyperOpt integration [1763].
  • Many bug fixes and improvements.

Pandas on Ray

Pandas on Ray has moved to the Modin project and will continue to be developed there.

Autoscaler

The autoscaler has grown more mature and now supports Google Cloud Platform:

  • Support for GCP [2061].
  • Many bug fixes and additional features.

Java

Ray now supports Java thanks to contributions from Ant Financial:

Other Features

  • A named actors prototype [2129].
  • Usage of airspeed velocity for regression testing [2113].
  • More efficient serialization of numpy arrays [1889].