# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 1
# self = https://watcher.sour.is/conv/r4sobia
如何看UCBerkeley RISELab即将问世的Ray,replacement of Spark?**
不知道为什么会推送给我一个三年前的挖坟的问题?我试着从调度的角度来分析一下Spark和Ray的区别。

调度是计算机系统核心,从各个层次上都有调度的问题需要去处理,微架构层面的指令调度、OS层面的线程调度、集群层面的任务调度等等;Spark和Ray作为分布式应用的开发和运行框架,核心使命其实也是把调度做好,让应用的任务在集群上跑的快、资源利用率高,还有容错性,但是应用调度的需求其实还是差异性很大的,一个单一的框架很难满足所有的需求,从大的层面看,应用调度可以分为两个阶段,首先是任务的编排和优化,然后是任务的调度执行,下面试图从这两个角度来分析一下不同的框架有什么样不同的策略,然后再看一下Spark和Ray有什么区别:

###
任务的编排和优化**

总体而言可以分为两类:静态的编排和动态的编排

- 静态的编排和优化:** 任务执行前,通过编译和优化技术进行全局的编排;编排和 ... ⌘ Read more