计算机软件系统中实现任务分解和并行处理控制的方法技术方案

技术编号:7458370 阅读:208 留言:0更新日期:2012-06-24 01:03
本发明专利技术涉及一种计算机软件系统中实现任务分解和并行处理控制的方法,该计算机软件系统中具有连接于任务接收端和处理单元之间的任务调度单元,在该方法中,任务调度单元将任务分解为各子任务,并将各子任务间的依赖关系存储为矩阵结构数据,再根据所述的矩阵结构数据确定可并行执行的子任务序列,进而由处理器并行执行。利用本发明专利技术所提供的方法能够配置化应对子任务的各种变化,动态地进行相应的调整,自动实现任务的分解,无需人工进行干预,提高了并行任务分解的效率,大幅提升了计算机的并行任务处理能力,且本发明专利技术的计算机软件系统中实现任务分解和并行处理控制的方法应用方式简便,实现成本低廉,应用范围较为广泛。

【技术实现步骤摘要】

本专利技术涉及计算机软件系统
,特别涉及计算机软件系统中任务处理方法
,具体是指一种。
技术介绍
在仅具有一个单核CPU的计算机系统中,所有任务均以串行方式处理,其处理速度较慢,效率较低。随着,具有双核或多核CPU或具有多个CPU的计算机系统的被广泛应用, 并行处理的任务处理方式也越来越多地被应用于计算机软件系统中。并行处理是指计算机在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作。并行处理最显著的优点是提高了运算速度。将η位串行运算与η位并行运算来比较,在元件处理速度相同的情况下,后者运算速度几乎提高为前者的η倍。这是一种资源重复的并行处理方法,它是根据“以数量取胜”的原则大幅度提高运算速度的。但是并行处理还不止于设备的简单重复,它还有更多的含义,如时间重叠和资源共享等。所谓时间重叠是根据流水线处理技术,使多个处理过程在时间上相互错开,轮流使用同一套设备的几个部分。而资源共享则是根据“分时共享”的原则,使多个用户按时间顺序使用同一套设备。在并行任务处理中,对前提要求非常严格,分解任务是首先需要解决的问题。一般情况下,大量使用并行计算不但不会提升性能,反而会适得其反。因为不恰当的任务分解模式和不恰当的资源调度都会导致整体系统的效能反而不如单机单进程单线程系统。在分解任务中,问题(Problem)、场景(context)、条件(Forces)、方案(Solutions)都是要慎重考虑到的。并行任务分解模式之一是任务分解模式(还有数据分解、数据流分解)。目前,在采用任务分解模式时,当子任务的优先级和处理速度发生变化的情况下,需要进行人工干预来调整程序来适应这种变化,而计算机软件系统无法自动进行配置来应对这种变化的发生,从而对并行任务分解模式的应用造成了局限性,使计算机的并行任务处理能力降低。
技术实现思路
本专利技术的目的是克服了上述现有技术中的缺点,提供一种在采用任务分解模式时,能够配置化应对子任务的各种变化,动态地进行相应的调整,从而无需人工进行干预, 提高了并行任务分解的效率,大幅提升了计算机的并行任务处理能力,且应用方式简便,实现成本低廉,应用范围较为广泛的。为了实现上述的目的,在本专利技术的中,所述的计算机软件系统中具有连接于任务接收端和处理单元之间的任务调度单元,所述的方法包括以下步骤(1)所述的任务调度单元从所述的任务接收端接收到任务;(2)所述的任务调度单元将一个任务拆分为多个可独立执行的子任务;(3)所述的任务调度单元确定所述的各子任务间的依赖关系;(4)所述的任务调度单元将所述的各子任务间的依赖关系存储为矩阵结构数据;(5)所述的任务调度单元根据所述的矩阵结构数据确定可并行执行的子任务序列;(6)所述的任务调度单元根据所述的子任务序列将所述的任务发送至所述的处理单元并行执行。该中,所述的任务调度单元将一个任务拆分为多个可独立执行的子任务,具体为所述的任务调度单元将一个任务根据其所需运行的函数拆分为多个具有单独函数的子任务。该中,所述的各子任务间的依赖关系,具体为如果具有一个单独函数的第一子任务以另一个具有一个单独函数的第二子任务的结果为条件,则存在第一子任务依赖于第二子任务的关系。该中,在所述的矩阵结构数据中横轴和纵轴均为顺序排列的子任务,所述的矩阵结构数据中某一横轴坐标与纵轴坐标交叉位置的数据表示该位置对应的横轴子任务对于该位置对应的纵轴子任务的依赖关系。该中,所述的横轴坐标与纵轴坐标交叉位置的数据以二进制数据表示,“ 1”表示该位置对应的横轴子任务对于该位置对应的纵轴子任务有依赖关系,“0”表示该位置对应的横轴子任务对于该位置对应的纵轴子任务没有依赖关系。该中,所述的纵轴子任务对应的各矩阵结构的交叉位置上的二进制数据中有数据“ 1 ”的为被依赖的子任务,所述的纵轴子任务对应的各矩阵结构的交叉位置上的二进制数据均为“0”的为不被依赖的子任务。该中,所述的步骤具体为所述的任务调度单元以所述的不被依赖的子任务个数作为子任务序列的个数,并确定可并行执行的子任务序列。采用了该专利技术的,其在任务调度单元中,将各子任务间的依赖关系存储为矩阵结构数据,再根据所述的矩阵结构数据确定可并行执行的子任务序列,进而由处理器并行执行。从而能够配置化应对子任务的各种变化,动态地进行相应的调整,自动实现任务的分解,无需人工进行干预,提高了并行任务分解的效率,大幅提升了计算机的并行任务处理能力,且本专利技术的应用方式简便,实现成本低廉,应用范围较为广泛。附图说明图1为本专利技术的的流程图。图2为现有技术中以一个单进程处理的网管处理trap告警程序的流程示意图。图3为现有技术中以一个单进程处理的网管处理trap告警程序的4个函数所需 CPU时间单位示意图。图4为网管处理trap告警程序的4个函数的依赖关系示意图。图5为利用本专利技术的将网管处理trap告警程序的4个函数的依赖关系以矩阵结构数据表示的示意图。图6为采用本专利技术的处理的网管处理trap告警程序所需CPU时间单位示意图。图7为采用本专利技术的在四个CPU上进行开启四个线程处理两个trap告警程序所需CPU时间单位示意图。图8为现有技术中在两个CPU上利用单线程处理两个trap告警程序所需CPU时间单位示意图。图9为现有的计算机的基本组成示意图。图10为实际应用中利用本专利技术的进行EMS程序的内部数据消息处理流程图。具体实施例方式为了能够更清楚地理解本专利技术的
技术实现思路
,特举以下实施例详细说明。请参阅图1所示,为本专利技术的的流程图。在一种实施方式中,所述的计算机软件系统中具有连接于任务接收端和处理单元之间的任务调度单元,所述的方法包括以下步骤(1)所述的任务调度单元从所述的任务接收端接收到任务;(2)所述的任务调度单元将一个任务拆分为多个可独立执行的子任务;(3)所述的任务调度单元确定所述的各子任务间的依赖关系;(4)所述的任务调度单元将所述的各子任务间的依赖关系存储为矩阵结构数据;(5)所述的任务调度单元根据所述的矩阵结构数据确定可并行执行的子任务序列;(6)所述的任务调度单元根据所述的子任务序列将所述的任务发送至所述的处理单元并行执行。在一种较优选的实施方式中,所述的任务调度单元将一个任务拆分为多个可独立执行的子任务,具体为所述的任务调度单元将一个任务根据其所需运行的函数拆分为多个具有单独函数的子任务。则所述的各子任务间的依赖关系具体为如果具有一个单独函数的第一子任务以另一个具有一个单独函数的第二子任务的结果为条件,则存在第一子任务依赖于第二子任务的关系。在进一步优选的实施方式中,所述的矩阵结构数据中横轴和纵轴均为顺序排列的子任务,所述的矩阵结构数据中某一横轴坐标与纵轴坐标交叉位置的数据表示该位置对应的横轴子任务对于该位置对应的纵轴子任务的依赖关系。其中,所述的横轴坐标与纵轴坐标交叉位置的数据以二进制数据表示,“ 1”表示该位置对应的横轴子任务对于该位置对应的纵轴子任务有依赖关系,“0”表示该位置对应的横轴子任务对于该位置对应的纵轴子任务没有依赖关系。所述的纵轴子任务对应的各矩阵结构的交叉位置上的二进制数据中有数据“ 1 ”的为被依赖的子任务,所述的纵轴子任务对应的各矩阵结构的交叉位置上的二进制数据均为“0”的为不被依赖的子任务。在更优选的实施方式中本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:杨昆
申请(专利权)人:上海市共进通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术