用软件实现并行计算机系统的时钟同步
详细内容
TRANSPUTER是近十年内VLSI技术利用在并行计算机领域的首批商业化产品,但是缺乏有效的调试工具以及不能对并行程序的性能进行正确的评价,这些因素极大地限制了TRANSPUTER并行计算机系统的推广和应用。系统监测和一些性能测试程序最需要的是全域时钟标尺,以便确定在并行程序中各事件的先后顺序。现阶段利用TRANsPUTER构成的并行计算机系统一般没有提供给每个处理单元(PE)都能读取的系统主时钟,每一个自处理单元(PE)的局域时钟值,这些时钟值并不能准确地反映不同PE上各事件发生与终止的先后顺序。这样,需要定义全域时钟,即采用硬件或软件方法对所有这些局域计时器进行同步。软件同步就是在各处理器上设置软件时钟并使各软件时钟始终保持一致而后对硬件时钟进行调整。本文提出的算法依据就是在每一个PE上,同步时钟能被一个或几个系统进程维持,系统进程的任务就是周期地计算每个PE硬件时钟针对软件时钟的调整量,这些调整量以系统的复杂性和硬件开销。目前的软件同步方法很多,本文提供的同步算法主要是为了支持监测和分析并行程序的性能,所以设计思想基于CPU和通信开销尽量低的前提下能获得高精度的同步。考虑到一般同步算法中的时钟容错设计会大大增加系统开销,而监测程序和被测试的程序不应被同步软件所干扰,所以本算法不考虑容错功能,而采用一种主从同步方法,这种方法采用系统中某一PE时钟为参考基准,周期地向外广播其时间值。