论文部分内容阅读
在过去的十年中,随着移动互联网、云计算和大数据技术的快速发展,数据在不同领域呈现爆发式增长。同时,数据密集型计算也逐渐代替计算密集型计算成为当前主流的计算模式。由于数据密集型计算具有计算访存比低、数据访问不规则的特点,使得传统的计算机系统结构在处理数据密集型计算应用时存在严重的“存储墙”问题。另一方面,传统的数据中心由于能耗的限制使其无法通过无限制的横向扩展来满足日益增长的数据处理需求。因此,提升面向数据密集型计算的系统执行效能是解决数据中心“功耗墙”问题的关键。为了解决上述“存储墙”和“功耗墙”问题,我们对面向数据密集型计算的高效能可重构计算系统结构进行研究。基于FPGA的可重构计算因其强大的定制化并行计算、可配置的高带宽片上存储和I/O能力、以及较低的功耗,使其能够有效的利用数据密集型应用的并行性,提高计算效能。本文首先通过数据密集型计算的应用特征和主流计算机系统的结构特征的对比分析,分析数据密集型计算在不同系统结构下的执行瓶颈。然后,本文针对稀疏数据计算和高并发数据交互式计算这两类典型的数据密集计算应用场景,研究面向数据密集计算的高效能可重构计算系统结构。针对稀疏数据计算场景,本文以大规模图数据分析应用为例,讨论面向稀疏数据计算的高效能可重构系统的结构设计与优化。首先,我们提出面向稀疏数据计算的性能分析模型,相比于常用的Roofline模型,我们的模型不但考虑了计算能力、数据访存带宽,同时还考虑了访存延时对整体计算性能的影响。根据该模型,我们得出大规模图数据分析应用不仅仅是内存带宽约束型应用,更是内存延时约束型应用的结论。然后,针对稀疏数据计算的应用算法优化,我们提出了细粒度划分的边优先流式计算模型,一方面通过对图进行细粒度划分,利用片上内存的低访问延时特性,降低顶点随机访问造成的性能影响,并且顺序访问存储于外部内存的边数据和更新数据,提高外部内存带宽的利用率;另一方面通过对子图重排序的方法降低片上PE(Processing Engine)的负载均衡的问题。针对稀疏数据计算的硬件结构优化,我们提出两级洗牌网络来降低中间结果缓存大小;并且采用图压缩的方法降低内存访问的数据量。我们进一步设计并实现了基于可重构计算的高效能大规模图数据分析系统,相比于其他最新的FPGA系统实现,我们的系统在使用更少的片上查找表资源和更低的内存带宽的条件下,仍然具有1.18倍处理性能的提升,并且在处理性能/内存带宽比的性能指标上有3.62倍的提升。针对高并发数据交互式计算场景,本文以基于web服务的云计算应用为例,讨论面向高并发数据交互式计算的高效能可重构系统的结构设计与优化。首先,我们针对高并发数据交互式计算应用,提出了FPGA加速结构的性能分析模型。根据模型分析,我们得出结论:针对高并发数据交互式计算应用,采用网络I/O处理和应用数据处理紧耦合的SOPC系统结构比采用传统主从可重构结构能够获得更高的系统效能。然后,针对高并发数据交互式计算应用的硬件结构优化,我们设计并实现了面向高并发链接的TCP/IP硬件协议栈,能够支持100K并发TCP链接和接近10Gbps TCP/IP数据包处理速率。我们进一步提出了面向SOPC云计算系统的动态在线调度机制,以降低系统的动态功耗。最后,我们通过在拟态计算机平台上实现了web文件服务应用和ECG信号云处理两个典型云计算应用对结构进行验证。试验结果表明,在web文件服务应用中,我们的系统相比于通用服务器系统和主从结构的可重构系统能够支持更多的并发TCP链接和更低的数据处理延时。在ECG信号云处理应用中,我们的系统相比于通用服务器系统具有38倍的性能提升和418倍的效能提升。最后,我们总结了面向数据密集型计算的软硬件协同优化策略。首先,我们基于logP模型对数据密集型计算的应用特征和系统结构特征进行参数化建模,分析数据密集型计算的应用特征本质和系统结构特征本质。我们进一步定义了应用在系统上高效执行条件的解析表达,并根据模型分析数据密集型计算在传统的计算机系统下的执行瓶颈和优化方向。然后,我们总结了面向数据密集型计算的软硬件协同优化策略。在应用算法优化方面,我们总结了通过数据划分,提高数据局域性;优化数据结构,降低访存次数和数据量;改变数据存储和访存方式,合理利用存储结构;优化任务调度,降低同步开销等优化策略。在硬件结构优化方面,我们总结了紧耦合结构;宏流水线处理结构;重叠计算过程与I/O过程;平衡计算能力与I/O能力;计算性能换通信性能;合理利用多种存储器件等优化策略。在分析中,我们结合基于可重构计算的高效能大规模图数据分析系统和基于web的云计算系统的实现过程和实验结果,验证上述优化方法的有效性。上述面向数据密集型计算的软硬件协同优化策略能够为其他具有相似特征的数据密集型计算应用的系统设计和优化提供指导。