CN112860415A - 一种任务定义式编程模式及高性能计算框架 - Google Patents
一种任务定义式编程模式及高性能计算框架 Download PDFInfo
- Publication number
- CN112860415A CN112860415A CN202110356409.7A CN202110356409A CN112860415A CN 112860415 A CN112860415 A CN 112860415A CN 202110356409 A CN202110356409 A CN 202110356409A CN 112860415 A CN112860415 A CN 112860415A
- Authority
- CN
- China
- Prior art keywords
- task
- subtask
- data
- subtasks
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 13
- 230000009191 jumping Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 description 10
- 230000000903 blocking effect Effects 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000005059 dormancy Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 230000009467 reduction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种任务定义式编程模式及高性能计算框架,所述编程模式通过子任务状态表记录子任务状态,通过子任务数据初始化前置条件表来协调子任务数据初始化;所述计算框架,包括框架监控调度模块,用于对系统运行进行监控和资源调度;任务队列组用于存放待初始化子任务数据状态及待运行状态的任务若干队列;框架通过子任务状态表记录子任务状态,通过子任务初始化数据前置条件表来协调子任务输入数据的初始化。通过子任务数据初始化前置条件表处理子任务输入数据初始化与同级子任务之间所需的逻辑依赖关系,以通用于各个业务场景。框架依据状态表,条件表,引导线程资源对子任务的调度,提高计算机性能和任务处理效率,避免占用计算机硬件资源。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务定义式编程模式及高性能计算框架。
背景技术
计算机编程随着多核心多线程中央处理器的产生,也对应的有了相应的并行处理编程模式和分布式处理编程思路,但是因为沿袭单核心的编程思路,当前针对并行处理和分布式处理的编程思路并没有能完全发挥出多核心多线程中央处理器的性能。
传统的高性能计算只是针对特定问题特别定制,没有通用性,而一般的多线程编程思路,在涉及到比较复杂的任务协调时,都是通过主线程以方法调用形式来协调任务的分解和协调多线程对子任务的执行。这往往都会产生主线程同步阻塞等待子线程运行结果,或者是休眠等待子线程运行完成后被激活。而休眠着的线程本身也占用着计算机的硬件资源。
比如最常用的future模式,会存在主线程的空转等待。
经典的master-work模式在很大程度上降低了线程资源的消耗,但也会存在主线程空转等待或者同步等待work线程运行完成的情况。并且这一模式适用范围比较窄,比如基于该模式的map reduce,它的经典应用场景为“URL访问率统计、分布式grep(根据文件名中的时间过滤出符合时间要求的文件列表)、分布式排序、倒序索引构建、Web连接图反转”等,它仅仅是将大任务分解成同类型小任务分别执行。对于业务场景比较复杂的任务分解,并不能满足要求。
并且传统的编程方式,对线程的调度下放到具体的任务中,让任务根据自己需要自行申请线程资源,没有整体的统筹,也容易引起线程资源开启过多,线程之间进行频繁的上下文切换,降低了计算性能。
发明内容
为了克服上述技术问题,本发明提供了一种任务定义式编程模式及高性能计算框架,能够普遍适用各种复杂任务场景,不需要主线程参与任务分解和协调任务执行,避免了主线程空转等待、休眠等待、同步阻塞等待等,进一步节约了计算机硬件资源。同时通过对线程资源进行整体统筹,避免了线程资源开启过多导致的计算机性能降低。
为实现上述目的,本发明的技术方案如下:
第一方面,本发明提供一种任务定义式编程模式,所述编程模式,通过将任务分解成可独立被线程调度的子任务,以子任务状态表记录子任务的状态,通过子任务数据初始化前置条件表来告知框架每一子任务数据初始化所需要对其他子任务的逻辑依赖。
优选地,所述子任务产生的方法,包括:
在至少一项需要通过必要的初始数据进行初始化,且需要计算机完成某项运算或任务执行后,得到输出数据的任务中,选取能够分解出子任务的任务,每一个子任务继续分解出自己的子任务;直到所有任务均无法再分解出子任务;
所述能够分解出子任务的任务为父任务;当一个所述父任务,分解出多个子任务,那么该所述父任务分解出的所有子任务之间互为同级子任务。
优选地,所述通过子任务状态表记录子任务的状态,包括:
每一个所述父任务,保存着其分解出的所有子任务的状态;当所述父任务为完成最终的输出数据,框架对它进行了数据初始化之后,分解出多个子任务,所述父任务通过子任务状态表记录它所分解出来的所有子任务的任务状态。
优选地,所述任务状态,包括但不限于:
待初始化数据状态:当一个任务没有足够的初始数据输入时,这个任务属于待初始化数据状态;
初始化数据状态:当一个任务满足足够的初始数据输入时,这个任务属于初始化数据状态;
待初始化子任务数据状态:处于初始化数据状态下的任务,当有子任务满足初始化数据的前置条件时,该任务就属于待初始化子任务数据状态。
待运行状态:当处于初始化数据状态的任务。其运行不需要拆分子任务,或者子任务状态满足了其任务执行的条件。则这个任务属于待运行状态;
完结状态:而一个任务已经进行了任务执行操作,得到了输出数据,这个任务属于完结状态。
优选地,所述通过子任务数据初始化前置条件表来定义子任务初始化输入数据这一步骤对其他子任务的依赖关系,包括:
所述父任务初始化后,分解出多个所述子任务,子任务依赖所述父任务初始化后的数据或其他同级子任务的输出结果,框架才可以对该子任务进行输入数据初始化;或根据所述同级子任务的输出结果判断是否可以被初始化。
所述子任务数据初始化前置条件表记录每一个所述子任务数据初始化对同级别子任务的依赖关系,框架对该子任务进行数据初始化需要子任务数据初始化前置条件表所记录同级子任务的输出结果。
第二方面,本发明提供一种高性能计算框架,包括:
框架监控调度模块,用于对整个系统运行进行监控和资源调度;
任务队列组(TQ),用于存放初始化后处于待初始化子任务数据状态,待运行状态的任务;
所述框架通过子任务状态表记录子任务的状态,通过子任务初始化数据前置条件表配合子任务状态表来协调子任务的数据初始化。
优选地,所述框架的运行包括:
所述框架接受客户请求,并根据所述请求初始化对应的任务;
将初始化后的任务推入所述任务队列组(TQ);
所述框架监控调度模块根据所述任务队列组(TQ)的情况来分配线程资源不断从任务队列组(TQ)中取出任务并对其进行调度。
优选地,从所述任务队列组(TQ)中取出任务,包括:
S11:从任务队列组(TQ)中取出任务;对于满足任务执行条件的任务跳S12,对于有子任务满足初始化数据前置条件的任务跳转S13;
S12:对任务进行任务执行操作,之后如果任务已经没有了父任务说明该任务完成了运行,如果任务有父任务,则对父任务子任务状态表进行更新,并且将父任务跳转S14;
S13:有子任务满足初始化前置条件任务,对满足条件的子任务进行数据初始化,初始化后的每一个子任务推入任务队列组(TQ);
S14:判断任务状态,满足任务执行条件的任务跳转S12,任务有子任务满足初始化数据前置条件的,跳转S13,其他的不做处理。
本发明的有益效果为:
本申请提出一种任务定义式编程模式及高性能计算框架,针对现有多线程编程模式存在资源浪费及不具有通用性的弊端,设计了能够普遍适用各种复杂任务场景的编程模式及高性能框架,本发明通过对任务进行多级分解生成一个个可单独被线程调度的任务,以子任务状态表记录子任务状态,以子任务数据初始化前置条件表来处理同级子任务之间运行所需的逻辑依赖关系,以此来达到通用于各个业务场景的需要。不需要采用传统的主线程协调任务分解和以方法调用形式让多线程参与到任务的执行中,有效避免了主线程空转等待、休眠等待、同步阻塞等待时造成的计算机硬件资源的浪费。对于已经分解成一个个可被线程独立调度的任务,框架通过子任务状态表,子任务数据初始化前置条件表,对子任务进行整体有序统筹调度,避免了传统方法由于线程资源开启过多,线程切换频繁造成的计算机性能降低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中上所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种任务定义式编程模式及高性能计算框架的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S1、S2等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
本发明实施例提供了一种任务定义式编程模式及高性能计算框架,对任务请求进行分解,将子任务的状态记录在子任务状态记录表内,通过子任务数据初始化前置条件表来协调子任务的运行,解决了在复杂场景下容易出现主线程等待占用计算机硬件资源的问题,提高了计算机的性能。下面将结合具体实施例对本发明请求保护的一种任务定义式编程模式及高性能计算框架作进一步地详细阐述。
基于本发明的一个方面,请参阅附图1,其示出了本发明一种任务定义式编程模式的一个实施例的流程,所述编程模式通过将任务多级分解成一个个可单独独立被线程调度的子任务,以子任务状态表记录子任务的状态,通过子任务数据初始化前置条件表来处理子任务输入数据初始化与同级子任务之间所需的逻辑依赖关系,以此来达到通用于各个业务场景的需要。
本申请提供的编程模式能够普遍适用各种复杂任务处理场景,以子任务状态表记录子任务状态,子任务数据初始化前置条件表配合子任务状态表来协调子任务数据初始化,将任务不断推进到运行完结状态,不需要采用传统的主线程协调任务分解和以方法调用的形式将多线程参与到任务的执行中,有效避免了传统编程模式由于主线程空转等待、休眠等待、同步阻塞等待造成的计算机硬件资源的浪费。如本领域技术人员可以理解的,任务只是定义一个业务的执行过程,及任务应该如何拆分成多个子任务以达到最终任务的输出目标,通过任务的子任务数据初始化前置表定义这一个类型任务拆分出来的子任务之间业务上执行的前后逻辑依赖关系。具体的每一个任务,子任务何时引入线程对及进行调度,引入多少线程对任务进行调度,都收回到框架层面统一统筹。
优选地,所述子任务产生的方法,包括:
在至少一项需要通过必要的初始数据进行初始化输入数据(下文称初始化或者初始化数据),且需要计算机完成某项运算或任务执行后,得到输出数据的任务中,选取能够分解出子任务的任务,每一个子任务继续分解出自己的子任务;直到所有任务均无法再分解出子任务;所述能够分解出子任务的任务为父任务;
如本领域技术人员可以理解的,对于比较复杂的任务,通过本发明可以分解成若干子任务,对于分解出子任务的任务,它是所分解出的所有子任务的父任务,每一个父任务,保存着每一个子任务的状态,每一个子任务还可以有自己的子任务。例如,在其中一个计算长方体体积的实例中,需要计算一个长方体的体积是一个任务,它需要先计算出长方体底面的面积,然后这个面积乘以高才得出长方体这个体积的结果,而这个计算长方体体积是一个父任务(下称A),计算底面矩形的面积是父任务分解出来的一个子任务(下称A1)。此时,A的任务执行是底面积乘以高,而分解出来的子任务A1的任务执行是底面长乘以宽。
同级子任务:一个父任务,它如果分解出多个子任务,那它分解出的这些子任务之间的关系叫同级子任务。
优选地,所述通过子任务状态表记录子任务的状态,包括:
每一个所述父任务,保存着其分解出的所有子任务的状态;当所述父任务为完成最终的输出数据,进行了初始化之后,分解出多个子任务,所述父任务通过子任务状态表记录它所分解出来的所有子任务的任务状态。
优选地,所述任务状态,包括但不限于:
待初始化数据状态:当一个任务没有足够的初始数据输入时,这个任务属于待初始化数据状态;
初始化数据状态:当一个任务满足足够的初始数据输入时,这个任务属于初始化数据状态;
待初始化子任务数据状态:处于初始化数据状态下的任务,当有子任务满足初始化数据的前置条件时,该任务就属于待初始化子任务数据状态。
待运行状态:当处于初始化数据状态的任务满足可以直接进行任务执行的阶段,这个任务属于待运行状态;
完结状态:而一个任务已经进行了任务执行操作,得到了输出数据,这个任务属于完结状态。
仍然以计算长方体体积的实施例进行说明,当A任务初始化数据,即A有了输入数据长方体的长,宽,高之后。任务A就是处于初始化数据状态,但是任务A并不属于待运行状态。它需要等它的子任务A1变成完结态之后,有了A1的输出结果底面积后,A才有了转为待运行状态的条件,也就是说它需要等待A1任务转为完结状态后A才是带运行状态。而A1任务的数据初始化需要父任务的初始化数据即长方体底面的长和宽的数据。
优选地,所述通过子任务数据初始化前置条件表来协调子任务的数据初始化,包括:
所述父任务初始化后,分解出多个所述子任务,对于子任务,框架需要依赖所述父任务初始化后的数据或其他同级子任务的输出结果,才可以对该子任务进行初始化;或根据所述同级子任务的输出结果判断是否可以被初始化;
所述子任务数据初始化前置条件表记录每一个所述子任务数据初始化对同级别子任务的依赖关系,框架对该子任务进行数据初始化需要子任务数据初始化前置条件表所记录同级子任务的输出结果。
具体的,有些子任务在父任务数据初始化后,子任务框架可以依赖父任务初始化后的数据对子任务进行数据初始化,但也会存在另外的可能,即部分子任务需要其他同级子任务的输出结果才可以对其进行数据初始化,或者根据同级子任务的输出结果判断是否可以被初始化数据。而所述子任务数据初始化前置条件表就是记录每一个子任务框架对其进行初始化需要哪些同级子任务的输出结果或者需要哪些同级子任务变成完结状态。
以其中一个实施例进行说明,当一个任务有必要的输入数据,且为完成任务输出,可以分解出多个子任务,对于分解出子任务的任务,它以子任务状态记录表记录子任务的状态,子任务数据初始化前置条件表可以让框架知道每一个子任务在怎样的条件下可以被初始化数据,具体执行过程如下
{
初始化输入数据:
子任务状态表:
每一个子任务初始化前置条件表:
子任务列表:
任务执行:
输出数据:
}
本实施例中可以看到,和传统编程模式不同的是,本发明以子任务代替了传统编程模式中的方法调用,用子任务数据初始化前置条件表代替了传统编程模式需要主线程来协调子任务运行的方式,在任务处理的时候不在需要去协调多线程何时参与进来。避免了主线程在等待时空转、休眠等待、同步阻塞等待造成的计算机硬件资源的占用。
基于本发明的另一个方面,本发明提供了一种高性能计算框架,包括:
框架监控调度模块,用于对整个系统运行进行监控和资源调度;
任务队列组(TQ),用于存放待初始化子任务数据状态,待运行状态的任务的若干队列;
所述框架通过子任务状态表记录子任务的状态,通过任务数据初始化前置条件表来协调子任务的数据初始化,并将子任务状态向前推进。
优选地,请参阅附图1,示出了本发明一种高性能计算框架的运行流程,所述框架的运行包括:
所述框架接受任务输入请求,并根据所述任务输入请求初始化对应的任务;
将初始化后的任务推入所述请求任务队列组(TQ);
所述框架监控调度模块根据任务队列组(TQ)各队列负载状态及任务分布情况分配线程资源,分别从任务队列组(TQ)取出任务。本发明实施例,通过框架监控调度模块对任务调度进行整体统筹,克服了传统框架中线程资源缺乏整体调度线程资源开启过多,或者线程频繁切换造成的计算机性能的降低。
优选地,从所述任务队列组(TQ)中取出任务,包括:
S11:从任务队列组(TQ)中取出任务;对于满足任务执行条件的任务跳S12,对于有子任务满足初始化数据前置条件的任务跳转s13。
S12:对任务进行任务执行操作,之后如果任务已经没有了父任务说明该任务完成了运行,如果任务有父任务,则对父任务子任务状态表进行更新,并且将父任务跳转S14;
S13:有子任务满足初始化前置条件任务,对满足条件的子任务进行数据初始化,初始化后的每一个子任务跳转到所述步骤S12。
S14:判断任务状态,满足任务执行条件的任务跳转S12,任务有子任务满足初始化数据前置条件的,跳转S13,其他的不做处理。。
以其中一个实施例进行说明如何通过本发明框架对简单的跨行转账的任务进行调度
任务W:银行BAN1的账户C1发起一个转账请求,将其账户的资金5000元转入银行BAN2的账户C2。
首先,对任务W进行任务定义:必要的初始数据(C1账号,转账金额,C2账号,C2户名)
1、输入初始化数据
{
C1账号;
转账金额;
C2账号;
C2户名;
}
2、任务执行
{
给客户输出转账结果信息;
满足条件已完成转账操作;
或者条件不满足拒接交易。
}
3、子任务
W1:查询C1账户是否有足够余额;
W2:验证C2账户是否户名账号一致
W3:C1扣减金额5000
W4:C2增加金额5000
W5:转账验证
我们看到W3、W4的运行条件都要依赖W1、W2的运行结果,
4、以正常成功转账为例描述框架的运行
1:框架接收到了客户的转账请求以客户请求的输入数据初始化一个W
2:W不满足任务执行的条件,但是它的W1、W2满足了任务初始化的前置条件。
3:框架将W1、W2进行初始化数据,并将这两任务推入TQ。
4:框架线程分别从TQ中取出W1 W2,因为两任务状态都处于待运行状态,所以调度线程分别对其进行任务执行操作,并且因为W1 W2有父任务W。在对他们进行任务执行操作后,分别更新W中的子任务状态,这两个调度线程最后一个会检测W中的W3 W4具备了初始化数据的前置条件,因此最后一个调度线程(调度W1 W2中的某一个线程)对W3 W4进行数据初始化,并将W3 W4推入TQ。
5:框架线程分别从TQ中取出W3、W4进行任务执行。
6:W3、W4两任务分别执行后,都会分别检测其父任务的状态,W3、W4最后一个执行完的任务的线程会检测到W满足了任务执行的条件,因此直接对W执行任务执行操作。
7:W进行任务执行操作,因为它已经没有了父任务,所以整个任务运行完成。
本申请提出一种任务定义式编程模式及高性能计算框架,对现有的编程模式及框架进行了优化,通过子任务状态表及子任务数据初始化前置条件表来协调子任务运行,使优化后的编程模式及框架具有了通用性,能普遍适用于各种复杂的任务处理场景,同时提高计算机性能,释放了有限的计算机硬件资源。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。
Claims (8)
1.一种任务定义式编程模式,其特征在于,所述编程模式,通过将任务分解成可独立被线程调度的子任务,以子任务状态表记录子任务的状态,通过子任务数据初始化前置条件表来告知框架每一子任务数据初始化所需要对其他子任务的逻辑依赖。
2.根据权利要求1所述的一种任务定义式编程模式,其特征在于,所述子任务产生的方法,包括:
在至少一项需要通过必要的初始数据进行初始化,且需要计算机完成某项运算或任务执行后,得到输出数据的任务中,选取能够分解出子任务的任务,每一个子任务继续分解出自己的子任务;直到所有任务均无法再分解出子任务;
所述能够分解出子任务的任务为父任务;当一个所述父任务,分解出多个子任务,那么该所述父任务分解出的所有子任务之间互为同级子任务。
3.根据权利要求2所述的一种任务定义式编程模式,其特征在于,所述通过子任务状态表记录子任务的状态,包括:
每一个所述父任务,保存着其分解出的所有子任务的状态;当所述父任务为完成最终的输出数据,框架对它进行了数据初始化之后,分解出多个子任务,所述父任务通过子任务状态表记录它所分解出来的所有子任务的任务状态。
4.根据权利要求3所述的一种任务定义式编程模式,其特征在于,所述任务状态,包括但不限于:
待初始化数据状态:当一个任务没有足够的初始数据输入时,这个任务属于待初始化数据状态;
初始化数据状态:当一个任务满足足够的初始数据输入时,这个任务属于初始化数据状态;
待初始化子任务数据状态:处于初始化数据状态下的任务,当有子任务满足初始化数据的前置条件时,该任务就属于待初始化子任务数据状态;
待运行状态:当处于初始化数据状态的任务,其运行不需要拆分子任务,或者子任务状态满足了其任务执行的条件;则这个任务属于待运行状态;
完结状态:当一个任务已经进行了任务执行操作,得到了输出数据,这个任务属于完结状态。
5.根据权利要求4所述的一种任务定义式编程模式,其特征在于,所述通过子任务数据初始化前置条件表来定义子任务初始化输入数据这一步骤对其他子任务的依赖关系,包括:
所述父任务初始化后,分解出多个所述子任务,子任务依赖所述父任务初始化后的数据或其他同级子任务的输出结果,框架才可以对该子任务进行输入数据初始化;或根据所述同级子任务的输出结果判断是否可以被初始化;
所述子任务数据初始化前置条件表记录每一个所述子任务数据初始化对同级别子任务的依赖关系,框架对该子任务进行数据初始化需要子任务数据初始化前置条件表所记录同级子任务的输出结果。
6.一种高性能计算框架,其特征在于,包括:
框架监控调度模块,用于对整个系统运行进行监控和资源调度;
任务队列组(TQ),用于存放初始化后处于待初始化子任务数据状态,待运行状态的任务;
所述框架通过子任务状态表记录子任务的状态,通过子任务初始化数据前置条件表配合子任务状态表来协调子任务的数据初始化。
7.根据权利要求6所述的一种高性能计算框架,其特征在于所述框架的运行包括:
所述框架接受客户请求,并根据所述请求初始化对应的任务;
将初始化后的任务推入所述任务队列组(TQ);
所述框架监控调度模块根据所述任务队列组(TQ)的情况来分配线程资源,不断从任务队列组(TQ)中取出任务,并对其进行调度。
8.根据权利要求7所述的一种高性能计算框架,所述从任务队列组(TQ)中取出任务并对其进行调度,包括:
S11:从任务队列组(TQ)中取出任务;对于满足任务执行条件的任务跳S12,对于有子任务满足初始化数据前置条件的任务跳转S13;
S12:对任务进行任务执行操作,之后如果任务已经没有了父任务说明该任务完成了运行,如果任务有父任务,则对父任务子任务状态表进行更新,并且将父任务跳转S14;
S13:有子任务满足初始化前置条件任务,对满足条件的子任务进行数据初始化,初始化后的每一个子任务推入任务队列组(TQ);
S14:判断任务状态,满足任务执行条件的任务跳转S12,任务有子任务满足初始化数据前置条件的,跳转S13,其他的不做处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110356409.7A CN112860415A (zh) | 2021-04-01 | 2021-04-01 | 一种任务定义式编程模式及高性能计算框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110356409.7A CN112860415A (zh) | 2021-04-01 | 2021-04-01 | 一种任务定义式编程模式及高性能计算框架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860415A true CN112860415A (zh) | 2021-05-28 |
Family
ID=75991995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110356409.7A Pending CN112860415A (zh) | 2021-04-01 | 2021-04-01 | 一种任务定义式编程模式及高性能计算框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860415A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166538A (zh) * | 2013-05-16 | 2014-11-26 | 北大方正集团有限公司 | 一种数据任务处理方法及系统 |
US20150143381A1 (en) * | 2013-11-20 | 2015-05-21 | International Business Machines Corporation | Computing session workload scheduling and management of parent-child tasks |
CN110134499A (zh) * | 2019-03-29 | 2019-08-16 | 新智云数据服务有限公司 | 任务调度方法、任务调度系统、存储介质和计算机设备 |
CN110196775A (zh) * | 2019-05-30 | 2019-09-03 | 苏州浪潮智能科技有限公司 | 一种计算任务处理方法、装置、设备以及可读存储介质 |
-
2021
- 2021-04-01 CN CN202110356409.7A patent/CN112860415A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166538A (zh) * | 2013-05-16 | 2014-11-26 | 北大方正集团有限公司 | 一种数据任务处理方法及系统 |
US20150143381A1 (en) * | 2013-11-20 | 2015-05-21 | International Business Machines Corporation | Computing session workload scheduling and management of parent-child tasks |
CN110134499A (zh) * | 2019-03-29 | 2019-08-16 | 新智云数据服务有限公司 | 任务调度方法、任务调度系统、存储介质和计算机设备 |
CN110196775A (zh) * | 2019-05-30 | 2019-09-03 | 苏州浪潮智能科技有限公司 | 一种计算任务处理方法、装置、设备以及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8914805B2 (en) | Rescheduling workload in a hybrid computing environment | |
US8739171B2 (en) | High-throughput-computing in a hybrid computing environment | |
CN109582455B (zh) | 多线程任务处理方法、装置及存储介质 | |
Warneke et al. | Exploiting dynamic resource allocation for efficient parallel data processing in the cloud | |
KR101686010B1 (ko) | 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 | |
US20050125793A1 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
JP2561801B2 (ja) | プロセス・スケジューリングの管理方法およびシステム | |
JP2012511204A (ja) | リソースを最適化するためのタスク再編成方法 | |
CN113535367A (zh) | 任务调度方法及相关装置 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN114217966A (zh) | 基于资源调整的深度学习模型动态批处理调度方法和系统 | |
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡系统 | |
CN109840149B (zh) | 任务调度方法、装置、设备及存储介质 | |
EP2282265A1 (en) | A hardware task scheduler | |
CN111459622A (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
CN112860415A (zh) | 一种任务定义式编程模式及高性能计算框架 | |
CN116069480A (zh) | 一种处理器及计算设备 | |
CN116048759A (zh) | 数据流的数据处理方法、装置、计算机和存储介质 | |
CN111124691B (zh) | 多进程共享的gpu调度方法、系统及电子设备 | |
Anderson et al. | Value-maximizing deadline scheduling and its application to animation rendering | |
CN114035926A (zh) | 应用线程调度方法、装置、存储介质及电子设备 | |
Meyer et al. | Pipel: exploiting resource reorganisation to optimise performance of pipeline-structured applications in the cloud | |
US9201688B2 (en) | Configuration of asynchronous message processing in dataflow networks | |
CN112506640A (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 | |
Cavalheiro et al. | A general modular specification for distributed schedulers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |