论文阅读:Fast, Scalable, and Programmable Packet Scheduler in Hardware
摘要:
随着链接速度的提高和CPU扩展速度的放缓,软件中的数据包调度会导致较低的精度和较高的CPU利用率。
通过将数据包调度卸载到诸如NIC之类的硬件,可以潜在地克服这些缺点。然而为了保持软件分组调度器的灵活性,硬件中的分组调度器必须是可编程的,同时还必须快速且可扩展。
硬件中最先进的数据包调度程序有的折衷了可扩展性(Push-In-First-Out(PIFO)),有的表达了各种数据包调度算法的能力(先进先出(FIFO)) ),即使像PIFO这样的通用调度原语也无法表现出足以表示分组调度算法的某些关键类的能力。
因此在本文中,我们提出了PIFO原语的泛化,称为Push-In-Extract-Out(PIEO),与PIFO一样,它维护元素的有序列表,但与PIFO不同,PIFO只允许从列表的开头出队,PIEO通过支持在出队时基于可编程谓词的过滤,允许从列表中的任意位置出队。
接下来,我们介绍PIEO调度程序的快速且可扩展的硬件设计,并将其原型化在FPGA上,PIEO调度程序比PIFO更具表现力,可扩展性超过30倍。
背景/问题:
数据包调度程序执行一种调度算法或调度策略,该算法或调度策略指定何时以及以什么顺序在网上传输数据包。在软件中实现数据包调度程序可以使用户灵活地快速试验并采用新的调度算法和策略。但是,这种灵活性是以消耗CPU周期为代价的。不幸的是,随着链接速度的增加与CPU速度缩放的减慢之间越来越不匹配,这个问题只会变得更糟。
满足软件中的这些严格要求具有挑战性,这主要是由于不确定的软件处理抖动和缺乏高分辨率软件计时器所致。硬件(例如NIC)中的数据包调度程序可以潜在地克服软件数据包调度程序的上述局限性,但是为了保持软件数据包调度程序的灵活性,硬件中的数据包调度程序必须是可编程的。
硬件中最先进的数据包调度程序基于两个调度原语:
先进先出(FIFO),它按到达顺序简单地调度元素。
推入先出(PIFO),它通过维护元素的有序列表(基于可编程的秩函数)并始终从有序列表的开头进行调度。
不幸的是,基于这些原语的数据包调度程序要么在可伸缩性(基于PIFO的调度程序)上折衷,要么无法表达各种数据包调度算法(基于FIFO的调度程序),即使是像PIFO这样的通用调度原语,其表达能力也不足以表达某些特定类型的分组调度算法。
解决办法:
我们提出了一种新的硬件可编程分组调度器,该调度器比现有技术具有更快的速度,可扩展的性能和更高的表现力。
为了设计可编程的数据包调度程序,我们了解到,大多数数据包调度算法在调度过程中有两个关键点:
当元素(数据包/流)变得适合进行调度时(由某些可编程谓词确定为时间的函数)
在符合条件的元素集合中以什么顺序进行调度(由某个可编程秩函数确定)
在任何给定时间,数据包调度算法都会先过滤当时有资格进行调度的元素集(使用谓词函数),然后再从该集合中调度排名最小的元素。因此,大多数数据包调度算法都可以抽象为以下调度策略:在任何给定时间,调度“最小排序的合格”元素。
我们提出了一种新的调度原语,称为Push-In-Extract-Out(PIEO),可以将其视为PIFO原语的概括。 PIEO与每个元素关联一个等级和一个资格谓词,这两者都可以基于调度算法的选择进行编程。接下来,PIEO通过始终根据元素的等级(“ Push-In”原语)将元素排入列表中的适当位置,从而以排名的升序维护元素的有序列表。最后,对于调度,PIEO首先从有条件谓词当时为真的有序列表中筛选出元素的子集,然后以该子集中最小索引处的元素出队(“ Extract-Out”原语)。
因此,PIEO总是安排“排名最低的合格”元素。
此外,我们使用的见解是,对于大多数数据包调度算法而言,可以在入队到有序列表中时计算出元素适合进行调度的时间(teliдible),并且出队时过滤的资格谓词评估通常减少为(tcur r ent≥teliдible),在这里t可以是时间的任何单调递增函数。
这种见解使PIEO调度程序的硬件实现非常有效。
论文阅读:Fast, Scalable, and Programmable Packet Scheduler in Hardware的更多相关文章
- 快速人体姿态估计:CVPR2019论文阅读
快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...
- [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks
[论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...
- [论文阅读笔记] node2vec Scalable Feature Learning for Networks
[论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...
- [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati
[论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...
- [论文阅读笔记] LouvainNE Hierarchical Louvain Method for High Quality and Scalable Network Embedding
[论文阅读笔记] LouvainNE: Hierarchical Louvain Method for High Quality and Scalable Network Embedding 本文结构 ...
- [置顶]
人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)
这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- YOLO 论文阅读
YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...
随机推荐
- ASP.NET Core中使用EasyCaching作为缓存抽象层
⒈是什么? 和CacheManager差不多,两者的定位和功能都差不多. EasyCaching主要提供了下面的几个功能 统一的抽象缓存接口 多种常用的缓存Provider(InMemory,Redi ...
- Maven简单项目及命令使用
项目结构如下 HelloWorld.java package pak1; public class HelloWorld { public String sayHello(){ return &quo ...
- 使用Python的文本挖掘的特征选择/提取
在文本挖掘与文本分类的有关问题中,文本最初始的数据是将文档表示成向量空间模型的一个矩阵,而这个矩阵所拥有的就是不同的词,常采用特征选择方法.原因是文本的特征一般都是单词(term),具有语义信息,使用 ...
- js跳转页面的方法
js跳转页面的几种方法 第一种:(跳转到b.html) <script language="javascript" type="text/javascript&qu ...
- luogu P2605 [ZJOI2010]基站选址
luogu 先考虑朴素dp,设\(f_{i,j}\)表示在第\(i\)个村庄放了基站,一共放了\(j\)次,且只考虑前面村庄影响的答案.这里可以把\(j\)放在外面枚举,然后从\(f_{k,j-1}( ...
- MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化)
一.什么是索引? 索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息. 二.索引的作用? 索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提 ...
- vscode常用插件列表
vscode插件 备注 Markdown PDF 把markdown文件转换成别的文件 Markdown TOC markdown文件目录生成 PHP Debug PHP调试 PHP Intenlli ...
- LaTeX的tasks宏包
tasks 宏包 LaTeX的列表(list)通常是将项(item,条目)一个一个垂直的平行显示,所谓"列"表的由来. 水平分列列表,即将多个项分散到各列而不是一列,在出考卷的选择 ...
- string 驻留机制
string 驻留机制 string s1 = "abc"; string s2 = "ab"; string s3 = s2 + "c" ...
- Delphi Label组件