%0 Journal Article %T 确定性多线程编程模型的可编程性及其实现性能的探索 %A 张昱 %A 曹慧芳 %J 中山大学学报(自然科学版) %D 2016 %X 摘要 传统的多线程程序存在许多不确定性,导致编程困难,易出错.确定性并行编程模型是保证并行程序确定执行的有效途径之一.针对所提出的确定性消息传递多线程编程模型DetMP及它在确定性生产-消费虚拟内存模型SPMC上的实现,本文探索DetMP的可编程性和实现机制对性能的影响.包括:总结了用DetMP改写现有Pthreads多线程程序的方法,并在32核计算机上用7个MapReduce应用程序和1个流水线并行程序dedup对比改写前后的性能.实验表明用DetMP改写后的程序在多数情况下比原来的Pthreads程序有好的性能.为了分析这种性能差异是否因使用了SPMC虚拟内存模型而引起,本文进一步基于传统Pthreads共享内存来实现DetMP应用编程接口,并用所改写的应用程序集评测它们在DetMP的两种实现上运行的性能.实验表明,当CPU核数为16和32时,基于SPMC的DetMP实现在除Matrix Multiply和String Match外的6个程序上有更好的性能,最高甚至比基于Pthreads的实现快9.5倍;而在Matrix-Multiply和String Match上或者核数低于16时,两种实现的性能相当 %K 确定性多线程编程模型 %K 虚拟内存模型 %K 性能 %K 可扩展性 %U http://xwxt.sict.ac.cn/CN/abstract/abstract3424.shtml