一种用于机群系统并行模拟的时间序列控制方法

文档序号:6333329阅读:207来源:国知局
专利名称:一种用于机群系统并行模拟的时间序列控制方法
技术领域
本发明涉及一种适用于机群系统的时间序列控制方法,更特别地说,是指一种用 于机群系统并行模拟的时间序列控制方法。
背景技术
目前主流高性能计算机系统的运算速度已达到百万亿次,突破千万亿次的超级计 算机系统也已经诞生。为了尽可能大的提高计算机系统的整体性能,在设计高性能计算机 系统时需要考虑各方面的因素,因此计算机的系统结构、处理节点的组织方式都变的越来 越复杂,研制并开发一个高性能计算机系统面临着巨大的挑战。对于一个项目,设计上的丝 毫疏漏都会导致开发中人力物力的极大浪费。使用模拟器运行应用程序,对设计方案进行 性能评价可以有效的规避设计开发过程中可能存在的风险。参见图1所示,图中表征了所 述模拟器中的宿主系统与目标系统之间进程的映射关系。所述的模拟器中包括有计算节点 模拟部件、存储模拟部件、网络模拟部件等。时间序列控制是模拟器实现的核心部分,它根据模拟进程在宿主系统中的执行过 程,得到该进程在目标系统中的执行过程。时间序列控制的目的是根据从模拟系统中捕获 到的模拟事件,建立一个虚拟的逻辑时钟,根据目标系统中的模拟事件运行状态来维护更 新该时钟的状态。

发明内容
本发明的目的是提出一种用于机群系统并行模拟的时间序列控制方法,该方法根 据模拟进程在宿主系统中的执行过程,得到该模拟进程在目标系统中的执行过程,从而获 得应用程序在目标系统中的执行结果。具体包括根据模拟器的配置,将宿主系统进程映射 到各个目标节点;然后模拟目标节点中的进程调度机制,逐条处理事件记录;采用模拟器 进行事件模拟,并根据返回结果完成目标系统的时间同步处理。本发明的一种用于机群系统并行模拟的时间序列控制方法,是通过下列步骤得以 实现第一步将从宿主系统中各个节点捕获到的所有模拟事件按时间戳Etinre先后进行 排序,得到时间_模拟事件集EVE ;所述的模拟事件是应用程序在宿主系统中运行时发生的各种事件,具体包括进程 调度事件ER、存储访问事件ES、网络通信事件EC和阻塞事件EB ;后续的处理过程都必须按 照时间戳Etime有序的进行处理,即同一进程原始的事件执行逻辑先后顺序不能改变,这样 可以保证对目标系统的模拟在逻辑上合理;则有在目标系统中运行进程调度事件ER所需 的模拟时间记为Tek、运行存储访问事件ES所需的模拟时间记为Tes、运行网络通信事件EC 所需的模拟时间记为Tk和运行阻塞事件EB所需的模拟时间记为Teb ;第二步依据宿主-目标映射关系MAP对时间-模拟事件集EVE进行扫描,得到目 标系统中每一个目标节点的事件缓冲队列Qi,其中,i表示任意一个目标节点;
第三步为每一个逻辑进程建立一个时间轴ATj,并记录进程当前时间TNj,其中,j 表示任意一个逻辑进程;所述的每个逻辑进程时间轴的起始时间为零;第四步首先根据目标系统的配置依次轮流对事件缓冲队列Qi中的事件进行模 拟,每轮处理各事件缓冲队列Qi中时间戳Etinre最小的一个事件,从而得到事件模拟时间 TSi^ ;然后采用时间轴更新策略更新进程当前时间TNj ;所述的事件模拟时间TS^中包括有调度时间Tek、访问时间Tes、通信时间Tk和阻 塞时间Teb ;第五步当所有事件缓冲队列Qi中的事件都处理完成,即得到了进程在目标系统 中的执行过程,各个逻辑进程的时间轴Αη.中模拟时间的最大值Tmax即为应用程序在目标系 统的运行时间。所述的用于机群系统并行模拟的时间序列控制方法,其目标系统的配置包括有目 标系统节点数、节点中CPU数及核数、网络拓扑结构、网络带宽、磁盘阵列参数等。本发明的优点①处理过程中事件按时间戳有序排列,简化了事件处理过程,保证了处理后的所 有事件发生顺序保持不变,进程间通信事件发生的顺序合乎逻辑。②为每个目标节点建立一个事件缓冲队列分别缓存待处理的事件,使得在对事件 的分析处理过程中不必考虑宿主机进程到逻辑进程的映射关系,提高了模拟的效率。③采用本发明提出的时间轴更新策略,在保证事件发生的逻辑顺序合理的前提下 模拟并记录了事件在目标系统中的发生过程,提高的模拟的准确性。


