论文部分内容阅读
近年来,在Hadoop平台上集成FPGA进行算法加速的研究受到了广泛关注。通过利用Hadoop将计算过程在节点之间并行,以及在单个计算节点上利用FPGA硬件加速,这些研究对特定算法的加速上取得了很好的效果。但是,它们大多假设集群计算节点同构,没有在集群层面对FPGA加速器资源进行统一的管理和调度,应用程序开发复杂程度高。而且,整个集群的软硬件结构为运行某一特定的算法高度定制,通用性差,资源利用率较低。另外,受限于FPGA计算逻辑固化的特点,已有的在Hadoop集群中管理其他计算加速设备的方法不适用于管理FPGA加速器。YARN资源管理平台的出现为FPGA资源统一管理提供了可能。结合FPGA加速器逻辑专用性的特点,采用资源表示维度扩充和基于标签的资源调度相结合的方法对YARN平台进行扩展,扩展YARN平台能够在包含多种FPGA加速器的异构集群中对FPGA加速器资源进行统一的管理和调度。同时,扩展平台隐藏了FPGA加速器在集群中的位置分布,为应用程序申请和使用加速器提供了统一的接口。此外,通过对YARN平台上的计算框架的资源申请和子任务执行逻辑进行扩展,扩展计算框架在保持原有计算模式不变的基础上具备在运行过程中申请和使用FPGA加速器的能力。在扩展YARN资源管理平台下同时运行普通应用程序以及FPGA加速的应用程序的结果表明,扩展平台在具备了FPGA资源管理和调度能力的同时,保持了对原生YARN平台上的各种计算框架的支持,使得集群通用性和资源利用率都有了很大的提高。在扩展框架下编写并运行FPGA加速应用程序的实验表明,扩展计算框架简化了FPGA资源的申请和使用逻辑,提高了应用程序开发效率。在目标集群中对算法进行FPGA加速实验的结果表明,输入数据读取速度、节点任务并发数、应用本身的计算复杂度对计算加速比有着决定性的影响。