Paper Reading 《Real-Time Machine Learning: The Missing Pieces》

7R原则:

提出分布式在线学习计算框架应该具备的7个原则简称(7R):

Performance Requirements:性能要求

  • R1: Low latency 低延迟
  • R2: High throughput 高吞吐量

Execution Model Requirements: 执行模型要求

  • R3: Dynamic task creation 动态任务创建
  • R4: Heterogeneous tasks 构建异构任务
  • R5: Arbitrary data flow dependencies 任意数据流依赖

Practical Requirements: 实践要求

  • R6: Transparent fault tolerance 透明容错
  • R7: Dubuggability and Profiling 可调试性和性能分析

假设架构:

Paper Reading 《Real-Time Machine Learning: The Missing Pieces》_第1张图片

方案

为了支持执行模型需求(R3-R5),设计了一种API,允许将任意函数指定为可远程执行的任务,并具有数据流依赖关系。

  1. 任务创建是非阻塞的。创建任务时,将立即返回表示任务的最终返回值的future,并且异步执行任务。
  2. 可以将任意函数调用指定为远程任务,从而可以支持任意执行内核(R4)。任务参数可以是常规值或futures。当参数是future时,新创建的任务将依赖于产生future的任务,从而启用任意DAG依赖关系(R5)。
  3. 任何任务执行都可以创建新的任务而不会阻止其完成。任务吞吐量因此不受任何一个工作者(R2)的带宽限制,并且计算图是动态构建的(R3)。
  4. 通过在相应的future调用get方法可以获得任务的实际返回值。这会阻塞,直到任务完成执行。
  5. 等待方法有一系列future,一个超时和一些数值。当超时或完成请求的数量时,它会返回已完成任务的futures的子集。

等待原语允许开发者当超时时指定时间延迟要求(R1),从而计算任意大小的任务(R4)。 这对ML应用程序很重要,因为其中一个后续的任务可能会产生微不足道的算法改进,虽然会阻止整个计算。这个原语增强了我们根据执行时间(R3)动态修改计算图的能力。

为了补充细粒度的编程模型,我们建议使用一个数据流执行模型,在该模型中,当且仅当它们的依赖完成执行时,才能执行任务。

你可能感兴趣的:(Paper Reading 《Real-Time Machine Learning: The Missing Pieces》)