StaccatoLab:大规模数据流计算的编程与执行模型
1. 数据流图的循环与并发分析
在某些数据流图中,存在不同的循环情况。例如,有像 ACBA 这样的循环,其 μ(c) = 1 ,还有 ABCA 循环,若没有初始令牌则 μ(c) = ∞ 。当初始状态下所有节点都无法触发时,图会出现死锁。而在另一个图中,所有五个循环的 μ(c) = 1/2 ,所以 μ(G) = 1/2 。从初始状态开始,图会周期性运行,周期为 1/2 ,每个节点的触发率为 2 。有趣的是,周期是单个节点执行时间的一半,这体现了数据流形式允许节点在处理前一个任务时就开始下一次触发,即自动并发。可以通过为每个节点引入带有一个初始令牌的自循环来抑制自动并发,这样最右边的三轮图 μ(G) = 1 。添加反向边和初始化自循环属于数据流图增强的形式。上述理论可以扩展到包括静态数据流图,如循环静态图,部分扩展依赖于将图转换为 SDF 图或进一步转换为同质数据流图。
2. StaccatoLab 执行模型
基于上述标准数据流理论,StaccatoLab 执行模型有以下五个方面的选择:
- 自定时执行 :数据流图的执行是自定时的,确保程序员指定的所有并行性都能得到保持。这意味着不同程序节点之间没有资源共享,每个节点都有自己的资源来执行触发规则和计算输出令牌的值。
- 时钟周期执行时间 :节点执行时间以时钟周期为单位,取值为整数。例如,tn = 1 的节点执行一次触发规则需要一个时钟周期。通过添加带有一个令牌的自循环可以避免自动并发。当所有节点的 tn = 1 时,这种增强方式能使所有触发的开始和结束时间与全局时钟对齐,该全局时
StaccatoLab:数据流计算的创新模型
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



