论文阅读:Offloading Distributed Applications onto SmartNICs using iPipe
摘要:
包含丰富计算资源的新兴多核SoC SmartNIC具有卸载通用数据中心服务器任务的潜力,但是目前尚不清楚如何有效地使用SmartNIC并最大程度地减少卸载收益,尤其是对于分布式应用程序。
为此,我们描述了四个商用SmartNIC的特性,并从四个角度总结了卸载性能的影响:
流量控制
计算能力
板载内存
主机通信
根据我们的特征,我们构建了iPipe,这是一个基于参与者的框架,用于将分布式应用程序卸载到SmartNIC上。 iPipe的核心是混合调度程序,它结合了基于FCFS和基于DRR的处理器共享,可以容忍具有可变执行成本的任务,并最大限度地提高NIC计算的利用率。
使用iPipe,我们构建了一个实时数据分析引擎,一个分布式交易系统和一个复制的键值存储,并在商用SmartNIC上对其进行了评估。我们的评估表明,当处理10 / 25Gbps的应用程序带宽时,NIC端卸载可以节省多达3.1 / 2.2强大的Intel内核,并将应用程序延迟降低23.0 / 28.0 µs。
背景/问题:
多核SoC(片上系统)SmartNIC已经出现在数据中心中,旨在缓解网络带宽增加和CPU计算能力停滞之间的差距。它们不仅针对协议处理的加速,而且还为数据中心带来了新的计算基础,以低成本扩展了服务器的计算能力——SmartNICs通常用简单的微体系结构封装计算核心,从而使其具有成本效益。
通常,这些SmartNIC包括多核处理器,板载SRAM / DRAM,数据包处理和特定于域的加速器以及可编程DMA引擎,不同的组件通过高带宽相干内存总线或互连连接。如今,大多数SmartNIC都配备了一个或两个10 / 25GbE端口,并且即将推出100 / 200GbE产品,这些计算资源使主机可以在不牺牲性能和程序通用性的情况下减轻通用计算(包括复杂的算法和数据结构)的负担。
最近有一些研究工作将网络功能转移到基于FPGA的SmartNIC上,他们采用常规的特定领域加速方法,将大多数应用程序逻辑整合到FPGA可编程逻辑模块中。这种方法适用于特定类别的应用程序,这些应用程序具有足够的并行性,确定性的程序逻辑以及可以在FPGA上有效合成的常规数据结构。但是针对具有复杂数据结构和算法的分布式应用程序,还没有相关的方法,因为这些应用程序不能在基于FPGA的SmartNIC上有效实现。
解决方法:
我们将SmartNIC分为四个架构组件:流量控制,计算单元,板载内存和主机通信,并使用微基准来表征其性能。实验确定了我们必须认识到的资源约束,说明了硬件加速单元的效用,并为如何有效利用资源提供了指导。
我们基于特征研究设计和实现iPipe框架。
iPipe引入了用于分布式应用程序开发的参与者编程模型,每个参与者都有自己独立的私有状态,并通过消息与其他参与者进行通信。我们的框架提供了分布式内存对象抽象,并支持角色迁移,响应动态工作负载变化并确保线速流量的传递。iPipe的核心是Actor调度程序,该调度程序结合了基于FCFS和DRR的处理器共享,从而可以承受具有可变执行成本的任务,并最大限度地提高SmartNIC的资源利用率。 iPipe允许来自不同应用程序的多个参与者安全地共存于SmartNIC,从而防止参与者状态损坏和拒绝服务攻击。
iPipe的机制可实现对任意应用程序逻辑的动态且可感知工作负载的卸载,这与以往专注于专门任务的静态卸载的工作并不相同。
实现细节:

