● 摘要
多核多处理器时代的到来给上层软件提出了更高的要求,上层应用软件需要更好利用底层硬件提供的并行性来提升整体效率。虽然并行化策略如自动并行化技术、适应多核并行的编程模型、运行时支撑和性能优化等方法被大量采用,但是并行化技术仍然存在难以编写、难以调试以及性能不确定等诸多问题,其中一个阻碍因素就是这些传统的并行化技术更加注重方法的通用性,而近期兴起的面向特定领域的并行化技术通过降低通用性的要求获得了更加有效的实用效果。
海量文件处理的场景在现实中非常多见,是搜索引擎和大数据相关处理的重要环节,其中为了加速其处理往往使用并行化策略,但是这就使得原本就是瓶颈的I/O成为海量文件处理加速的更大障碍,如今在单机上还没有专门用来优化海量文件处理的并行框架,这就使得对海量文件处理的并行编程框架的需求更加现实和急迫。
本文的在分析海量文件处理的特征、并行框架及I/O相关接口库、I/O优化策略等相关技术的基础上,提出面向多线程文件级预取技术和可感知I/O带宽并行度控制技术,来提升上层应用的I/O效率和吞吐量。
本文通过建立线程级的缓冲区来完成多线程条件下的预取技术,由于海量文件的特征,预取的对象直接确定为一个完整的文件,这就简化了线程级预取的复杂度。多线程预取技术较大的提高了海量文件的并行读写效率,为进一步优化海量文件的处理奠定了基础。此外并行程序相对于串行程序具有更大的性能不确定性,其中一个原因是多核中运行的应用的并行度很难直接和系统处理能力相匹配,盲目增加并行都可能反而由于资源的竞争降低性能、增加功耗。因此针对海量文件处理的场景,本文就以应用的实时I/O效率作为参考,建立应用并行度的反馈调节机制,动态持续优化应用的吞吐率,这对于海量文件处理而言有较大意义。
最后本文依据上述研究成果设计实现了面向海量文件处理的单机多核多处理系统上的并行编程框架及运行库,并进行了相关的实验和性能评价。
相关内容
相关标签