版权归原作者所有,如有侵权,请联系我们

[科普中国]-并行同步计算机

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

并行同步计算机,一般指的是在同时实行两个或多个数据库、文件、模块、线程之间用来保持数据内容一致性的机制的一种由于高速计算的电子计算机器。

用软件实现并行计算机系统的时钟同步提出了利用软件同步实现TANSPUTER系统中各处理器时钟同步方法。首先对并行计算机系统的时钟同步问题进行了介绍;然后对一种多处理器的同步算法简单地进行了描述,并给出了在990一 STAR并行计算机系统中实现的方法;提供了部分程序代码和注解以及在990一STAR并行计算机系统中获取的结果;讨论了代码的实用性和可移植性。1

同步问题系统就被认为同步,这可以通过相应的硬件和软件技术来实现。 讨论非容错的软件同步方法,其同步思想就是通过并行计算机系统中节点互联网络中的信息交换来计算同步硬件时钟时所需的调整值。具体实现过程就是假定处理节点中某个处理器的时钟作为参考时钟(主时钟),然后使并行计算机系统中其它的时钟值与其保持一致,这种机制可通过周期地广播主时间、并设置从时钟的值与它接收到的时间值相等来实现。

在系统软件设计时,因为时间管理总是属于最高优先级别的进程,系统总是会立即响应时间管理进程,这样不管Sender和Receiver进程谁先激活,其间的延迟可以用一些常数单位rdmin(最小激活延迟单位)来度量,虽然不知准确的激活延迟为多少,但可以通过将首先激活的进程人为延迟rdmin来得到部分补偿。1

算法实现和程序结构算法利用并行C语言和TRANSPUTER汇编语言混合编写、并已在研制的990一STAR并行计算机系统上侧试通过,990一STAR为松散藕合的并行计算机系统,包括16个数据处理节点和一个专用图像处理节点,每个数据处理节点由TRANSPUTER T805和Intel i860通过存贮共享藕合而成,每个i86。具有强大的计算能力,主要完成大负荷的计算。各节点之间的通讯通过T805及其通讯链来实现。为了便于系统的扩展和降低硬件的复杂性,整个系统没有设置硬件全局时钟,各节点之间的同步采用软件时钟来实现。 在TRANSPUTER系统中,LINK不能为几个同时被激活的进程共享,所以通信不会因LINK的吞吐量而受影响,对于进程激活延迟只要在首先激活的进程中加入适当的记rdmin即可,因为对于以LINK直接连接的节点,数据交换时,总是sender先于Rceciver结束,而对于以C004相连接的节点,情况就不一样。总之,通过在Master或Slaver同步代码中插入适当的延时就能补偿激活延迟误差。

程序的核心部分为相邻PE之间同步延迟的估算,这部分任务由进程send_time和receive_time来完成,receive_time进程还需进行漂移误差补偿,然后设置时钟值,在这两进程中还要考虑由于激活顺序差异而需补偿的时延值rdmin,rdmin加在哪一进程中完全视硬件连接方式而定。

程序基本结构的进程slaver被放在每一个从节点上,进程master放在主节点上,master进程控制广播时钟的间隔时间并广播时钟,slaver进程负责从选中的通路中接收时钟值,这步工作通过调用receive_time进程完成,并向指定的连接通路中传播时钟值,这步工作通过send_time进程来完成,进程slaver中BOOL变量sync_flag用来标明接收通路和发送通路,其值由link_inPut过程来完成设置,BOOL型函数sel_sync用来确定与某PE相连的LINK中哪些可用来作同步信号的传输。master进程的结构与lslaver进程非常相似,只是不用接收外部的时钟信号。1

运行试验结果在990一STAR并行计算机系统上进行了程序调试和运行试验,990一STAR并行机系统由基于TRANSPUTER通信的17个节点(PE)构成,所以只能获得d