论文部分内容阅读
软件分布式共享存储系统(又称为虚拟共享存储系统)由于结合了共享存储系统的易编程性和分布式存储系统的可伸缩性而成为近十几年来的一个重要研究方向。设计软件分布式共享存储系统最主要的目标是对应用程序不作修改或很少修改就可以在该系统上运行,并能取得令人满意的性能。但为了维护共享数据的一致性和通信的透明而引入的系统开销使得现有的很多系统很难达到这个目标。 本文着重研究如何提高软件分布式共享存储系统的性能,分别从高速缓存一致性协议、存储器组织方式、系统开销、循环调度、任务迁移、和通信优化六个方面提出了相应的优化技术。 通过对传统的侦听协议、目录协议和几种不同的释放一致性协议进行的详细分析,本文提出了一个新型的基于锁的一致性协议,它的独特之处在于“主结点”的概念不仅应用于共享数据信息,而且还应用于一致性信息,如写记录,每个一致性信息根据相应的同步对象都有一个主结点。与基于目录的协议相比,该协议中所有与一致性相关的操作都在同步点上,因此对于普通的访存操作几乎没有任何额外的开销。更重要的是,基于锁的协议中无须维护一个目录,从而更具有可伸缩性,基于这个一致性协议,本文设计并实现了一个简单而实用的软件分布式共享存储系统JIAJIA。JIAJIA采用了一种类似CC-NUMA的存储组织方式,即同一页在所有处理机上都有相同的虚拟地址,因而在发生不命中时,无须象其它系统一样进行两次复杂的地址转换。另外,JIAJIA是第一个真正能够把多个机器的存储器组织起来形成大内存空间的系统,基于JIAJIA系统,本文并行化了一个电磁场计算的实际应用程序,效果与国际上同类程序的消息传递版本可比。另外,本文还提出一种基于置信区间的数据分析方法。 通过对软件分布式共享存储的系统开销进行的详细分析,发现远程数据不命中时间和同步时间是两个最主要的开销。因此提出读记录技术、唯cache写检测技术、层次式栅障实现等三种优化技术。分析结果表明,前两种技术对性能的提高是明显的,层次式栅障实现在系统规模较大时效果会比较好。 本论文第一次在软件分布式共享存储系统中分析和比较了各种自调度算法,发现一些以前的结论在这样的系统中不再成立,甚至完全相反。在分析前人工作的基础上,提出了一种基于耦合度的自调度算法ABS。该算法在调度时充分考虑了数据的静态分布和计算任务之间的关系,从而尽量保持处理机与存储器之间的耦合关系。ABS算法结合了集中式任务队列和分布式任务队列的优点,与分布式任务队列相比,大大减少了在负载不平衡时因调度引起的同步开销。