用于并行多处理器系统的通信行为获取装置的制作方法

文档序号:6433081阅读:146来源:国知局
专利名称:用于并行多处理器系统的通信行为获取装置的制作方法
技术领域
本发明属于并行多处理器系统领域,尤其涉及并行多处理器系统的通信系统。
背景技术
国防、天气预报、航空航天、船舶设计、生命科学、石油勘探等领域对计算速度无止境的需求推动着高性能计算机不断发展,高性能计算机设计主要涉及两个方面一是并行多处理器系统的硬件体系结构设计,二是相应的高性能应用软件设计。硬件体系结构的很大一部分设计重点在于高性能互联网络的构建,高性能应用软件的设计重点在于开发高效的并行算法,这两个方面是相辅相成的。系统结构设计人员需要根据应用软件的通信特性定制硬件通信网络,软件开发人员需要根据特定硬件上的运行结果进行软件的性能调优, 而这两方面的需求都需要并行多处理器系统中提供通信行为获取手段作为支持。现有的并行应用通信行为获取工具可以分为基于软件方法和基于硬件监控两种方式。基于软件的获取工具占主导地位,有很多优秀的开源工具和几家大型企业提供的产品。软件获取方法实施过程为在待测应用程序中插入测试代码,重新进行编译,然后在实际的并行多处理器平台上运行获得所关注的实际参数。软件获取方法的优势是(1)多种工具可供选择;( 大部分工具都能支持主流硬件平台、编程语言和编程模型。软件获取方法的劣势是(1)带来额外编译链接开销和软件运行时开销;(2)加入测试代码会影响到原先的通信行为,造成不可预料的问题;(3)许多应用程序都是成熟的商用软件,不公开源代码,用软件方法就难以对其进行操作。而基于硬件监控方式的工具比较少,功能也只停留在获取单个处理器访问内存的指令信息层面上,没有基于硬件获取多处理器之间通信信息的工具。

发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种用于并行多处理器系统中的通信行为获取装置,在不引入任何应用程序开销的基础上实现通信行为的获取。本发明的目的是通过以下技术方案实现的本发明提供了一种用于并行多处理器系统的通信行为获取装置,所述并行多处理系统包括节点内通信模块和节点间通信模块,所述通信行为获取装置包括多个原始信息收集模块,其存在于节点内通信模块和节点间通信模块之内,用于当其所依附的模块进行通信时,收集关于该通信行为的信息并将其传送给通信信息采集模块;通信信息采集模块,用于接收来自多个原始信息收集模块的信息,并将所收集的信息发送到用户指定的地址。上述装置中,所述节点内通信模块包括直接内存访问模块和读/写模块;所述节点间通信模块包括远程读/写模块。上述装置中,原始信息收集模块所收集的信息包括从直接内存访问模块中收集到
3的直接内存访问信息、从读/写模块和远程读/写模块中收集的读操作的信息,以及从读/ 写模块和远程读/写模块中收集的写操作的信息。上述装置中,原始信息收集模块在当其所依附的模块进行通信时,对该通信信息的信息加盖时间戳,旁路传送到通信信息采集模块。上述装置中,直接内存访问信息包括时间戳、源处理器号、目标处理器号、源起始地址、目标起始地址、数据长度;读操作的信息包括时间戳、源处理器号、目标处理器号、源起始地址、数据长度;写操作的信息包括时间戳、源处理器号、目标处理器号、目标起始地址、数据长度。上述装置中,所述通信信息采集模块包括信息汇集模块,用于接收来自多个原始信息收集模块的信息,并对其进行仲裁以便判断当前应该发送哪个信息,以及将其发送到数据包生成模块;数据包生成模块,用于对信息汇集模块所提供的通信信息进行压缩,并将其打包成以太网帧格式发送到用户指定的地址。上述装置中,数据包生成模块使用LZW编码方法对信息汇集模块所提供的通信信息进行压缩。上述装置中,所述通信信息采集模块还包括控制模块,用于接收用户发出的控制信息,并根据控制信息的类型将向相应的模块发送控制信号,所述控制信息的类型包括发送给原始信息收集模块的用于控制所要收集的信息类型和收集模式的控制信息,发送给信息汇集模块的用于改变仲裁策略的控制信息,以及发送给数据包生成模块的用于控制压缩策略的控制信息。上述装置中,所述控制模块包括以太网包解析模块,用于接收和解析用户发出的控制信息;信息寄存器,根据以太网包解析模块的解析结果而改变相应的值;控制信号生成模块,根据信息寄存器的值生成相应的控制信号。上述装置中,其中原始信息收集模块根据来自控制模块的控制信号改变要收集的信息类型和所采用的收集模式。信息汇集模块根据来自控制模块的控制信号改变所使用的仲裁策略。数据包生成模块根据来自控制模块的控制信号改变所采用的压缩策略。与现有技术相比,本发明的优点在于在并行多处理系统的硬件平台中加入硬件监控模块,在硬件层面上抓取多处理器之间的通信信息,不会对具体应用软件的运行带来影响,同时也具有应用软件无关性,开销小,适应性广泛等优点。


以下参照附图对本发明实施例作进一步说明,其中图1为根据本发明实施例的用于并行多处理器系统的通信行为获取装置的应用场景示意图;图2为根据本发明实施例的用于并行多处理器系统的通信行为获取装置的架构示意图;图3为图2所示的通信行为获取装置内通信信息采集模块结构示意图4为图3所示的通信信息采集模块中信息汇集模块的功能结构示意图;图5为图3所示的通信信息采集模块中数据包生成模块的结构示意图;图6为图3所示的通信信息采集模块中控制模块的结构示意图;图7为利用本发明实施例的通信行为获取装置采集应用程序运行过程中硬件通信信息的工作流程图。
具体实施例方式为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明, 并不用于限定本发明。图1描述了用于并行多处理器系统的通信行为获取装置(下文中也可简称为通信行为获取装置、获取装置或装置)的应用场景示意图。其中每个节点上并行计算模块和高速互联模块提供并行多处理器系统运行的硬件平台。并行计算模块由多个处理器,运行所需的内存和外围芯片构成,用于并行应用程序的执行。高速互联模块用于实现节点内以及节点间的处理器之间的通信,主要包括节点内通信模块,节点间通信模块,直接内存访问交叉开关,读/写交叉开关等部分。通信行为获取装置采集多处理器间的通信信息,并将该信息通过千兆以太网传输到用户的电脑。用户可以使用已有的分析软件或自己编写分析程序对信息进行分析。图2为用于并行多处理器系统的通信行为获取装置的一个实施例的结构示意图。 所述通信行为获取装置包括通信信息采集模块和多个原始信息收集模块。其中原始信息收集模块依附在节点内通信模块和/或节点间通信模块内,用于当其所依附的模块进行通信时,收集关于该通信行为的信息并将其传送给通信信息采集模块;通信信息采集模块用于接收来自多个原始信息收集模块的信息,并将所收集的信息发送到用户指定的地址。如图2所示,更具体地,节点内通信模块用于实现了节点内的计算模块通信所需的基本功能,其与并行计算模块之间以高速系统总线互连,主要包括直接内存访问(DMA Direct Memory Access)模块和读/写(Load/More)模块。并行计算模块的每个处理器均通过高速系统总线连接到直接内存访问模块和读/写模块。直接内存访问模块(DMA模块)用于实现数据以直接内存访问(DMA)方式在处理器间的传输。该DMA模块包括下传和上传两个子模块,其中下传子模块负责接收DMA描述符,读取DMA负载数据,并将数据发送至DMA交叉开关模块;上传子模块负责从直接内存访问交叉开关模块接收DMA数据,并将数据写入目标地址区域。而读/写模块用于实现数据以读/写方式在处理器间的传输,其包括下传和上传两个子模块,下传子模块负责从处理器接收读/写请求以及读响应数据,然后发送至读/写交叉开关;上传模块负责从读/写交叉开关接收数据,并发送至目的地址。节点间通信模块,主要由远程读/写模块构成,其基本结构和读/写模块相同,负责数据以读/写方式在不同节点的处理器之间传输。直接内存访问交叉开关模块用于实现节点内各直接内存访问模块之间的数据交换。读/写交叉开关模块用于负责实现节点内各读/写模块,以及节点间通信模块之间数据的交换。在一个实施例中,原始信息收集模块存在于直接内存访问模块,读/写模块,节点间通信模块之内,当其所依附的模块进行通信时,原始信息收集模块对通信信息加盖时间戳,旁路传送给通信信息采集模块。根据所依附的模块的不同,可以将原始信息收集模块所收集的信息分类为直接访问内存信息、读操作信息和写操作信息。在本实施例中,原始信息收集模块所收集到的各个模块的通信信息的包格式如下
从直接内存访问模块中收集到直接内存访问(DMA)信息包格式为
时间戳源处理器 ια目标处理 SE 口源起始地址目标起始地址数据长度 从读/写模块和节点间通信模块中收集读(Load)操作的信息包格式为时间戳源处理器目标处理 as D 器T5"源起始地址数据长度
从读/写模块和节点间通信模块中收集写(More)操作的信息包格式为
时间戳源处理器 α目标处理 SE 口目标起始地址数据长度在又一个实施例中,原始信息收集模块可以根据来自通信信息采集模块的信号来改变收集策略,例如收集处理器之间通信的数据的具体内容,而不仅仅是数据的长度;也可以只收集直接内存访问信息或只收集读/写操作信息。图3示出了图2所示的通信信息采集模块的功能结构示意图。该通信信息采集模块包含信息汇集模块,数据包生成模块,以太网接口模块和控制模块四个部分,用于通信命令数据的收集、压缩、生成以太网帧、收发以太网帧。图4所示的是信息汇集模块的结构图,该模块用于对原始信息收集模块传来的信息进行汇聚和仲裁。如图4所示,其主要包括接收队列Fifo (例如,先进先出队列),负责对原始信息收集模块采集到的信息进行跨时钟域接收,之所以采用该接收队列是因为原始信息收集模块有一个硬件运行的时钟频率,通信信息采集模块也有一个硬件运行的时钟频率,这两个频率有可能不同,在这两个模块之间传输数据需要用这个接收队列才能保证数据的正确性。仲裁模块,负责对各个接收队列收集到的数据信息进行仲裁,选择当前要发送的信息发送给数据包生成模块。该模块还可以接收由控制模块输入的控制信号,改变仲裁策略,例如固定优先级仲裁、轮转优先级仲裁、混合优先级仲裁、加权随机优先级仲裁等。图5所示的是数据包生成模块的结构图,该模块负责对信息汇集模块提供的通信信息进行压缩,并打包成以太网帧格式。该模块主要包括压缩模块和以太网生成模块。其中,压缩模块主要通过硬件上的压缩,在低延迟低开销下大幅度降低对带宽的要求,使该装置能够胜任通信密集型应用和大规模节点的应用。采集到的通信数据有如下两个特点(1) 二进制数据;( 具有一定的全局相关性,例如当前采集到的数据包中的地址和时间戳在某一个数值区间内变化。因此,可以使用字串表编码LZW(LempeI-Ziv-WeIch)编码方法对采集到的通信数据进行压缩,该编码方法在数据流中连续重复相同的字符时可以得到很高的压缩比。LZW编码是一种比较成熟的编码算法,此处不对其作过多说明。然后,以太网包生成模块,将压缩后的通信信息打包成以太网帧格式,发送给以太网接口模块。在其他实施例中,也可以使用Siannon-Fano (香农-范诺)编码、Huffman (哈夫曼)编码、算术编码、游程编码,这里考虑用LZW编码方法时根据收集到的数据特征,当然用其他的压缩编码方法也可以,只是压缩率不及LZW编码方法来压缩数据。在又一个实施例中,也可以根据来自控制模块的信号来改变压缩策略。图3中的以太网接口模块实现以太网链路层协议,其功能包括将打包好的以太网帧发送至网络交换机或PC机;将PC机发送的控制信息帧转发至控制模块;实现ARP协议, 使以太网帧能够通过交换机。图6所示的是图3中的控制模块的结构图,该模块用于接收PC机软件发出的控制信息,将从控制信息中抽取的配置管理信息发送至(1)原始信息收集模块,控制所要采集的通信信息类型和采集模式;(2)信息汇集模块,控制仲裁策略;(3)压缩模块,选择压缩策略。该模块主要包括以太网包解析模块,信息寄存器和控制信号生成模块。其中以太网包解析模块,负责接收和解析用户通过PC端软件发出的控制信息;信息寄存器,信息寄存器的值根据以太网包解析模块的解析结果而改变;控制信号生成模块,根据信息寄存器的值生成相应的控制信号。图7给出了使用上述通信行为获取装置采集应用程序运行过程中硬件通信行为的工作流程,所示的工作流程可以包括通信信息采集流程和配置流程两部分。其中,通信信息采集包括以下步骤1)并行应用程序运行;2)判断并行应用程序运行时通信范围,如果通信范围在节点内,则跳转至步骤 3);如果是节点间通信,则跳转至步骤6);3)判断通信数据块的大小,如果是大数据块通信,跳转至步骤4);如果是小数据量通信,跳转至步骤5);4)使用直接内存访问模块进行节点内大数据块通信,跳转至步骤7);5)使用读/写模块进行节点内小数据量通信,跳转至步骤7);6)使用节点间通信模块进行节点间处理器间的通信,跳转至步骤7);7)原始数据采集模块将应用程序通信信息加盖时间戳发送给节点内的通信信息收集模块,跳转至步骤8);8)通信信息收集模块内的信息汇集模块对收到的通信信息进行仲裁,选择当前要发送的信息传送给数据包生成模块,跳转至步骤9)9)数据包生成模块中的压缩模块对收集到的大量通信数据进行压缩,跳转至步骤 10);10)数据包生成模块中的以太网包生成模块按照以太网帧格式对数据进行分组打包,然后传递给以太网接口模块,跳转至步骤11);11)以太网接口模块按照标准以太网协议将数据上传给个人电脑,并行应用程序通信信息获取完成。所述配置流程包括以下步骤a)用户使用个人电脑(PC)向通信信息获取装置发送配置数据包;b)配置数据包经过装置的以太网接口模块接收,转发给控制模块;c)控制模块对以太网数据包进行解析;d)修改控制模块内部信息寄存器组的值,向原始信息收集模块、信息汇集模块、数据包生成模块发出控制信号;e)改变通信信息收集策略或仲裁策略或压缩策略。虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。
权利要求
1.一种用于并行多处理器系统的通信行为获取装置,所述并行多处理系统包括并行计算模块,节点内通信模块和节点间通信模块,所述通信行为获取装置包括多个原始信息收集模块,其存在于节点内通信模块和节点间通信模块之内,用于当其所依附的模块进行通信时,收集关于该通信行为的信息并将其传送给通信信息采集模块;通信信息采集模块,用于接收来自多个原始信息收集模块的信息,并将所收集的信息发送到用户指定的地址。
2.根据权利要求1所述的装置,其中所述节点内通信模块包括直接内存访问模块和读 /写模块;所述节点间通信模块包括远程读/写模块。
3.根据权利要求2所述的装置,其中,原始信息收集模块所收集的信息包括从直接内存访问模块中收集到的直接内存访问信息、从读/写模块和远程读/写模块中收集的读操作的信息,以及从读/写模块和远程读/写模块中收集的写操作的信息。
4.根据权利要求1、2或3所述的装置,其中原始信息收集模块在当其所依附的模块进行通信时,对该通信信息的信息加盖时间戳,旁路传送到通信信息采集模块。
5.根据权利要求4所述的装置,其中直接内存访问信息包括时间戳、源处理器号、目标处理器号、源起始地址、目标起始地址、数据长度;读操作的信息包括时间戳、源处理器号、 目标处理器号、源起始地址、数据长度;写操作的信息包括时间戳、源处理器号、目标处理器号、目标起始地址、数据长度。
6.根据权利要求1所述的装置,所述通信信息采集模块包括信息汇集模块,用于接收来自多个原始信息收集模块的信息,并对其进行仲裁以便判断当前应该发送哪个信息,以及将其发送到数据包生成模块;数据包生成模块,用于对信息汇集模块所提供的通信信息进行压缩,并将其打包成以太网帧格式发送到用户指定的地址。
7.根据权利要求6所述的装置,数据包生成模块使用LZW编码方法对信息汇集模块所提供的通信信息进行压缩。
8.根据权利要求6所述的装置,所述通信信息采集模块还包括控制模块,用于接收用户发出的控制信息,并根据控制信息的类型将向相应的模块发送控制信号,所述控制信息的类型包括发送给原始信息收集模块的用于控制所要收集的信息类型和收集模式的控制信息,发送给信息汇集模块的用于改变仲裁策略的控制信息,以及发送给数据包生成模块的用于控制压缩策略的控制信息。
9.根据权利要求8所述的装置,所述控制模块包括以太网包解析模块,用于接收和解析用户发出的控制信息;信息寄存器,根据以太网包解析模块的解析结果而改变相应的值;控制信号生成模块,根据信息寄存器的值生成相应的控制信号。
10.根据权利要求8所述的装置,其中原始信息收集模块根据来自控制模块的控制信号改变要收集的信息类型和所采用的收集模式。
11.根据权利要求8所述的装置,其中信息汇集模块根据来自控制模块的控制信号改变所使用的仲裁策略。
12.根据权利要求8所述的装置,其中数据包生成模块根据来自控制模块的控制信号改变所采用的压缩策略。
全文摘要
本发明提供一种用于并行多处理器系统的通信行为获取装置。该获取装置包括多个原始信息收集模块和通信信息采集模块。其中,原始信息收集模块依附在节点内通信模块和/或节点间通信模块内,用于当其所依附的模块进行通信时,收集关于该通信行为的信息并将其传送给通信信息采集模块;通信信息采集模块用于接收来自多个原始信息收集模块的信息,并将所收集的信息发送到用户指定的地址。该装置在硬件层面上抓取多处理器之间的通信信息,不会对具体应用软件的运行带来影响,同时也具有应用软件无关性,开销小,适应性广泛等优点。
文档编号G06F15/163GK102446156SQ20111027059
公开日2012年5月9日 申请日期2011年9月14日 优先权日2011年9月14日
发明者刘厚贵, 刘小丽, 刘锐, 孙凝晖, 安学军, 曹政, 王展, 苏勇, 靳庆贺 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1