带着问题读论文之DINC: Toward Distributed In-Network Computing

带着问题看论文
摘要
1.在网计算有什么优势
在网计算可以提供大量的性能收益、减轻负载和节约能耗
2.现有研究工作的限制
在网服务功能受限于单硬件设备,且现有的研究没有关注到分布在网计算
3.本文做的工作
本文提出了一种在网计算的应用
包含:架构、部署策略、克服资源限制,提供功能保证
策略部署中提出一种多目标优化策略。

正文
一、简介
1.在网计算服务是什么
在网计算服务是在数据平面卸载应用,提供高吞吐、低延时、高能效和数据减少;
2.网络服务功能存在的挑战与问题
拓展在网服务是比较困难的,因为可编程交换机倾向于提供高效率包处理(高吞吐),但是磁盘空间,控制与线程方面不如CPU;
方法之一是优化单设备部署策略的设计(应用的单设备计算,部署策略的问题应该是设计专用应用在哪个位置上计算),但是无法避免资源受限问题;另一个方法是分布在网协作计算应用,综合利用可编程网络设备的资源。
3.分布在网计算的挑战有哪些?
(1)将单个程序分解为多个子段
(2)在不影响功能正确性的前提下,将程序子段分发至多个设备
(3)符合程序和网络的限制,时延、网络资源限制等
(4)为网络内的任意一组路径提供程序功能,且无需更改路由规则(最难)
4.支持在网计算的技术支持是什么?
(1)SDN网络,可以提供全局的网络信息,包括设备的信息与通过网络流的潜在路由信息,所以SDN网络可以为分布在网计算提供支持;
(2)网络服务链,其为程序分段提供了启发式的解决方案,但是分布在网计算与其有本质区别:部署位置和设备类型不同,网络服务链是部署在CPU、GPU上的,但是在网计算是部署在交换机或者计算网卡上的。
5.先前研究工作的不足是什么?
先前对于分布在网计算的研究工作专注于分布问题,一些研究分布计算多个程序的合并(distributed multiple programs),而不是分割程序为子段,或者通过手动指令分割动作匹配表(MAT),然后将MAT依照目标部署于任何交换机上(这个也算分割并部署)。只有flightplan分割了任务并分布计算程序。但是很少有人部署后任务通过任意网络路由就可以实现分布在网计算,并且不需要修改器当前的路由规则。
6.本文所作工作是什么?
(1)介绍了分布在网计算范式的概念
(2)设计了一种多路径分布在网计算部署数学模型
(3)提出了一种机制来保证程序完全计算
(4)实施DINC,该架构易于部署与拓展,且无需更改路由规则
(5)真实场景实施
二、动机
1.在网计算的问题以及研究动机?
可编程交换机由于设计逻辑而存在资源限制:可编程交换机可以提供高吞吐,但是算力,存储等资源少;资源的限制导致在网计算难以施行;尽管如此,在网计算还是可以带来许多性能上的收益,因此值得研究。
2.DINC解决什么样的问题?
在网计算有两个解决方向,一个是利用单设备计算,一个是利用分布在网计算。单设备计算虽然性能很高,理论性能远超CPU/GPU。但是在网计算应用(如机器学习推理、流量分析)与网络基础功能(如路由、ACL)​​共享同一设备的硬件资源​​(流水线阶段、内存、ALU等),导致二者无法同时高效运行。
举的例子是,提供一些基础功能就已经占据了可编程交换机的一半资源了,所以很少有计算资源余留下来,留作单设备计算用。如果不共享网络中的stage资源,在设备上部署在网计算是比较困难的。有一个图展示了经典机器学习在Tofino上的应用,随着模型数据量增大,资源消耗也大大增加。
3.在网计算的计算服务所列举的服务例子是干什么的?
在网计算是用来支持实施网络安全服务的,检测和删除恶意流。
4.实施基础网络服务与在分布网计算服务共存 共存有哪些难点?
(1)没有公认的用于分布在网计算的网络模型;
(2)程序分割后,应用程序的各个段之间共享了参数,并且数据传递模型未定义。
(3)应用程序分割和与网络功能共存容易出错,如何保证切分执行顺序。
三、DINC的概念
两步,先讨论一个简单的在网计算应用案例包含的普遍特性,然后使用案例网络拓扑演示网络的多路径性质。
1.在网计算举例
在网计算通过映射计算任务到网络设备上的可编程数据平台来提供应用功能。
这些数据层面使用动作匹配通道,其中值在表中查找,查找结果是一个动作值。
顺序依赖性​​迫使任务按固定顺序占用多个流水线阶段,导致流水线被“堵死”,其他任务无法并行处理。元数据用于在stages之间传递共享信息,元数据存储在数据包标头向量 (PHV)中。(元数据是计算的中间值吗,这个stages不是pipeline的stages,而是MAT一个完整动作的stages,比如这个MAT动作的stages)
2.网络场景
多径,任何源与目的
3.分布部署举例
4.DINC总览
DINC需要回答三个问题:
(1)在同一个网络上,如何规划与分配段?(分割成几段)(放在哪里,才能让路由结果都可以适用,即最短或者最长的路径都可以算完?)
(2)当程序分布在网络中,如何保障功能?(这个更像是如何保障任务间的相互依赖性)
(3)如何使DINC方便部署

posted @ 2025-04-17 23:01  Wonx3  阅读(50)  评论(0)    收藏  举报