图1是模拟器中宿主系统与目标系统之间进程的映射关系示意图。图2是本发明时间序列的控制结构图。图3A、图3B是本发明目标节点内访存事件同步前、后进程调度序列对比图4是本发明通信事件处理流程图。图5A、图5B是本发明目标节点内通信事件同步前、后进程调度序列对比。图6A、图6B是本发明目标节点间通信事件同步前、后进程调度序列对比。
具体实施例方式下面将结合附图对本发明做进一步的详细说明。本发明的一种用于机群系统并行模拟的时间序列控制方法,该时间序列控制方法 根据从宿主系统中捕获到的模拟事件,对目标系统的所有进程建立一个逻辑时钟,依照目 标系统中的模拟时间运行状态来维护和更新该逻辑时钟的状态,最终得到进程在目标系统 中的运行时间。本发明依据宿主-目标映射关系MAP对时间-模拟事件集EVE进行扫描, 得到目标系统中每一个目标节点的事件缓冲队列Qi。本发明的一种用于机群系统并行模拟的时间序列控制方法,通过下列步骤得以实 现第一步将从宿主系统中各个节点捕获到的所有模拟事件按时间戳Etinre先后进行
5排序,得到按时间有序排列的模拟事件集EVE (简称为时间-模拟事件集EVE);所述的模拟事件是应用程序在宿主系统中运行时发生的各种事件,具体包括进程 调度事件ER、存储访问事件ES、网络通信事件EC和阻塞事件EB ;后续的处理过程都必须按 照时间戳Etime有序的进行处理,即同一进程原始的事件执行逻辑先后顺序不能改变,这样 可以保证对目标系统的模拟在逻辑上合理;则有在目标系统中运行进程调度事件ER所需 的模拟时间记为Tek、运行存储访问事件ES所需的模拟时间记为Tes、运行网络通信事件EC 所需的模拟时间记为Tk和运行阻塞事件EB所需的模拟时间记为TEB。第二步依据宿主-目标映射关系MAP对时间-模拟事件集EVE进行扫描,得到目 标系统中每一个目标节点的事件缓冲队列Qi (i表示任意一个目标节点);所述目标节点中的每一个CPU核由一个模拟进程来模拟,该模拟进程称为目标系 统的一个逻辑进程,如图2所示;图中,每一个宿主节点有一个事件缓冲队列,每一个事件 缓冲队列中包括有多个逻辑进程发生的事件。在本发明中,由于宿主系统的一个节点能够模拟目标系统中的多个目标节点,则 有宿主系统中各节点进程到目标系统中的各个目标节点的映射关系(简称为宿主_目标映 射关系MAP,映射关系如图1所示)。第三步为每一个逻辑进程建立一个时间轴ATj (j表示任意一个逻辑进程),并记 录已经处理完成的事件和逻辑进程当前处理到的时间TNj (简称为进程当前时间TNj);在本 发明中,每个逻辑进程时间轴的起始时间为零;第四步首先根据目标系统的配置依次轮流对事件缓冲队列Qi中的事件进行模 拟,每轮处理各事件缓冲队列Qi中时间戳Etinre最小的一个事件,从而得到相应事件在目标 系统完成所需的模拟时间TSh(简称为事件模拟时间TSiJ ;然后采用时间轴更新策略更 新进程当前时间TNj ;在本发明中,事件模拟时间TSpj中包括有在目标系统中运行进程调度事件ER所 需的模拟时间记为Tek (即调度时间Tek)、运行存储访问事件ES所需的模拟时间记为Tes (即 访问时间Tes)、运行网络通信事件EC所需的模拟时间记为TEC(即通信时间Tec)和运行阻塞 事件EB所需的模拟时间记为Teb (即阻塞时间Teb),用数学表达为TS^ = {TEE, Tes,Tec,TEB};在本发明中,目标系统的配置包括有目标系统节点数、节点中CPU数及核数、网络 拓扑结构、网络带宽、磁盘阵列参数等。第五步当所有事件缓冲队列Qi中的事件都处理完成,即得到了进程在目标系统 中的执行过程,各个逻辑进程的时间轴Αη.中模拟时间的最大值Tmax即为应用程序在目标系 统的运行时间。在本发明中,第四步中对事件缓冲队列Qi中的事件进行模拟采用了时间轴更新策 略,但对不同的事件类型(进程调度事件ER、存储访问事件ES、网络通信事件EC和阻塞事 件EB)依据的时间轴更新策略为如下说明(一 )进程调度事件ER在本发明中,若事件缓冲队列Qi为进程调度事件ER,则调用计算节点模拟部件,得 到该事件在目标节点的CPU上的运行时间Tek,然后根据Tsi来推进对应的逻辑进程时间轴, 累加得到进程当前时间Τ 。(二)存储访问事件ES
在本发明中,若事件缓冲队列Qi为存储访问事件ES,则调用存储模拟部件,得到该 事件在目标系统磁盘阵列的访问时间Tes,然后根据Tes来推进对应的逻辑进程时间轴,累加 得到进程当前时间Τ 。为了详细说明运行存储访问事件ES所需的模拟时间即访存事件处理过程,如图 3A和图3B表示出了一次访存事件处理前后进程调度的变化。cO,cl代表目标节点i的两 个核,其中每个核上有两个逻辑进程。假设在时刻t0,进程pi执行了 write读磁盘操作,对 应图3A中进程pi的2号执行片段末尾,进程pi因此被换出处理器Cl。在存储模拟部件 中,事件在目标系统磁盘阵列的访问时间为△ 11,进行访存检查前,仅按照进程执行片段进 行调度时,该操作据下一次被换入处理器cl的时间间隔为Δ t0,由于AtO < Atl,因此, 需要调整进程Pl再次被换入处理器cl的时间。根据调整后进程执行片段的时间序列,对 该事件之后的其它片段重新执行进程调度,结果如图3B所示。在3A和图3B中,进程中发 生的事件顺序不能改变,故采用1、2、3、4、……,按照数字先后顺序标记。(三)网络通信事件EC在本发明中,若事件缓冲队列Qi为网络通信事件EC,则调用网络模拟部件,得到该 事件在目标系统中网络时延Te。,然后根据Tk来推进对应的逻辑进程时间轴,累加得到进程 当前时间ΤΝ」。在本发明中,网络通信事件EC处理时需要对每个目标节点单独建立通信事件缓 冲队列,用来存储暂时没有匹配成对的通信事件。当一条网络通信事件到达时进行判断,如 果执行的是send发送操作,那么直接根据相关信息更新目标节点逻辑进程的时间轴,如果 执行的是recv接收操作,那么将该逻辑进程阻塞(即发生阻塞事件EB),直到寻找到其对应 的send发送操作事件并调用网络模拟部件进行处理后,才更新相关逻辑进程的当前时间 TNj,并解除阻塞(处理流程参见图4所示),从阻塞开始到解除阻塞的时间记为TEB。网络通信事件EC又划分为两类节点内通信和节点间通信。在通信双方是节点内通信的情况下,当有一对网络通信时间发生匹配能够进行分 析处理时,主要依据的是执行该事件的进程在目标系统中的时间戳。此时可能会出现如下 两种情况第一种,send操作的时间戳小于recv操作的时间戳,这说明在目标系统中,此次 send操作在recv操作之前,逻辑顺序正确。那么对于双方不需要进行额外的处理,直接用 原始的事件记录来更新相关进程的时间轴并解除recv端的阻塞。第二种,send操作的时间戳大于recv操作的事件戳,这说明映射到目标系统后, recv操作反而在send操作之前执行,此时需要让recv端进程一直阻塞,直到到达和send 端相同的时间戳后才解除阻塞并更新时间轴。对于第二种情况,图5A和图5B表示出了一次节点内通信同步处理前后进程调度 的变化。c0,cl代表目标节点i的两个核,其中每个核上有两个逻辑进程。假设在时刻t3, 进程PO执行recv接收操作,它需要接收来自进程p2的一条消息,因此被换出处理器cO ; 在时刻t4,进程p2执行了 send发送操作,向进程p0发送一条消息。网络模拟部件根据两 个事件的日志信息判断二者为一次完整通信,匹配成功。由于两个进程属于同一目标节点, 在宿主系统中也属于同一台宿主节点,因此在将宿主节点实际测量的延迟时间At2作为 目标节点中的延迟时间。实际测得进程Ρ2执行完send操作后,经过At2的延迟时间后进程PO才能收到该消息而再次被换入处理器CO。因此,需要调整进程PO再次被换入处理器 的时间,并根据调整后的时间序列,对该事件之后的其它执行片段重新执行进程调度并排 序,结果如图5B所示。在5A和图5B中,进程中发生的事件顺序不能改变,故采用1、2、3、 4、……,按照数字先后顺序标记。对于通信双方是节点之间通信的情况,其与节点内通信的最大区别是,节点内通 信模拟时不需要调用网络模拟部件来处理,只需要进行进程的同步处理,而节点间通信时 要依据配置的目标节点间网络互连参数,通过网络模拟部件计算出通信的网络传输时间后 再进行同步。这里需要在send发送操作时,根据相关信息进行网络模拟,得到本次send操 作在目标节点间网络的传输时间,把该时间更新到目标系统进程的时间轴中。此时仍需要 依据通信双方进程在目标系统中的时间戳进行同步,还是类似的和节点内通信一样处理两 种情况,所不同的是使用的是更新了网络传输时间后的send操作时间戳。图6A和图6B表示出了一次节点间通信同步处理前后进程调度的变化。假设选取 目标节点中的第no号目标节点和第m号目标节点进行两个目标节点间的通信。当时刻 to,目标节点NO的进程p2执行了 recv接收操作,需要接收来自目标节点m中进程p6发 送的消息,由于尚未收到,进程P2被换出处理器CO ;当时刻t5,进程p6执行send发送操 作。经判断,该消息与进程P2在t0时刻recv接收操作匹配成功。处理进程先从日志记录 中读取通信相关信息,再以这些信息为参数来调用网络模拟部件,模拟返回本次传输的延 迟时间为At3,进程p2至少在消息到达目标节点NO后,才可能被换出处理器cO。由图6A 可知,进程p2至少在t7时刻才允许被重新换入处理器cO,当当前进程调度在t6时刻就将 其换入处理器cl,因此,需要对节点NO在t6时刻之后的进程执行片段进行调整,结果如图 6B所示。(四)阻塞事件EB若在网络通信事件EC中发生阻塞事件EB,则根据网络通信事件EC所述的阻塞时 间Teb来推进对应的逻辑进程时间轴,累加得到进程当前时间Τ 。应用本发明所述的用于机群系统并行模拟的时间序列控制方法,发明人实现了机 群系统并行模拟器,对不同规模的目标系统进行了模拟,模拟性能如下表
权利要求
一种用于机群系统并行模拟的时间序列控制方法,其特征在于通过下列步骤得以实现第一步将从宿主系统中各个节点捕获到的所有模拟事件按时间戳Etime先后进行排序,得到时间 模拟事件集EVE;所述的模拟事件是应用程序在宿主系统中运行时发生的各种事件,具体包括进程调度事件ER、存储访问事件ES、网络通信事件EC和阻塞事件EB;后续的处理过程都必须按照时间戳Etime有序的进行处理,即同一进程原始的事件执行逻辑先后顺序不能改变,这样可以保证对目标系统的模拟在逻辑上合理;则有在目标系统中运行进程调度事件ER所需的模拟时间记为TER、运行存储访问事件ES所需的模拟时间记为TES、运行网络通信事件EC所需的模拟时间记为TEC和运行阻塞事件EB所需的模拟时间记为TEB;第二步依据宿主 目标映射关系MAP对时间 模拟事件集EVE进行扫描,得到目标系统中每一个目标节点的事件缓冲队列Qi,其中,i表示任意一个目标节点;第三步为每一个逻辑进程建立一个时间轴ATj,并记录进程当前时间TNj,其中,j表示任意一个逻辑进程;所述的每个逻辑进程时间轴的起始时间为零;第四步首先根据目标系统的配置依次轮流对事件缓冲队列Qi中的事件进行模拟,每轮处理各事件缓冲队列Qi中时间戳Etime最小的一个事件,从而得到事件模拟时间TSi j;然后采用时间轴更新策略更新进程当前时间TNj;所述的事件模拟时间TSi j中包括有调度时间TER、访问时间TES、通信时间TEC和阻塞时间TEB;第五步当所有事件缓冲队列Qi中的事件都处理完成,即得到了进程在目标系统中的执行过程,各个逻辑进程的时间轴ATj中模拟时间的最大值Tmax即为应用程序在目标系统的运行时间。
2.根据权利要求1所述的用于机群系统并行模拟的时间序列控制方法,其特征在于 目标系统的配置包括有目标系统节点数、节点中CPU数及核数、网络拓扑结构、网络带宽、 磁盘阵列参数等。
3.根据权利要求1所述的用于机群系统并行模拟的时间序列控制方法,其特征在于 所述事件缓冲队列Qi中的进程调度事件ER采用的时间轴更新策略为若事件缓冲队列Qi 为进程调度事件ER,则调用计算节点模拟部件,得到该事件在目标节点的CPU上的运行时 间Tek,然后根据Tsi来推进对应的逻辑进程时间轴,累加得到进程当前时间Τ 。
4.根据权利要求1所述的用于机群系统并行模拟的时间序列控制方法,其特征在于 所述事件缓冲队列Qi中的存储访问事件ES采用的时间轴更新策略为若事件缓冲队列 Qi为存储访问事件ES,则调用存储模拟部件,得到该事件在目标系统磁盘阵列的访问时间 Tes,然后根据Tes来推进对应的逻辑进程时间轴,累加得到进程当前时间Τ 。
5.根据权利要求1所述的用于机群系统并行模拟的时间序列控制方法,其特征在于 所述事件缓冲队列Qi中的网络通信事件EC采用的时间轴更新策略为若事件缓冲队列Qi 为网络通信事件EC,则调用网络模拟部件,得到该事件在目标系统中网络时延Te。,然后根 据Tk来推进对应的逻辑进程时间轴,累加得到进程当前时间Τ 。
6.根据权利要求5所述的用于机群系统并行模拟的时间序列控制方法,其特征在于网络通信事件EC处理时需要对每个目标节点单独建立通信事件缓冲队列,用来存储暂时 没有匹配成对的通信事件;当一条网络通信事件到达时进行判断,如果执行的是send发送 操作,那么直接根据相关信息更新目标节点逻辑进程的时间轴,如果执行的是recv接收操 作,那么将该逻辑进程阻塞(即发生阻塞事件EB),直到寻找到其对应的send发送操作事件 并调用网络模拟部件进行处理后,才更新相关逻辑进程的当前时间TNj,并解除阻塞,从阻 塞开始到解除阻塞的时间记为TEB。
7.根据权利要求5所述的用于机群系统并行模拟的时间序列控制方法,其特征在于 网络通信事件EC包括有节点内通信和节点间通信;其中,在通信双方是节点内通信的情况下,当有一对网络通信时间发生匹配能够进行 分析处理时,主要依据的是执行该事件的进程在目标系统中的时间戳;此时可能会出现如 下两种情况第一种,send操作的时间戳小于recv操作的时间戳,这说明在目标系统中,此次send 操作在recv操作之前,逻辑顺序正确;那么对于双方不需要进行额外的处理,直接用原始 的事件记录来更新相关进程的时间轴并解除recv端的阻塞;第二种,send操作的时间戳大于recv操作的事件戳,这说明映射到目标系统后,recv 操作反而在send操作之前执行,此时需要让recv端进程一直阻塞,直到到达和send端相 同的时间戳后才解除阻塞并更新时间轴;其中,对于通信双方是节点间通信的情况,其与节点内通信的最大区别是,节点内通信 模拟时不需要调用网络模拟部件来处理,只需要进行进程的同步处理,而节点间通信时要 依据配置的目标节点间网络互连参数,通过网络模拟部件计算出通信的网络传输时间后再 进行同步;这里需要在send发送操作时,根据相关信息进行网络模拟,得到本次send操作 在目标节点间网络的传输时间,把该时间更新到目标系统进程的时间轴中;此时仍需要依 据通信双方进程在目标系统中的时间戳进行同步,还是类似的和节点内通信一样处理两种 情况,所不同的是使用的是更新了网络传输时间后的send操作时间戳。
8.根据权利要求5所述的用于机群系统并行模拟的时间序列控制方法,其特征在于 所述事件缓冲队列Qi中的阻塞事件EB采用的时间轴更新策略为若在网络通信事件EC中 发生阻塞事件EB,则根据网络通信事件EC所述的阻塞时间Teb来推进对应的逻辑进程时间 轴,累加得到进程当前时间Τ 。
全文摘要
本发明公开了一种用于机群系统并行模拟的时间序列控制方法,该时间序列控制方法根据从宿主系统中捕获到的模拟事件,对目标系统的所有进程建立一个逻辑时钟,依照目标系统中的模拟时间运行状态来维护和更新该逻辑时钟的状态,最终得到进程在目标系统中的运行时间。本发明依据宿主-目标映射关系MAP对时间-模拟事件集EVE进行扫描,得到目标系统中每一个目标节点的事件缓冲队列Qi。本发明针对大规模并行系统模拟,在保证一定模拟精度的前提下有效提升了模拟器的效率。
文档编号G06F9/52GK101980166SQ201010500868
公开日2011年2月23日 申请日期2010年10月9日 优先权日2010年10月9日
发明者刘轶, 张昕, 支予哲, 李鹤, 苏阳明, 钱德沛 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1