● 摘要
并行程序设计在工程开发中正在扮演着越来越重要的作用。但目前主流的并行程序设计方式大多仅提供特定领域解决方案或并发数据结构且大多基于Native平台。在实际的工程项目中存在着应用范围狭窄、兼容性差、跨平台不易、使用困难等诸多缺点,并缺乏诸如线程内存储数据Cache行对齐与动态负载平衡此类高级特性。另一方面虚拟机平台在工程项目中的应用越来越广泛,目标设备涵盖了服务器、PC、移动设备及其他嵌入式设备。但大多数虚拟机上还未提供专门的算法并行程序库,这样就阻碍了多核心处理器在虚拟机平台上的性能。本文总结实际的项目开发过程中遇到的问题针对目前主流并行设计方式的缺陷引入了基于虚拟机的并行库:采用虚拟机技术解决了跨平台问题与内存模型兼容性问题,使得实际工程中不必考虑平台的版本细节;采用算法而非并发的数据结构作为接口以适应实际问题使开发人员从繁琐的并发对象选择中解脱出来,加快项目的开发进程;引入了线程内存储对齐以解决数据伪共享问题,以提高实际项目中数据处理的速度;引入了问题描述机制降低开发人员对并行方案选择的难度;更内置了动态负载平衡的功能以进一步提高项目中不确定性较强的算法的执行效率。极大地弥补了共享内存式多处理器系统主流并行解决方案的缺陷,提升了项目开发效率。以上的所有特性均已经通过了长时间的测试,并应用在实际项目中,具有很强的实用性。本文又引入了开放性的图像处理平台,使用其极强的扩展能力针对阈值图像分割算法采用并行库进行优化实验。使图像分割速度得到了较大的提升并验证了并行库的有效性与易用性。
相关内容
相关标签