# Ray 0.8.3 — Ray 0.8.3 - Product: Ray (https://whatsnew.fyi/product/ray) - Vendor: Anyscale - Date: 2020-03-25 - Version: 0.8.3 - Original notes: https://github.com/ray-project/ray/releases/tag/ray-0.8.3 - Permalink: https://whatsnew.fyi/product/ray/releases/0.8.3 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** — Autoscaler has added Azure support - **added** — Add new command `ray memory` to debug memory usage and show object IDs in scope with their reference types, sizes, and creation sites - **added** — SAC algorithm now supports discrete action support - **added** — Add high-performance external application connector - **added** — Integrate Dragonfly optimizer - **added** — Add ability to access Trial Name and Trial ID inside trainable - **added** — Add new `repeater` class for high variance trials - **added** — Allow for operator chaining after repartition in Parallel Iterators - **added** — Add repartition functionality to Parallel Iterators - **added** — Add `handle.scale` and `handle.set_max_batch_size` to serve route handles - **added** — Exploration API improvements in RLlib - **added** — New Java actor API with `@RayRemote` annotation removed and new `actor.call(ActorClass::method)` syntax - **changed** — Distributed reference counting is turned on by default - **changed** — Change `actor.__ray_kill__()` to `ray.kill(actor)` - **changed** — Reduce per worker memory usage to 50MB - **changed** — Rename sample_batch_size to rollout_fragment_length in RLlib - **changed** — Rename PyTorchTrainer to TorchTrainer in RaySGD - **changed** — RaySGD TorchTrainer breaking changes: `data_creator` must return a dataloader, TorchTrainer automatically sets DistributedSampler, `data_loader_config` and `batch_size` are removed, parallelism is set by `num_workers`, and all arguments must be named parameters - **fixed** — Fix passing duplicate by-reference arguments - **fixed** — Fix HyperBand errors in Tune - **removed** — Remove `experimental.NoReturn` - **removed** — Remove `experimental.signal API` - **deprecated** — Deprecate `use_pickle` flag for serialization Highlights -------- - Autoscaler has added Azure Support. (#7080, #7515, #7558, #7494) - Ray autoscaler helps you launch a distributed ray cluster using a single command line call! - It works on Azure, AWS, GCP, Kubernetes, Yarn, Slurm and local nodes. - Distributed reference counting is turned on by default. (#7628, #7337) - This means all ray objects are tracked and garbage collected only when all references go out of scope. It can be turned off with: `ray.init(_internal_config=json.dumps({"distributed_ref_counting_enabled": 0}))`. - When the object store is full with objects that are still in scope, you can turn on least-recently-used eviction to force remove objects using `ray.init(lru_evict=True)`. - A new command `ray memory` is added to help debug memory usage: (#7589) - It shows all object IDs that are in scope, their reference types, sizes and creation site. - Read more in the docs: https://ray.readthedocs.io/en/latest/memory-management.html. ``` > ray memory ----------------------------------------------------------------------------------------------------- Object ID Reference Type Object Size Reference Creation Site ===================================================================================================== ; worker pid=51230 ffffffffffffffffffffffff0100008801000000 PINNED_IN_MEMORY 8231 (deserialize task arg) __main__..sum_task ; driver pid=51174 45b95b1c8bd3a9c4ffffffff010000c801000000 USED_BY_PENDING_TASK ? (task call) memory_demo.py::13 ffffffffffffffffffffffff0100008801000000 USED_BY_PENDING_TASK 8231 (put object) memory_demo.py::6 ef0a6c221819881cffffffff010000c801000000 LOCAL_REFERENCE ? (task call) memory_demo.py::14 ----------------------------------------------------------------------------------------------------- ``` API change ---------- - Change `actor.__ray_kill__()` to `ray.kill(actor)`. (#7360) - Deprecate `use_pickle` flag for serialization. (#7474) - Remove `experimental.NoReturn`. (#7475) - Remove `experimental.signal API`. (#7477) Core ---- - Add Apache 2 license header to C++ files. (#7520) - Reduce per worker memory usage to 50MB. (#7573) - Option to fallback to LRU on OutOfMemory. (#7410) - Reference counting for actor handles. (#7434) - Reference counting for returning object IDs created by a different process. (#7221) - Use `prctl(PR_SET_PDEATHSIG)` on Linux instead of reaper. (#7150) - Route asyncio plasma through raylet instead of direct plasma connection. (#7234) - Remove static concurrency limit from gRPC server. (#7544) - Remove `get_global_worker()`, `RuntimeContext`. (#7638) - Fix known issues from 0.8.2 release: - Fix passing duplicate by-reference arguments. (#7306) - Fix Raise gRPC message size limit to 100MB. (#7269) RLlib ----- - New features: - Exploration API improvements. (#7373, #7314, #7380) - SAC: add discrete action support. (#7320, #7272) - Add high-performance external application connector. (#7641) - Bug fix highlights: - PPO torch memory leak and unnecessary torch.Tensor creation and gc'ing. (#7238) - Rename sample_batch_size => rollout_fragment_length. (#7503) - Fix bugs and speed up SegmentTree. Tune ---- - Integrate Dragonfly optimizer. (#5955) - Fix HyperBand errors. (#7563) - Access Trial Name, Trial ID inside trainable. (#7378) - Add a new `repeater` class for high variance trials. (#7366) - Prevent deletion of checkpoint from user-initiated restoration. (#7501) Libraries --------- - [Parallel Iterators] Allow for operator chaining after repartition. (#7268) - [Parallel Iterators] Repartition functionality. (#7163) - [Serve] `@serve.route` returns a handle, add `handle.scale`, `handle.set_max_batch_size`. (#7569) - [RaySGD] PyTorchTrainer --> TorchTrainer. (#7425) - [RaySGD] Custom training API. (#7211) - [RaySGD] Breaking User API ch _[Truncated at 4000 characters — full notes: https://github.com/ray-project/ray/releases/tag/ray-0.8.3]_