论文部分内容阅读
多核芯片结构需要解决的最具挑战性的问题之一是设计能够充分发挥这种结构优势的并行程序设计模型。在多核结构上采用由用户显式制导的并行程序设计模型,使用锁和同步变量来实现同步的方法存在很大的局限性。事务存储模型提供了一种在多核结构上程序并行执行和同步的方法,能够解决由锁机制带来的一系列问题,提高程序的并发性。
TMCMS(Transactional-MemorybasedChipMultiple-Superscaler)是我们提出的一种基于事务存储模型的多核结构,它利用软/硬件协作的方式支持对串行程序中常用语言结构的自动并行化并提供对多线程编程模型的支持,对程序员提供了更为方便的编程模型。
本文主要的研究内容和成果包括下面几个方面:(1)分析了现有并行系统由于存储一致性和锁机制设计带来的系统实现和编程上的困难,对比性地说明了事务存储模型的优点。详细分析和对比了现有的事务存储系统在解决硬件限制的方面所作的工作,提出利用多层次抽象和软/硬件结合的方法才是提供更高抽象级编程模型的可行途径。(2)设计和实现了TMCMS上针对循环、子程序调用和多线程结构的编程模型,编译器通过将程序转化为符合事务执行模型的形式实现了对程序的自动并行化。(3)设计和实现了针对循环结构的系统库函数和XIT(TransactionalInitialStructure)结构,通过调用硬件原语对用户层提供特定的功能。(4)以FFT程序的线程化为例,从处理器个数对IPC(InstructionPerCycle)的影响和并行化软件开销方面进行性能评价。
初步实验评估表明,处理单元从1增加到16个时,在我们设计的编程模型的支持下,IPC有接近线性的增长,说明该并行编程模型能够充分发掘程序中潜在的细粒度线程级并行性,同时保持并行程序设计的简单性。本文还讨论了影响事务存储编程模型性能的几个重要因素,提出了进一步的研究方向。