摘要:

包含丰富计算资源的新兴多核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的更多相关文章

  1. 分布式多任务学习论文阅读(四):去偏lasso实现高效通信

    1.难点-如何实现高效的通信 我们考虑下列的多任务优化问题: \[ \underset{\textbf{W}}{\min} \sum_{t=1}^{T} [\frac{1}{m_t}\sum_{i=1 ...

  2. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  3. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  4. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  5. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  6. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  7. [论文阅读] ALM-HCS(高对比场景自适应对数映射)

    [论文阅读] ALM-HCS(高对比场景自适应对数映射) 文章: Adaptive Logarithmic Mapping for Displaying High Contrast Scenes 1. ...

  8. 论文阅读(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 ...

  9. BITED数学建模七日谈之三:怎样进行论文阅读

    前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...

随机推荐

  1. 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题)

    layout: post title: 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题) author: "luowentaoaa" c ...

  2. 禁用Win10自带截图工具快捷键(Shift+Win+S)

    由于在微信之前,多年使用QQ的缘故,已经习惯了使用Ctrl+Alt+A进行截图,虽然QQ后来还专门提供了TIM(Office-QQ),但仍然渐渐的以微信为主,TIM甚至已经很少登录,之前登录也仅仅是为 ...

  3. CE修改器使用教程 [入门篇]

    Cheat Engine 一般简称CE,是一个开放源代码的作弊软件,其功能包括:内存扫描.十六进制编辑器.调试工具,Cheat Engine 自身附带了外挂制作工具,可以用它直接生成外挂工具,CE可以 ...

  4. CF 403D Beautiful Pairs of Numbers

    The sequence of integer pairs (a1, b1), (a2, b2), ..., (ak, bk) is beautiful, if the following state ...

  5. DataX操作指南

    1.DataX介绍 DataX DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HB ...

  6. js动态添加行和列(table)

    function AddTableRow() { var Table = document.getElementById("NewTable"); //取得自定义的表对象 NewR ...

  7. JDBC1

    ---恢复内容开始--- create table `account` ( `id` ), `name` ), `balance` ) ); insert into `account` (`id`, ...

  8. vue跳转新页面后回到顶部

    全部页面的话就在mian.js中设置或者 单独的某个页面就在页面加载之前设置 单独设置需变为this.$router router.afterEach((to,from,next)=>{ win ...

  9. js中自然日的计算

    需求:前端取后端返回的时间与当前时间进行比较展示,展示规则: 1.返回的时间跟当前时间同年同月同日 显示 今天 2.返回的时间与当前时间相差在7天以内 显示 某天前 3.返回的时间与当前时间相差大于7 ...

  10. java接口自动化测试小dome

    GitHub地址:https://github.com/leonInShanghai/InterfaceAutomation 这个dome 请求 https://www.v2ex.com/api/no ...