网络算法学:第三章 实现原则.pptVIP

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络算法学:第三章 实现原则

* 原则: 当确定性算法太慢时,可以考虑随机化策略。 以太网的例子: 使用随机回退解决信道冲突 检测超级节点的例子: 基于对网络流量的随机采样统计,检测网络中的超级节点。 图像压缩的例子: MPEG利用离散余弦变换实时压缩视频,代价是图像质量有一些损失。 第1章中检测异常URL的例子: 将字符比例门限用2的幂次近似表示,从而可以用简单快速的移位运行代替复杂耗时的除法运算。 原则: 将计算从一个子系统移动到另一个子系统,以使系统性能更好。 网络的例子: IPv6将分片的功能从路由器移到源节点,简化了路由器的实现,但提高了源节点的实现复杂度。 原则: 性能关键的组件通常部分地采用“自底向上”的方法构建。 有三种这样的技术: P4a:Exploit Locality(利用局部性) P4b:Trade Memory for Speed(用空间换速 度) P4c:Exploit Hardware Feature(利用硬件 特性) 原则: 将相关联的数据存放在连续的位置,存储器硬件可提供高效的访问。 应用的例子: 在检测异常URL的例子中 ,将G[i]、T[i]和C[i]放在一个SRAM字中。 用较大的空间换来速度的提升: 比如,将函数计算变为查表 比如,用多分支trie提高IP地址的查找速度 用较小的空间换来速度的提升: 比如,压缩很大的数据结构,使其可以放入cache,或者大部分可以放入cache。 编译器的例子: 使用strength reduction消除循环中的乘法运算,因为乘法运算比加法运行代价高很多。 过度使用P4原则,系统的模块化将受到损害。 运用P4原则需注意以下两点: 如果利用其它系统特性只是为了提高性能,那么对那些系统特性的改变应当只影响性能,不影响正确性。 仅对确认为是系统瓶颈的组件运用该原则。 原则: 当所有方法都不奏效时,增加硬件是更简单和有效的方法。 理想情况: 关键算法用软件实现,通过处理器升级获得速度提升。 对硬件与软件的传统看法: 硬件灵活性差,设计周期长,适合完成简单、固定的功能。 软件灵活性好,适合完成复杂的功能。 可重构计算的出现使得以上界线变得模糊。 P5a:使用内存交错和流水线 P5b:使用宽字并行 P5c:结合DRAM和SRAM 系统原则(1-5): 将系统看成由子系统构成,而不是一个黑盒子。 兼顾模块化和效率(6-10): 允许保留复杂系统的模块化,与此同时给出提高性能的方法。 加速(11-15): 仅加速某个关键例程的方法。 原则: 一个针对大多数情形设计的通用例程有时很低效,针对重要情形设计定制例程很有必要。 数据库的例子: 许多数据库应用设计专门的缓存例程,替换操作系统中基于LRU策略的缓存例程。 设计抽象的、一般性的子系统可能导致不必要的或者很少使用的特性。 原则: 移除一些不必要的特性来提高性能。 参考实现只是为了解释概念,并不关注效率。 原则: 实现者可以自由修改参考实现,只要两种实现的外部效果相同。 P9:Pass Hints in Module Interfaces P10:Pass Hints in Protocol Headers 线索是客户(模块或节点)传递给服务(模块或节点)的信息,如果正确的话,可以避免服务执行开销较大的计算。 如果大部分情况下线索是正确的,传递线索可以提高性能。 系统原则(1-5): 将系统看成由子系统构成,而不是一个黑盒子。 兼顾模块化和效率(6-10): 允许保留复杂系统的模块化,与此同时给出提高性能的方法。 加速(11-15): 仅加速某个关键例程的方法。 原则: 多数情况下系统行为是可预期的,有必要优化常见情形,哪怕可能使得非预期情形的处理变得低效。 启发式方法: 优化常见情形的方法称为启发式方法,启发式方法在实际系统中被大量使用。 体系结构的例子:使用cache优化指令的执行。 网络的例子:利用TCP头部预测加快TCP包处理。 原则: 如果一个操作的代价很高,可以考虑增加额外的状态或利用已有的状态来加速该操作。 数据库的例子: 建立辅助索引(增加状态) 网络的例子: IP头校验的增量计算(利用已有的状态) 自由度:可以由实现者控制的变量。 原则: 通过优化变量(自由度)来最大化系统性能 举例:使用多分支trie优化IP地址查找 自由度一:层数 自由度一:不同层上的查找步长 对于给定的吞吐量,通过动态规划确定层数及每一层的查找步长,以最小化内存需求。 原则: 处理小规模问题时,使用特殊技术而不是通用技术。 操作系统的例子: 页表使用的是简单的索引表,没有构造哈希表或使用二分查找 在运用P1~P14对系统进行优

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档