论文部分内容阅读
多核处理器硬件技术的不断发展,为程序性能的提升提供了新的可能与机遇,但是传统的串行程序并不能有效地发挥多核处理器的计算能力,因此为了能够充分利用多核硬件资源带来的优势,对原有串行程序进行并行化改造就显得很有必要。本文根据实际应用项目的需求,对原有车辆发票日期提取程序进行了并行化研究与实现,从而有效地提高了程序的执行效率。本文首先对.NET Framework 4.0基于任务的并行编程技术进行了深入的研究,并总结了.NET平台新引入的任务并行库TPL(Task Parallel Library)提供的三种并行编程模型,即数据并行模型、任务并行模型以及数据和任务混合并行模型。然后通过对发票日期提取程序的并行化分析,找到了原有串行程序中的可并行化模块,并针对这些模块的分解方式确定了对应的并行化改造方案。最后使用TPL提供的并行编程模型实现了发票日期提取程序的并行化改造。论文主要设计实现了以下4种并行化改造方案:(1)针对经过字符切分操作获得的8张数字字符图像(发票日期由8个数字组成),利用数据并行模型对该8张图像的后续操作进行局部数据并行优化改造;(2)将所有待处理的发票图像作为并行处理的对象,并通过数据并行模型实现发票图像识别的整体数据并行,即每张发票图像与其他发票图像同时执行完整的日期提取操作;(3)使用流水线模式实现发票日期提取程序的并行优化,该模式通过使用混合并行模型实现不同图像的各个阶段的并行执行;(4)通过对发票日期提取程序各阶段的深入分析,本文探索了一种针对于该应用程序的负载均衡流水线并行优化方法,并最终利用混合并行模型支持该负载均衡流水线的实现。通过对上述4种并行改造程序实验结果的性能分析,发现整体数据并行以及负载均衡流水线模式能够使得程序获得几乎线性的加速比,同时在8核环境下,其加速比都达到了7.2x左右。因此,可以将这两种并行方案应用到实际项目中,从而在功能和性能上很好地满足用户的需求。