信号处理并行计算软件的动态重配置方法

文档序号:6381065阅读:129来源:国知局
专利名称:信号处理并行计算软件的动态重配置方法
技术领域
本发明涉及并行计算,具体地指一种信号处理并行计算软件的动态重配置方法。
背景技术
面向功能及操作需求的按需计算可能面对各种需求变化,因此,要求实时并行计算技术能支持这种在线变化,并同时考虑有限计算资源和其计算能力的约束,这就是所谓的计算弹性,是多传感器信号处理等许多并行计算软件系统的高性能特征。随着需求的不同,信号处理并行计算量和数据存储量是变化的。 例如,在传感器阵列数字波束形成中,阵型、波束数、工作频段及采样频率的变化均会导致阵列处理部分算法和/或计算量的改变,而算法与计算量的变化必然导致计算任务与数据流向的变化,即计算结构的变化。若考虑有限硬件资源条件的约束,传统的软件编制方法将无法适应上述的计算弹性,必须发展软件技术以适应计算任务的多粒度与可变粒度。实现计算粒度的变化,应受到实时性能的约束,因而所需的计算、通信和存储资源也将随之而变。尤其是当计算任务所对应的硬件资源需求增大时,软件应能及时对计算任务进行资源重分配,否则将影响实时性能。因此必须对多粒度或变粒度计算任务按资源特性重新进行并行分解,然后动态分布到计算平台上。鉴于上述特征,当软件系统因计算需求变化或资源故障而引起性能异常时,软件系统需要有自适应动态重配置软件和分配硬件资源的能力。然而,现有的能支持计算弹性的并行任务分解映射方法,没有考虑隔离应用需求与硬件资源的各种异构影响因素(包括处理器结构、互联网络结构、计算性能与通信带宽等),使分解映射的优化方法有很大的代价,甚至因网络互联拓扑结构不确定而造成无解,即无法重分配计算任务或无法支持计算弹性。目前,信号处理并行计算软件通常是在设计阶段实现应用并行化,也就是事先将应用划分成若干个计算任务,并将各个计算任务程序代码分别编译连接后,利用开发环境提供的工具加载执行程序到处理器。这种方法通常存在以下缺点I、处理器资源是预先分配的,一旦计算任务所需的算法粒度与算法本身发生变化后,必须重新编写代码、至少重编译和重加载程序代码,因而,软件系统不具有在线的计算弹性。2、计算任务进程是静态编码和加载的,进程间数据流是固定的,因而,程序编码是与处理器分布紧密相关,软件无法适应硬件平台的变化,不便于系统扩展。因此,研究一种信号处理并行计算软件动态重配置方法,对于克服上述缺陷,形成高性能的灵巧计算具有进步意义与实用价值。

发明内容
本发明的目的就在于克服上述现有技术的不足,而提供信号处理并行计算软件的动态重配置方法,该方法支持多粒度或变粒度计算任务的在线并行分解,能够根据信号处理算法或任务计算量的需求,动态管理处理器资源,并能将计算任务动态分布到多核处理器中。实现本发明目的采用的技术方案是一种信号处理并行计算软件的动态重配置方法,包括以下步骤(I)以信号处理的数据吞吐要求为目标,通过计算任务图与并行处理系统硬件特征的最优匹配,生成软件架构图;(2)针对处理器的数量与拓扑结构,将所述软件架构图分布到实际并行处理系统的各个处理器上。其中,所述计算任务图是面向数据驱动型信号处理应用的数据流图,具有多计算粒度和可变计算粒度,所述计算粒度为计算任务在处理器上的最短计算时间。 所述并行处理系统硬件特征包括处理器的内部层次结构和存储结构、处理器计算性能、以及处理器之间通信网络的通信带宽。与现有技术相比,本发明的信号处理并行计算软件重配置方法,是在系统执行时,动态分布计算任务到多核处理器,以实现自适应变粒度并行计算,因而能够实现在线的计算弹性。


