Ray 0.8.1

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
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 to ray.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 for ObjectIDs passed into remote tasks inside of other objects (e.g., f.remote((ObjectID,)) or f.remote([ObjectID])) are not currently accounted for. (#6554)
  • asyncio actor support: actors can now define async def method and Ray will run multiple method invocations in the same event loop. The maximum concurrency level can be adjusted with ActorClass.options(max_concurrency=2000).remote().
  • asyncio ObjectID support: Ray ObjectIDs can now be directly awaited using the Python API. await my_object_id is similar to ray.get(my_object_id), but allows context switching to make the operation non-blocking. You can also convert an ObjectID to a asyncio.Future using ObjectID.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.Pool API 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

View original

Upgraded? How did it go?

Discussion