0.8.1
Added 14
- ObjectIDs corresponding to ray.put() objects and task returns are now reference counted locally in Python and when passed into a remote task as an argument
- Actors can now define async def methods and Ray will run multiple method invocations in the same event loop, with maximum concurrency level adjustable via ActorClass.options(max_concurrency=N).remote()
- Ray ObjectIDs can now be directly awaited using the Python API with await my_object_id, and can be converted to asyncio.Future using ObjectID.as_future()
- Added experimental parallel iterators API with ParallelIterator for conveniently loading and processing data into Ray actors
- Added multiprocessing.Pool API support to scale existing programs from a single node to a cluster by changing only the import statement
- Added actor.__ray_kill__() to terminate actors immediately
- Added 'ray stat' command for debugging
- Added documentation for fault tolerance behavior
- Get checkpoints paths for a trial after tuning in Tune
- Added async restores and S3/GCP-capable trial fault tolerance in Tune
- Added support for Type Hinting for Python 3 in Tune
- Added pluggable queueing policy for Ray Serve
- Added BackendConfig for Ray Serve
- Added fault tolerance support for PyTorch in Ray SGD
Changed 3
- Treat static methods as class methods instead of instance methods in actors
- Redis now binds to localhost and has a password set by default
- Changed foreach_policy to foreach_trainable_policy in RLlib
Fixed 1
- Fixed bug when failing to import remote functions or actors with args and kwargs
Deprecated 1
- Python 2 support is deprecated
Ray 0.8.1 Release Notes
Highlights
ObjectIDs corresponding toray.put()objects and task returns are now reference counted locally in Python and when passed into a remote task as an argument.ObjectIDs that have a nonzero reference count will not be evicted from the object store. Note that references forObjectIDs passed into remote tasks inside of other objects (e.g.,f.remote((ObjectID,))orf.remote([ObjectID])) are not currently accounted for. (#6554)asyncioactor support: actors can now defineasync defmethod and Ray will run multiple method invocations in the same event loop. The maximum concurrency level can be adjusted withActorClass.options(max_concurrency=2000).remote().asyncioObjectIDsupport: Ray ObjectIDs can now be directly awaited using the Python API.await my_object_idis similar toray.get(my_object_id), but allows context switching to make the operation non-blocking. You can also convert anObjectIDto aasyncio.FutureusingObjectID.as_future().- Added experimental parallel iterators API (#6644, #6726):
ParallelIterators can be used to more convienently load and process data into Ray actors. See the documentation for details. - Added multiprocessing.Pool API (#6194): Ray now supports the
multiprocessing.PoolAPI out of the box, so you can scale existing programs up from a single node to a cluster by only changing the import statment. See the documentation for details.
Core
- Deprecated Python 2 (#6581, #6601, #6624, #6665)
- Fixed bug when failing to import remote functions or actors with args and kwargs (#6577)
- Many improvements to the dashboard (#6493, #6516, #6521, #6574, #6590, #6652, #6671, #6683, #6810)
- Progress towards Windows compatibility (#6446, #6548, #6653, #6706)
- Redis now binds to localhost and has a password set by default (#6481)
- Added
actor.__ray_kill__()to terminate actors immediately (#6523) - Added 'ray stat' command for debugging (#6622)
- Added documentation for fault tolerance behavior (#6698)
- Treat static methods as class methods instead of instance methods in actors (#6756)
RLlib
- DQN distributional model: Replace all legacy tf.contrib imports with tf.keras.layers.xyz or tf.initializers.xyz (#6772)
- SAC site changes (#6759)
- PG unify/cleanup tf vs torch and PG functionality test cases (tf + torch) (#6650)
- SAC for Mujoco Environments (#6642)
- Tuple action dist tensors not reduced properly in eager mode (#6615)
- Changed foreach_policy to foreach_trainable_policy (#6564)
- Wrapper for the dm_env interface (#6468)
Tune
- Get checkpoints paths for a trial after tuning (#6643)
- Async restores and S3/GCP-capable trial FT (#6376)
- Usability errors PBT (#5972)
- Demo exporting trained models in pbt examples (#6533)
- Avoid duplication in TrialRunner execution (#6598)
- Update params for optimizer in reset_config (#6522)
- Support Type Hinting for py3 (#6571)
Other Libraries
- [serve] Pluggable Queueing Policy (#6492)
- [serve] Added BackendConfig (#6541)
- [sgd] Fault tolerance support for pytorch + revamp documentation (#6465)
Thanks
We thank the following contributors for their work on this release:
@chaokunyang, @Qstar, @simon-mo, @wlx65003, @stephanie-wang, @alindkhare, @ashione, @harrisonfeng, @JingGe, @pcmoritz, @zhijunfu, @BalaBalaYi, @kfstorm, @richardliaw, @mitchellstern, @michaelzhiluo, @ziyadedher, @istoica, @EyalSel, @ffbin, @raulchen, @edoakes, @chenk008, @frthjf, @mslapek, @gehring, @hhbyyh, @zzyunzhi, @zhu-eric, @MissiontoMars, @sven1977, @walterddr, @micafan, @inventormc, @robertnishihara, @ericl, @ZhongxiaYan, @mehrdadn, @jovany-wang, @ujvl, @bharatpn