Ray: A Distributed Framework for Emerging AI Applications
arXiv (Cornell University), 2017 · paper · Computer science
Presents Ray, a distributed system for AI applications that interact with their environment, unifying task-parallel and actor-based computation with a distributed scheduler and fault-tolerant control store. It reports scaling beyond 1.8 million tasks per second and outperforming specialized systems on reinforcement learning.
Checked: PDF from usenix.org, fetched 4 Oct 2026. Page numbers are those of that PDF.
2 findings
Reference or label The Figure 6 diagram labels the box "Global Control State (GCS)", while everywhere else (Figures 5 and 7, Section 4.2.1, Conclusion) GCS is the "Global Control Store".
- p. 8 Figure 6 diagram label
Global Control State (GCS)
Judge's note: In the crop, 'State (GCS)' is legible behind the arrows. The text layer has 'Global Control Store (GCS)' at several other places.
Second check: another model agreed
Report a problem with this finding
Reference or label Reference [23] reads "GHEMAWAT, S., GOBIOFF, H., AND LEUNG, S.-T. The Google file system. 29–43." and gives no venue or year.
- p. 16 Reference [23]
The Google file system. 29–43.
Judge's note: The page 16 image shows the entry exactly as quoted: page numbers but no venue or year, unlike the neighbouring entries. That the venue is SOSP 2003 rests on outside knowledge, but the missing fields are visible on the page.
Second check: another model agreed
Report a problem with this finding
11 minor (typos and the like; most checked by the judge only)
Reference or label "DDPG [55]" cites reference [55], Silver et al., "Deterministic policy gradient algorithms. In ICML (2014)", which is the DPG paper rather than the source of DDPG.
- p. 15 Section 7, API paragraph
DDPG [55]
- p. 17 Reference [55]
Deterministic policy gradient algo-rithms. In ICML (2014).
- p. 15 Section 7 Discussion, API paragraph
DDPG [55], and Ape-X [27]
Only the authors can say what is right here.
Judge's note: Rests on outside knowledge: that DDPG was introduced by Lillicrap et al. (2015), not by Silver et al. (2014). The crops confirm that the text and reference entry read as quoted. DPG is the precursor, so the citation may be deliberate.
Second check: another model agreed
Report a problem with this finding
Wording Introduction (p.3) groups Dryad among "Bulk-synchronous parallel systems such as MapReduce [20], Apache Spark [64], and Dryad [28]", whereas Related Work (p.14) says only Spark and MapReduce implement BSP and "Dryad relaxes this restriction".
- p. 3 Section 1 Introduction, left column
Bulk-synchronous parallel systems such as Map- Reduce [20], Apache Spark [64], and Dryad [28]
- p. 14 Section 6 Related Work, Dataflow systems
Dryad relaxes this restriction but lacks support for dynamic task graphs.
Judge's note: Both passages checked on the crops. The two descriptions of Dryad's execution model don't fully agree. The introduction may be using 'bulk-synchronous' loosely, so this is a minor consistency point rather than an error.
Second check: another model agreed
Report a problem with this finding
Wording Figure 3 defines "def rollout(self, policy, num_steps):" with no default for num_steps, but train_policy calls "s.rollout.remote(policy_id)" with only one argument.
- p. 6 Figure 3 code, Simulator class
def rollout(self, policy, num_steps):
- p. 6 Figure 3 code, train_policy
rollout_ids = [s.rollout.remote(policy_id)
Judge's note: Checked on the page 6 image. The example code doesn't match itself. It is an illustrative listing, so this is minor.
Second check: another model agreed
Report a problem with this finding
Wording Section 4.2.3 says the lineage "tracks both stateless tasks and stateful actors during initial execution; we use the former to reconstruct objects in the store". Section 3.2, which points to 4.2.3, says lost data can be reconstructed "whether produced by remote functions or actor methods".
- p. 8 Section 4.2.3, right column
we use the former to reconstruct objects in the store.
- p. 6 Section 3.2, end
whether produced by remote functions or actor methods (Section 4.2.3).
Only the authors can say what is right here.
Judge's note: Read both passages on the page images. Section 5.1 (p.11) also says actor method calls encoded as stateful edges let Ray 'reuse the same object reconstruction mechanism'. Read literally, 'the former' limits object reconstruction to task lineage, which conflicts with the sentence that cites 4.2.3. The authors may only mean that actor-state recovery is handled separately, so this is put to them as a query.
Second check: another model agreed
Report a problem with this finding
Wording The text claims Ray "achieves up to 1.8× throughput", but Table 4's largest Ray/MPI ratio is 4.03M/2.16M ≈ 1.87 at 256 CPUs.
- p. 12 Section 5.2.3 text
up to 1.8× throughput
- p. 12 Table 4, 256 CPUs column
4.03M
Judge's note: Table 4 values checked on the page 12 image. 1.8× is the ratio truncated rather than rounded, which is conservative. This is a minor consistency point only.
Second check: another model agreed
Report a problem with this finding
Wording The text says Ray "is within 10% of distributed TensorFlow", but in Figure 13 the Ray+TF bars at 16 and 32 GPUs appear to be about 13% below Distributed TF.
- p. 12 5.2.1, text
is within 10% of distributed TensorFlow
- p. 12 Figure 13
Distributed TF
Only the authors can say what is right here.
Judge's note: Bar heights read by eye from the enlarged Figure 13 crop: at 16 GPUs about 2100 vs about 1820, and at 32 GPUs about 3850 vs about 3350. Both gaps are above 10%. At 4, 8 and 64 GPUs the gaps are within 10%. Because the values are read from a plot, this is a query to the authors.
Second check: another model agreed
Report a problem with this finding
Typo The text says the pseudocode evaluates the policy "by invoking rollout(environment, policy)", but Figure 2 defines and calls rollout(policy, environment).
- p. 4 Figure 2 pseudocode
rollout(policy, environment):
- p. 4 Section 2, left column
ing rollout(environment, policy) to generate trajectories.
- p. 4 Section 2, text
invok- ing rollout(environment, policy)
- p. 4 Section 2, paragraph after Figure 2
invok- ing rollout(environment, policy) to generate trajectories
Judge's note: Page 4 image: Figure 2 has 'rollout(policy, environment):' and 'trajectories.append(rollout(policy, environment))'. The left-column prose has rollout(environment, policy) in the same bold/italic style, so the arguments are swapped.
Second check: none (judge only)
Report a problem with this finding
Typo The Figure 10b x-axis label reads "Elasped Time (seconds)" instead of "Elapsed".
- p. 10 Figure 10b x-axis label
Elasped Time (seconds)
Judge's note: The misspelling is visible in the rendered figure in the crop.
Second check: none (judge only)
Report a problem with this finding
Typo The Figure 12b x-axis label reads "Added scheduler latency (ms" with no closing parenthesis.
- p. 11 Figure 12b x-axis label
Added scheduler latency (ms
Judge's note: In the crop and on the full page 11 image, the label ends at 'ms' inside the figure area. It is not cut off by the crop.
Second check: none (judge only)
Report a problem with this finding
Typo Reference [21] prints "Proceedings of the 2Nd Annual Symposium on Computer Architecture"; '2Nd' should be '2nd'.
- p. 16 Reference [21]
Proceedings of the 2Nd An-
Judge's note: Looked at the crop of p.16. Reference [21] shows the italic text 'Proceedings of the 2Nd An-nual Symposium on Computer Architecture'. The capital N comes from BibTeX title-casing and is printed in the PDF, so it is not an extraction artefact. It is cosmetic.
Second check: none (judge only)
Report a problem with this finding
Typo Reference [61] prints "6th Conference on Symposium on Opearting Systems Design & Implementation"; 'Opearting' should be 'Operating'.
- p. 18 Reference [61]
Opearting Systems Design
- p. 18 Reference [61]
6th Conference on Symposium on Opearting Systems Design
- p. 18 Reference [61]
Symposium on Opearting Systems Design
Judge's note: Looked at the crop of p.18. Reference [61] (van Renesse and Schneider) prints 'Opearting' in the italic venue name, so the misspelling is in the typeset PDF. All three reviewer notes describe this same defect.
Second check: none (judge only)