论文部分内容阅读
事务存储和线程级推测是解决并行编程难的两种经典有效的方法。虽然它们所解决的问题不同,但是却有很多的相似之处,在一定的条件下可以相互转化,可以将这两种方法结合起来构成混合系统。在这种混合系统中,当线程之间数据依赖冲突比较小的时候,这两种模型都可以获得不错的性能。但是如果数据依赖冲突严重,那么它们的性能会变得非常的差。为此,有人提出了解决这个问题的办法,但是都有比较严重的缺陷。本文针对这个问题和现有方法的缺陷,给出了两种不同的解决办法:值预测和限制性值传递。
本文的主要研究工作和成果包括:(1)在LogSPoTM系统上实现了值预测模型。(2)在LogSPoTM系统上实现了限制性值传递的模型。(3)对基于LogSPoTM的值预测系统进行评测分析。(4)对基于LogSPoTM的限制性值传递模型进行评测与分析。
(1)值预测模型是当线程间发生数据冲突后,值预测器可能会给优先级低的请求线程发送一个数据,让它继续执行,而不是继续等待。(2)限制性值传递方法是在数据冲突发生时,只有满足一定条件的情况下,优先级高的数据所有者才会给数据请求者发送数据,这也可以在一定程度上提高系统性能。(3)我们选择LogSPoTM作为实验的基本模型,主要是因为它的系统复杂度比较适中,可扩放性好。从实验数据结果上看,通过采用值预测的方法,在4线程环境中我们比系统加速比从原来的2.26提升到了2.91。(4)对于限制性值传递的方法,4线程配置的加速比则从2.26提升到了2.78。
虽然限制性值传递的性能不如值预测系统,但是它的系统复杂度比值预测系统要低很多,是一种轻量级的模型。限制性值传递的方法体现了系统复杂度和性能一个比较好的折中。