论文部分内容阅读
随着多核体系结构的发展,程序并行化技术面临着巨大的挑战。一方面,程序中数据的间接引用、指针别名、复杂的控制流等问题使得静态的依赖分析变得十分困难;另一方面,一些系统调用的使用(如内存分配、I/O操作等)常常限制了程序的并行。面对这些挑战,投机并行化技术具有自己的优势。
本文从投机并行执行模型、I/O操作投机支持和动态存储管理等方面对投机并行化技术进行深入研究。主要的贡献如下:
1.在投机并行执行模型方面,本文提出了进程重用、委托检测、任务自分配、状态实时跟进等方法,有效的解决了以往投机并行化系统任务分配不均衡、通信频繁、冲突代价高,以及进程启动/结束频繁等问题。本文亦将这几个方法进行融合,提出了一个高效的并行执行模型。
2.在I/O操作投机支持方面,本文针对含有文件读/写操作的代码段,提出了延迟竞争输出、局部优先输出和冗余读入等方法,使此类程序的并行化改写工作得以自动完成。本系统己对常见的文件读/写操作进行了并行化支持。对于读操作,程序员只需做少量的修改即可完成其并行化改写工作,而对于写操作,程序员甚至不需要做任何修改即可完成写操作的并行化支持。
3.在动态存储管理方面,本文提出了地址分割与映射、抢占式分配和集中式释放等方法,有效的解决了进程级投机并行化系统中内存分配与释放操作的支持问题。面对含有内存分配和释放操作的代码段,程序员不需要对他们做任何特殊的处理即可完成并行化支持。
对于本文所选的8个测试用例,它们的并行化改写工作在本投机并行化系统下变得较为简单。当本系统在出现较频繁的冲突时,测试的例子也能获得不错的性能,甚至在最差情况下依旧能接近于串行性能。而性能方面,在15个工作进程的情况下,这8个测试用例的平均加速比为9.4倍。