多核SoC SmartNIC包括四个主要部分(如上图所示):
计算单元,包括通用ARM / MIPS多核处理器,以及用于数据包处理的加速器(例如,深度处理、数据包检查,数据包缓冲区管理)和专用功能(例如加密/解密,哈希,模式匹配,压缩)
板载内存,其中包含快速的自我管理暂存器和较慢的L2 / DRAM
流量控制模块,用于在TX / RX端口和数据包缓冲区之间传输数据包,并带有将数据包发送到NIC核心的内部流量管理器或NIC交换机
用于与主机通信的DMA引擎
根据SmartNIC核心与流量的交互方式,我们将SmartNIC进一步分为两种类型:路径上和路径外SmartNIC。
路径上SmartNIC的核心位于数据包通信路径上,并具有处理每个传入/传出数据包的功能,偏离路径的SmartNIC根据安装在NIC交换机上的转发规则将流量流传递到主机核心(绕过NIC核心)。
iPipe框架的设计和实现:
我们使用从实验中收集到的见解来分析,任务应从以下几个方面出发:
可编程性:配备SmartNIC的商用服务器是具有非对称计算能力的非缓存一致性异构计算平台。我们需要可用于开发通用分布式应用程序的简单编程抽象。
计算效率:SmartNIC上有大量计算资源(例如,多核处理器,适度的L2 / DRAM和大量加速器),但应该高效地使用它们,不适当的卸载可能会导致NIC内核超载,带宽损失和浪费的执行停顿。
隔离:SmartNIC可以同时容纳多个应用程序,应该保证不同的应用程序不能互相影响状态,应用程序之间不存在性能干扰,并且尾部延迟是适度的。
iPipe具有三个关键系统组件:
一个actor调度程序,该调度程序可跨SmartNIC和主机核心工作,并使用混合FCFS / DRR调度规则来启用执行演员处理程序,执行成本各不相同
分布式对象抽象,支持灵活的参与者迁移并支持软件管理的缓存,以减轻SmartNIC承载主机通信的成本
一种安全隔离机制,可保护参与者状态免受损坏和拒绝服务攻击
论文阅读:Offloading Distributed Applications onto SmartNICs using iPipe的更多相关文章
- 分布式多任务学习论文阅读(四):去偏lasso实现高效通信
1.难点-如何实现高效的通信 我们考虑下列的多任务优化问题: \[ \underset{\textbf{W}}{\min} \sum_{t=1}^{T} [\frac{1}{m_t}\sum_{i=1 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
- [置顶]
人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)
这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...
- Nature/Science 论文阅读笔记
Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...
- [论文阅读] ALM-HCS(高对比场景自适应对数映射)
[论文阅读] ALM-HCS(高对比场景自适应对数映射) 文章: Adaptive Logarithmic Mapping for Displaying High Contrast Scenes 1. ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
随机推荐
- pyhton sort()无返回值
li3=['] li4=li3.sort()#sort是没有返回值得,打印的是none,对列表进行升序排列 print(li4) print(li3) 输出结果是None['123', '123', ...
- springBoot中tomcat默认端口修改
springboot在启动tomcat的默认端口是8080,在实际开发中,应客户要求必须使用80端口. 研究springboot后发现有两种方式可以实现修改tomcat的端口 第一.直接修改appli ...
- 基于 Vue.js 2.0 酷炫自适应背景视频登录页面的设计『转』
本文讲述如何实现拥有酷炫背景视频的登录页面,浏览器窗口随意拉伸,背景视频及前景登录组件均能完美适配,背景视频可始终铺满窗口,前景组件始终居中,视频的内容始终得到最大限度的保留,可以得到最好的视觉效果. ...
- thinkphp6下无法获取header头中的Authorization(apache版)
今天遇到在thinkphp框架中获取不到header头里边的 Authorization ,后来在.htaccess里面加多一项解决,记录下: <IfModule mod_rewrite.c&g ...
- 2019年8月23日 星期五(韩天峰的swoole)
Swoole:面向生产环境的 PHP 异步网络通信引擎 使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HTTP,WebSocket 服务. Swoole 可以广 ...
- Erasing Substrings CodeForces - 938F (字符串dp)
大意: 给定字符串$s$, 长度为$n$, 取$k=\lfloor log2(n)\rfloor$, 第$i$次操作删除一个长度为$2^{i-1}$的子串, 求一种方案使得, $k$次操作后$s$的字 ...
- python网络爬虫(7)爬取静态数据详解
目的 爬取http://seputu.com/数据并存储csv文件 导入库 lxml用于解析解析网页HTML等源码,提取数据.一些参考:https://www.cnblogs.com/zhangxin ...
- Java后端技术面试汇总(第四套)
1.Java基础 • 为什么JVM调优经常会将-Xms和-Xmx参数设置成一样:• Java线程池的核心属性以及处理流程:• Java内存模型,方法区存什么:• CMS垃圾回收过程:• Full GC ...
- python发起post请求获取json数据使用requests方法
最普通的答案 我一直就觉得GET和POST没有什么除了语义之外的区别,自打我开始学习Web编程开始就是这么理解的 . 可能很多人都已经猜到了答案是: 1.GET 使用URL或Cookie传参.而POS ...
- 不基于比较的排序算法:Counting-sort和Radix-sort