图I为本发明信号处理并行计算软件的动态重配置方法的流程图;图2为图I中软件架构图重配置的流程图;图3为本发明信号处理并行计算软件的动态重配置方法的操作示意图;图4为图3中计算实体的结构框图;图5为图4中任务池数据结构示意图;图6为图4中数据端口链表结构示意图;图7为图3中将软件构架图的分布流程示意图。
具体实施例方式下面结合附图和具体实施例对本发明作进一步的说明。本实施例中,信号处理并行计算应用软件运行在多核集群平台的并行处理系统上。该并行处理系统中的处理器为SMP多核处理器,处理器计算速度和网络带宽等性能特征可被测量。SMP多核处理器具有“节点-内核”两级结构,各内核与片内的存储器对称连接。在本实施例中,所述计算任务图是面向数据驱动型信号处理应用的数据流图,其中的信号处理计算任务具有多计算粒度和可变计算粒度特点。所述计算粒度用该计算任务在处理器上最短计算时间衡量。所述数据驱动的信号处理受到数据吞吐率的实际约束。如图I和图3所示,本发明信号处理并行计算软件的动态重配置方法包括以下步骤步骤SlOO配置并生成软件构架图。优化匹配器以数据吞吐指标为目标,根据监视分析器在线获取的实时数据吞吐量与并行处理系统的硬件结构特征和性能特征,生成软件构架图。其中,所述并行处理系统硬件结构特征和性能特征包括处理器的内部层次结构和存储结构、处理器计算性能、以及处理器之间通信网络的通信带宽;
本步骤生成的软件构架图包括多个可配置的计算软件实体、发送连接器和接收连接器,其中发送连接器和接收连接器通过数据端口与计算实体连接,两个计算实体之间通过发送、接收连接器连接。如图4所示,计算实体内嵌配置信息包,配置信息包包括以下配置属性计算任务及其执行序列、硬件资源需求、数据端口、实例运行线程与特定内核间的绑定关系。其中,计算任务是并行处理软件中的最小计算粒度,计算任务配置的变化反映计算粒度的变化。因此,所述配置信息包可适时体现并行计算粒度的变化。计算软件实体具有动态可重配置特征,如图4所示,其内部包含以下控制逻辑单元①启停(生命期)控制器任务池控制器端口控制器线程控制器。为了从外部能够控制上述内部控制逻辑单元的操作,计算软件实体还定义有相应管理接口 启停(生命期)管理接口、任务管理接口、端口管理接口和线程管理接口,外部控制进程通过管理接口实施启停(生命期)控制、任务池控制、端口控制和线程控制操作。上述配置信息包是由优化匹配器和所述计算实体内嵌控制逻辑单元共同作用,并被动态设置或更新。为了计算实体内部计算任务执行序列的动态组合和替换,实现计算功能的可配置,计算实体内嵌有任务池和任务池控制器。任务池用于存放计算任务的执行对象指针和计算任务的执行序列,任务池控制器实施任务池中计算任务的配置与动态加载,还能依据配置信息包中的配置属性,实时更改数据端口与任务池中计算任务的绑定关系。任务池中的每个计算任务关联一个输入数据块表和输出数据块表,分别用于存储该计算任务所要处理的输入和输出数据块指针。如图5所示,任务池的数据结构定义为一个链表,其链表中的每一节点存储一个计算任务信息,包括计算任务编号、执行对象指针、以及计算任务与输入输出端口的连接关系。计算任务在链表中的存放顺序表不执行顺序。由于任务池中的计算任务是动态变化的,因此,任务池控制器将依据配置信息实时更改任务池中的输入、输出数据缓冲区与计算任务的连接关系。任务池中计算任务是按顺序执行,前序任务的输出数据块应是后序任务的输入数据块。为了减少任务间的数据块拷贝,使计算任务和数据块结构松耦合。为此,在计算任务内部定义数据块表,用于存储该任务所要加工的数据块指针,其中第一个计算任务的输入数据块指针将指向输入端口缓冲区列表,作为任务池的始端数据。计算实体还包括端口控制器和端口链表,用于提供计算实体的数据输入和数据输出端口的管理。端口控制器能够动态地创建或修改数据端口链表,并通过释放或重建与数据端口关联的发送连接器和接收连接器,从而动态改变计算实体进程间的数据链路。如图6所示为输入数据端口链表结构,其中的每一节点存储输入端口指针、输入数据缓冲区指针等信息。为了匹配于本实施实例SMP多核处理器内部“节点-内核”两层结构,以及处理器片内的多个内核共享存储的结构特点,本实例生成的软件构架图中计算实体的硬件资源需求属性具有粗、细粒度两个层次。所述粗粒度计算属性为计算任务池中的计算任务所需SMP多核处理器的数量(或称服务器刀片数),所述细粒度计算属性为计算实体的一个实例完成计算所需的处理器的内核数,并且一个内核绑定一个线程。
下面分别以如何生成软件构架图,配置计算实体进行说明。采取图分割方法,优化配置软件架构图,目的是优化计算实体的任务池和配置信息包、以及计算实体间的拓扑关系。配置后得到的每个计算实体具有合适的粗粒度计算属性。即所述任务池中计算任务总的计算时间费用·匹配于并行处理系统硬件的处理能力,并要求由所述计算实体的实例构成的信号处理流水线没有瓶颈,且满足数据吞吐实际应用要求。具体如图2所示,包括以下步骤步骤SlOl :以数据吞吐需求指标为优化目标,将相邻的、计算粒度小的计算任务合并为一个任务簇。步骤S102 :合并得到的任务簇的粒度属性值若不大于计算阈值ub,任务簇映射到一个计算实体的任务池中,并可被单独调度到一个多核处理器上成为一个实例,如图7中的计算实体I。该计算实体的粗粒度属性值为I。步骤S103 :如果一个计算任务的计算粒度属性值大于阈值,该任务则单独映射到一个计算实体,并将该任务所处理的数据块分解为多个数据项,该计算实体将被分布到多个多核处理器上,不同处理器上的实例将处理不同的数据项,如图7计算实体2,其粗粒度属性值为2。其中,计算阈值(Ub)为一个计算实体实例在一个多核处理器上运行时间的上限值,受限于SMP多核处理器的计算能力、网络带宽以及数据吞吐需求。如果应用的信号处理的并行计算数据流的数据吞吐为h,网络平均单位通信时延△,计算实体进程总的通信量为com,若计算和通信没有重叠,那么该计算实体进程的执行时间上限应为Ub=I/h_A*com ;若计算和通信有重叠,那么ub =l/h。由此,可以确定一个计算实体粗粒度属性值S,满足s=c/ub,其中c表示所述计算实体内部任务池内计算任务总的计算费用,即€ = 2-<0,其中《(0表示计算任务t在所述多核处理器上的计算时间费用。采取计算实体内置线程控制器的方式,控制线程分解与分布操作,包括实时分析计算实体实例进程的计算时延,根据处理器内部的内核结构和数量以及存储结构和层次,将该进程分解为层次化的多个线程,得到该计算实体的细粒度计算属性;将多个线程一一绑定到处理器内核上,使得计算实体实例进程的计算费用最小。步骤S200、将软件构架图分布到并行处理系统中的各个SMP多核处理器上,具体步骤如下步骤2. I粗粒度分布主进程执行最优调度算法,即首先根据所述计算实体粗粒度计算属性值,按数据并行方式实例化计算实体为若干个计算进程,约束于并行软件架构图。每个计算进程实例被独立分布到一个空闲的多核处理器上,分布原则是负载平衡和通信费用最小。如图7所示,计算实体I的计算粗粒度属性值是1,计算机实体I的实例进程为P1,被单独地调度到一个SMP多核处理器上成为一个实例。如果一个计算任务的计算粗粒度属性值是2,因而该计算实体2的2个实例进程p21和p22分别分布到2个多核处理器上。并将该计算任务所处理的数据块分解为两个数据项,不同SMP多核处理器上的实例将处理不同的数据项;然后是计算实体实例进程的配置操作。主进程通过计算实体实例进程的配置信息包接口写入该实例进程的配置信息,并通过端口管理接口驱动端口控制器设置该实例进程的数据端口链表和连接器,完成数据流重定向;通过任务管理接口驱动其中任务池控制器操作。步骤2. 2、细粒度分布主进程通过计算进程的线程管理接口驱动线程控制器实施细粒度线程分布操作,即进程实例进入线程的自主分解运行状态,并将线程绑定到内核,如图7所示,如计算实体的细粒度计算属性值为3,线程控制器就将进程实例分为3个线程,每个线程分布到一个SMP多核处理器的内核中。本发明中所依赖的实时数据吞吐、并行处理系统资源信息是由监视器实时获取和更新。此外,由于计算实体的硬件资源需求是可配置的,其硬件资源需求属性的数据结构匹配于处理器内部结构特征,因而,按硬件资源的实际情况,计算实体可以被动态地分布·或迁移到并行处理系统中具有相同结构特征的处理器上,而与处理器的实际数量无关。由此,提高了并行计算软件的硬件平台适应性,便于实现与扩展。再者,本发明本质上是将影响信号处理应用的实时性能之不同层面因素(如应用的计算方法、软件结构、并行处理器结构、处理器计算性能与网络通信带宽、处理器物理分布等)一一隔离开来,允许其有独立的自适应调节规范。这样,将影响应用系统性能的各种影响因素解耦合。基于所述解耦合方法,本发明在软件架构图的配置时只考虑计算需求、处理器内部结构特征及网络带宽的影响因素,而无须考虑网络互连结构的变化,从而简化了应用并行化的计算代价,并克服了由于网络拓扑结构不确定而造成的优化匹配算法解的不确定问题。由于所述优化匹配是在线动态的过程,因而所述计算任务图中的计算任务及数据的划分可以事先凭直觉、按照领域应用的自然边界进行分解,只要求每个任务功能和任务间的接口及数据通信是清晰和明确的。本发明通过两步骤重配置这一技术手段,简化了具体应用分解过程,使信号处理应用软件达到以实时性能满足为基本要求,同时适应计算的多粒度或变粒度需求变化,动态配置硬件资源的目的。
权利要求
1.一种信号处理并行计算软件的动态重配置方法,其特征在于,包括以下步骤 (1)以信号处理的数据吞吐要求为目标,通过计算任务图与并行处理系统硬件特征的最优匹配,生成软件架构图;所述并行处理系统硬件特征包括处理器的内部层次结构和存储结构、处理器计算性能、以及处理器之间通信网络的通信带宽; (2)针对处理器的数量与拓扑结构,将所述软件架构图分布到实际并行处理系统的各个处理器上。
2.根据权利要求I所述信号处理并行计算软件的动态重配置方法,其特征在于所述计算任务图是面向数据驱动型信号处理应用的数据流图,具有多计算粒度和可变计算粒度,所述计算粒度为计算任务在处理器上的最短计算时间。
3.根据权利要求I或2所述信号处理并行计算软件的动态重配置方法,其特征在于,所述软件架构图包括 多个可配置的计算软件实体; 发送连接器,通过数据端口与所述可配置的计算软件实体连接;以及 接收连接器,通过数据端口与所述可配置的计算软件实体连接; 不同可配置的计算软件实体之间通过所述发送连接器和接收连接器进行数据传输。
4.根据权利要求3所述信号处理并行计算软件的动态重配置方法,其特征在于,所述计算软件实体包括 任务池,用于存放能动态增减的计算任务,及所述计算任务的执行对象的指针; 配置信息包,包括所述计算任务的执行对象及其执行序列、硬件资源需求、数据端口、实例运行线程与特定内核间的绑定关系的配置属性; 任务池控制器,用于根据所述配置信息包中计算任务的执行对象及其执行序列的配置属性,控制所述任务池中计算任务的执行,以及根据该配置信息实时更改数据端口的数据缓冲区与所述计算任务的连接关系; 端口控制器,根据所述配置信息包中数据端口配置,建立或修改数据端口链表,建立计算实体与数据端口的关联关系;以及驱动与所述数据端口关联的发送/接收连接器释放或重建数据链路,由此实现动态改变计算实体间的数据连接。
5.根据权利要求4所述信号处理并行计算软件的动态重配置方法,其特征在于,所述计算软件实体还包括 线程控制器,用于线程分解与分布操作;以及 端口配置表,用于存储计算软件实体的数据端口实时配置信息。
6.根据权利要求4或5所述信号处理并行计算软件的动态重配置方法,其特征在于所述计算软件实体的硬件资源需求属性描述的数据结构匹配于处理器内部的层次结构特征,该硬件资源需求属性包括粗粒度计算属性和细粒度计算属性。
7.根据权利要求6所述信号处理并行计算软件的动态重配置方法,其特征在于,通过优化匹配器配置并生成软件架构图,包括以下步骤 对输入的计算任务图进行分割,优化计算实体的任务池和配置信息包、以及计算实体间的拓扑结构,使配置后得到的每个计算实体具有合适的粗粒度计算属性,即使所述任务池中计算任务总的计算时间费用匹配于并行处理系统硬件的处理能力,并要求由所述计算实体的实例所构成的信号处理流水线没有瓶颈,且满足数据吞吐的应用要求。
8.根据权利要求7所述信号处理并行计算软件的动态重配置方法,其特征在于,对输入的计算任务图进行分割包括以下步骤 将所述计算任务图中计算粒度属性大于计算阈值的计算任务单独映射到一个计算实体的任务池中,并将该任务所处理的数据块分解为多个数据项,该计算实体的多个实例将被分布到多个处理器上,不同处理器上的实例将处理不同的数据项; 将所述计算任务图中计算粒度属性小于计算阈值ub的、且相邻的计算任务合并成一个任务簇,所述任务簇的计算粒度属性不大于计算阈值ub,将该任务簇映射到一个计算实体的任务池中,并将被单独分布到一个处理器上成为一个实例; 重复上述步骤,直至所述软件构架图中每个计算实体具有合适的粗粒度计算属性。
9.根据权利要求8所述信号处理并行计算软件的动态重配置方法,其特征在于,所述计算阈值ub为一个计算实体实例处理一个数据项时,在一个处理器上运行的时间上限值,满足关系 Ub=l/h-A*com,计算和通信没有重叠; Ub=l/h,计算和通信有重叠; 其中,h为信号处理的并行计算数据流水线的数据吞吐,Λ为网络平均单位通信时延,com为计算实体进程总的通信量。
10.根据权利要求9所述信号处理并行计算软件的动态重配置方法,其特征在于,通过优化调度器将所述软件架构图分布到实际并行处理系统的各个处理器上,包括以下步骤 首先对计算实体的粗粒度分布操作,按照负载平衡和通信费用最小的分布原则,根据所述计算实体的粗粒度计算属性值,按数据并行方式实例化计算实体为若干个计算进程;约束于并行软件架构图,将所述每个计算进程实例独立分布到一个空闲的多核处理器上; 然后对计算实体的计算进程实例配置操作,通过计算实体的配置信息包接口写入该计算进程实例的配置信息,并通过端口管理接口驱动端口控制器设置该计算进程实例的数据端口链表和连接器,完成数据流重定向; 最后驱动计算进程实例的任务执行与线程的分布操作,即通过任务管理接口驱动任务池控制器操作,通过线程管理接口驱动其中线程控制器操作,线程控制器实时分析计算实体实例进程的计算时延,根据处理器内部的内核结构、数量以及存储结构和层次,将所述计算实例进程分解为层次化的多个线程,得到该计算实体的细粒度计算属性;以及,将所述的多个线程一一绑定到处理器内核上,使得计算实体实例进程的计算费用最小。
全文摘要
本发明公开了一种信号处理并行计算软件的动态重配置方法,其包括两个步骤首先是软件架构图配置与生成,通过计算任务图与并行处理系统硬件特征模型的最优匹配,生成软件架构图;然后是软件架构图分布,针对实际处理器数量与拓扑结构,将配置好的软件架构图分布到实际并行处理系统的各个处理器上。并行处理系统硬件特征包括处理器的内部层次结构和存储结构、处理器计算性能、以及处理器之间通信网络的通信带宽。与现有技术相比,本发明的信号处理并行计算软件重配置方法,是在系统执行时动态分布计算任务到多核处理器,以实现自适应变粒度并行计算,因而,能够实现在线的计算弹性。
文档编号G06F9/50GK102929725SQ20121045055
公开日2013年2月13日 申请日期2012年11月12日 优先权日2012年11月12日
发明者蔡志明, 王希敏, 幸高翔, 姜可宇, 周航, 游波 申请人:中国人民解放军海军工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1