mirror of
https://github.com/vale981/ray
synced 2025-03-08 11:31:40 -05:00
No description
![]() ## What do these changes do? This implements basic task reconstruction in raylet. There are two parts to this PR: 1. Reconstruction suppression through the `TaskReconstructionLog`. This prevents two raylets from reconstructing the same task if they decide simultaneously (via the logic in #2497) that reconstruction is necessary. 2. Task resubmission once a raylet becomes responsible for reconstructing a task. Reconstruction is quite slow in this PR, especially for long chains of dependent tasks. This is mainly due to the lease table mechanism, where nodes may wait too long before trying to reconstruct a task. There are two ways to improve this: 1. Expire entries in the lease table using Redis `PEXPIRE`. This is a WIP and I may include it in this PR. 2. Introduce a "fast path" for reconstructing dependencies of a re-executed task. Normally, we wait for an initial timeout before checking whether a task requires reconstruction. However, if a task requires reconstruction, then it's likely that its dependencies also require reconstruction. In this case, we could skip the initial timeout before checking the GCS to see whether reconstruction is necessary (e.g., if the object has been evicted). Since handling failures of other raylets is probably not yet complete in master, this only turns back on Python tests for reconstructing evicted objects. |
||
---|---|---|
.github | ||
.travis | ||
cmake/Modules | ||
doc | ||
docker | ||
examples | ||
java | ||
python | ||
site | ||
src | ||
test | ||
thirdparty/scripts | ||
.clang-format | ||
.gitignore | ||
.style.yapf | ||
.travis.yml | ||
build-docker.sh | ||
build.sh | ||
CMakeLists.txt | ||
CONTRIBUTING.rst | ||
LICENSE | ||
pylintrc | ||
README.rst | ||
scripts | ||
setup_thirdparty.sh |
Ray === .. image:: https://travis-ci.com/ray-project/ray.svg?branch=master :target: https://travis-ci.com/ray-project/ray .. image:: https://readthedocs.org/projects/ray/badge/?version=latest :target: http://ray.readthedocs.io/en/latest/?badge=latest | Ray is a flexible, high-performance distributed execution framework. Ray is easy to install: ``pip install ray`` Example Use ----------- +------------------------------------------------+----------------------------------------------------+ | **Basic Python** | **Distributed with Ray** | +------------------------------------------------+----------------------------------------------------+ |.. code-block:: python |.. code-block:: python | | | | | # Execute f serially. | # Execute f in parallel. | | | | | | @ray.remote | | def f(): | def f(): | | time.sleep(1) | time.sleep(1) | | return 1 | return 1 | | | | | | | | | ray.init() | | results = [f() for i in range(4)] | results = ray.get([f.remote() for i in range(4)]) | +------------------------------------------------+----------------------------------------------------+ Ray comes with libraries that accelerate deep learning and reinforcement learning development: - `Ray Tune`_: Hyperparameter Optimization Framework - `Ray RLlib`_: Scalable Reinforcement Learning .. _`Ray Tune`: http://ray.readthedocs.io/en/latest/tune.html .. _`Ray RLlib`: http://ray.readthedocs.io/en/latest/rllib.html Installation ------------ Ray can be installed on Linux and Mac with ``pip install ray``. To build Ray from source or to install the nightly versions, see the `installation documentation`_. .. _`installation documentation`: http://ray.readthedocs.io/en/latest/installation.html More Information ---------------- - `Documentation`_ - `Tutorial`_ - `Blog`_ - `Ray paper`_ - `Ray HotOS paper`_ .. _`Documentation`: http://ray.readthedocs.io/en/latest/index.html .. _`Tutorial`: https://github.com/ray-project/tutorial .. _`Blog`: https://ray-project.github.io/ .. _`Ray paper`: https://arxiv.org/abs/1712.05889 .. _`Ray HotOS paper`: https://arxiv.org/abs/1703.03924 Getting Involved ---------------- - Ask questions on our mailing list `ray-dev@googlegroups.com`_. - Please report bugs by submitting a `GitHub issue`_. - Submit contributions using `pull requests`_. .. _`ray-dev@googlegroups.com`: https://groups.google.com/forum/#!forum/ray-dev .. _`GitHub issue`: https://github.com/ray-project/ray/issues .. _`pull requests`: https://github.com/ray-project/ray/pulls