# Ray 0.8.1 - Product: Ray (https://whatsnew.fyi/product/ray) - Vendor: Anyscale - Date: 2020-01-27 - Version: 0.8.1 - Original notes: https://github.com/ray-project/ray/releases/tag/ray-0.8.1 - Permalink: https://whatsnew.fyi/product/ray/releases/0.8.1 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — 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 - **added** — 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() - **added** — 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** — Added experimental parallel iterators API with ParallelIterator for conveniently loading and processing data into Ray actors - **added** — Added multiprocessing.Pool API support to scale existing programs from a single node to a cluster by changing only the import statement - **deprecated** — Python 2 support is deprecated - **fixed** — Fixed bug when failing to import remote functions or actors with args and kwargs - **added** — Added actor.__ray_kill__() to terminate actors immediately - **added** — Added 'ray stat' command for debugging - **added** — Added documentation for fault tolerance behavior - **changed** — Treat static methods as class methods instead of instance methods in actors - **changed** — Redis now binds to localhost and has a password set by default - **changed** — Changed foreach_policy to foreach_trainable_policy in RLlib - **added** — Get checkpoints paths for a trial after tuning in Tune - **added** — Added async restores and S3/GCP-capable trial fault tolerance in Tune - **added** — Added support for Type Hinting for Python 3 in Tune - **added** — Added pluggable queueing policy for Ray Serve - **added** — Added BackendConfig for Ray Serve - **added** — Added fault tolerance support for PyTorch in Ray SGD Ray 0.8.1 Release Notes ======================= Highlights ---------- - `ObjectID`s 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. `ObjectID`s that have a nonzero reference count will not be evicted from the object store. Note that references for `ObjectID`s 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): `ParallelIterator`s can be used to more convienently load and process data into Ray actors. See the [documentation](https://ray.readthedocs.io/en/latest/iter.html) 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](https://ray.readthedocs.io/en/latest/multiprocessing.html) 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