CN109814986A - 任务并行处理方法、存储介质、计算机设备、装置和系统 - Google Patents

任务并行处理方法、存储介质、计算机设备、装置和系统 Download PDF

Info

Publication number
CN109814986A
CN109814986A CN201711157341.XA CN201711157341A CN109814986A CN 109814986 A CN109814986 A CN 109814986A CN 201711157341 A CN201711157341 A CN 201711157341A CN 109814986 A CN109814986 A CN 109814986A
Authority
CN
China
Prior art keywords
task
need
execute
directed acyclic
processor
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.)
Granted
Application number
CN201711157341.XA
Other languages
English (en)
Other versions
CN109814986B (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201711157341.XA priority Critical patent/CN109814986B/zh
Priority to EP19210491.7A priority patent/EP3651020A1/en
Priority to EP18878728.7A priority patent/EP3614260A4/en
Priority to KR1020197037907A priority patent/KR102569086B1/ko
Priority to PCT/CN2018/108298 priority patent/WO2019095873A1/zh
Priority to JP2019568198A priority patent/JP7074777B2/ja
Publication of CN109814986A publication Critical patent/CN109814986A/zh
Priority to US16/575,344 priority patent/US11221877B2/en
Priority to US16/702,491 priority patent/US11360811B2/en
Priority to US16/702,502 priority patent/US11113103B2/en
Priority to US16/705,190 priority patent/US11113104B2/en
Application granted granted Critical
Publication of CN109814986B publication Critical patent/CN109814986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明提出的一种任务并行处理方法、存储介质、计算机设备、装置和系统,通过根据需执行任务之间的依赖关系,构建任务有向无环图DAG,再根据任务有向无环图DAG进行需执行任务分发与控制,依赖于工作队列的可重新调度性实现多核处理器的任务并行,提高了数据处理效率。本实施例提出的任务并行处理方法的实施不依赖tensorflow或者caffe等框架程序,因此在设计程序时无需考虑接口兼容等问题。

Description

任务并行处理方法、存储介质、计算机设备、装置和系统
技术领域
本发明涉及信息技术领域,特别是涉及一种任务并行处理方法、存储介质、计算机设备、装置和系统。
背景技术
尽管可以通过CUDA(Compute Unified Device Architecture,显卡厂商NVIDIA推出的运算平台)、Cudnn(CUDA Deep Neural Network library,NVIDIA推出的深度神经网络加速库)、Cublas(CUDA Basic Linear Algebra Subprograms,NVIDIA推出的矩阵运算加速库)等加速器API接口进行编程,实现卷积神经网络的程序指令。但是,通过CUDA、Cudnn、Cublas等加速器API接口编程,实现的卷积神经网络的各指令间无相互依赖关系,只可以顺序执行编程指令。
神经网络实际是一串队列函数,是一种图结构。在实现卷积神经网络的程序指令,会存在任务分支。目前可以应用tensorflow(谷歌基于DistBelief进行研发的第二代人工智能学习系统)或者Caffe(Convolutional Architecture for FastFeature Embedding,卷积神经网络框架)等框架应用程序实现卷积神经网络的程序的任务并行,但是,应用上述框架程序实现任务并行,不仅需额外安装软件,而且存在程序接口不兼容的问题,使用不便。
发明内容
基于此,有必要针对由于需借助tensorflow或者Caffe等框架应用程序实现任务并行,造成的使用不便的问题,提供一种任务并行处理方法、存储介质、计算机设备、装置和系统。
本发明提出了一种任务并行处理方法,包括:
根据需执行任务之间的依赖关系,构建任务有向无环图DAG;
根据所述任务有向无环图DAG,将各所述需执行任务分发至处理器的多个工作队列;
根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行。
在其中一个实施例中,所述根据需执行任务之间的依赖关系,构建任务有向无环图DAG的步骤之前包括:
根据程序中的操作节点和/或数据节点对程序进行拆分,获取所述需执行任务。
在其中一个实施例中,所述根据程序中的操作节点对程序进行拆分,获取所述需执行任务的步骤包括:
若所述程序包括带模型的操作请求,则对所述带模型的操作请求的模型进行拆分和/或对所述模型的输入数据进行拆分,获取需执行任务。
在其中一个实施例中,所述对所述带模型的操作请求的模型进行拆分,获取需执行任务的步骤包括:
设置拆分模型得到的各所述需执行任务对应的权值;
使用各所述权值,设置所述需执行任务的输入数据与输出数据的对应关系。
在其中一个实施例中,所述对所述带模型的操作请求的模型进行拆分,获取需执行任务的步骤包括:
按照预设规则在模型的窗口方向和/或通道方向上拆分所述带模型的操作的模型,得到需执行任务。
在其中一个实施例中,所述对所述带模型的操作请求的输入数据进行拆分,获取需执行任务的步骤包括:
按照预设规则在数据的窗口方向拆分所述带模型的操作的输入数据,得到需执行任务。
在其中一个实施例中,所述根据程序中的操作节点对程序进行拆分,获取所述需执行任务的步骤包括:
若所述程序包括不带模型的操作请求,则对所述不带模型的操作请求的输入数据和/或输出数据进行拆分,获取需执行任务。
在其中一个实施例中,所述对所述不带模型的操作请求的输入数据和/或输出数据进行拆分,获取需执行任务的在步骤包括:
按照预设规则在数据的窗口方向拆分所述输入数据和/或输出数据,得到需执行任务。
在其中一个实施例中,所述根据需执行任务之间的依赖关系,构建任务有向无环图DAG的步骤包括:
根据获取的各所述需执行任务之间的依赖关系,确定所述任务有向无环图DAG中的并行结点与顺序结点;
根据所述并行结点与顺序结点构建任务有向无环图DAG。
在其中一个实施例中,所述根据所述任务有向无环图DAG将各所述需执行任务分发至所述处理器的多个工作队列的步骤包括:
对所述任务有向无环图DAG进行拓扑排序,获取任务拓扑排序序列;
根据各所述需执行任务的预设执行时间,对得到的所述拓扑排序序列进行排序,得到最长拓扑排序序列;
根据所述最长拓扑排序序列以及各所述需执行任务之间的依赖关系,分发各所述需执行任务至所述工作队列。
在其中一个实施例中,所述根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行的步骤包括:
根据所述任务有向无环图DAG为各所述需执行任务设置引用计数;
若被依赖的需执行任务已执行,则修改需依赖的需执行任务的引用计数;
当所述需执行任务的引用计数达到预设值,控制各所述工作队列中引用计数达到预设值的需执行任务开始运行。
本发明提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法所提及的步骤。
本发明提出了一种任务并行处理系统,包括存储器、多核处理器,及存储在存储器上并可在处理器上运行的计算机程序,所述多核处理器能够运行拆分算法,所述多核时处理器执行所述计算机程序时实现上述方法所提及的步骤。
本发明提出了一种任务并行处理系统,包括存储器、第一处理器和第二处理器,所述第一处理器能够运行拆分算法,第二处理器为多核处理器,所述第一处理器和第二处理器执行所述计算机程序时实现上述方法所提及的步骤。
相应的,本发明还提出了一种任务并行处理装置,包括:DAG图构建模块、任务分发模块和调度控制模块,
所述DAG图构建模块,用于根据需执行任务之间的依赖关系,构建任务有向无环图DAG;
所述任务分发模块,用于根据所述任务有向无环图DAG,将各所述需执行任务分发至处理器的多个工作队列;
所述调度控制模块,用于根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行。
与现有技术相比,本发明提供的一种任务并行处理方法、存储介质、计算机设备、装置和系统具有如下有益效果:
本发明提出的一种任务并行处理方法、存储介质、计算机设备、装置和系统,通过根据需执行任务之间的依赖关系,构建任务有向无环图DAG,再根据任务有向无环图DAG进行需执行任务分发与控制,依赖于工作队列的可重新调度性实现多核处理器的任务并行,提高了数据处理效率。本实施例提出的任务并行处理方法的实施不依赖tensorflow或者Caffe等框架程序,因此在设计程序时无需考虑接口兼容等问题。
附图说明
图1为本发明一个实施例中提出的一种任务并行处理系统的结构示意图;
图2为本发明一个实施例中提出的一种任务并行处理系统的结构示意图;
图3为本发明一个实施例中提出的一种任务并行处理方法的步骤流程图;
图4为本发明一个实施例中提出的对不带模型的操作请求的输入数据和输出数据进行拆分的示意图;
图5为本发明一个实施例中提出的神经网络模型的卷积操作(conv)的输入输出示意图;
图6为本发明一个实施例中提出的对conv模型进行拆分的示意图;
图7为本发明一个实施例中提出的一种任务并行处理方法的步骤流程图;
图8为本发明一个实施例中构建的任务有向无环图DAG;
图9为本发明一个实施例中的需执行任务分发结果示意图;
图10为本发明一个实施例中提出的一种任务并行处理方法的步骤流程图;
图11为本发明一个实施例中构建的任务有向无环图DAG;
图12为本发明一个实施例中的需执行任务分发结果示意图;
图13为本发明一个实施例中提出的一种任务并行处理装置的结构示意图。
具体实施方式
为了使本发明的发明目的、技术方案及技术效果更加清楚明白,以下结合附图对本发明的具体实施例进行描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。应当清楚是,本实施例中的“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。
图1示出的为本发明实施例提出一种任务并行处理系统100(为了便于区分,下文称第一任务并行处理系统)的结构示意图。所述处理器系统包括:处理器110和存储器120,存储器120上存储有处理器110可执行的指令;处理器110包括多个处理器核,各处理器核可以通过内总线进行通信,执行不同的任务。处理器110的处理器核可以运行拆分算法。
图2示出的为本发明实施例提出另一种任务并行处理系统200(为了便于区分,下文称第二任务并行处理系统)的结构示意图,该任务并行处理系统包括第一处理器210、第二处理器220和存储器230。存储器230上存储有第一处理器210和/或第二处理器220可执行的指令。第一处理器210的处理器核需具备运行拆分算法的能力;第二处理器220可以不具备运行拆分算法的能力。第一处理器210与第二处理器220各自的处理器核通过内总线进行通信,执行不同任务。第一处理器210与第二处理器220通过总线通信,协同工作。
作为一种可选的实施方式,第一处理器210可以为多核处理器,也可以为单核处理器。第二处理器220为多核处理器。
如图3所示,为本发明提出的一种任务并行处理方法的步骤流程图。该方法在图1或图2所示的任务并行处理系统上运行,下述步骤可以以指令的形式存储于上述任务并行处理系统的存储器上,所述方法包括:
步骤S301:根据需执行任务之间的依赖关系,构建任务有向无环图DAG。
本实施例中的有向无环图DAG是为了表示需执行任务之间的驱动依赖关系。DAG(Directed Acyclic Graph,有向无环图)是有向图的一种,常被用来表示事件之间的驱动依赖关系,管理任务之间的调度。基于DAG的这些特性,因此,可以使用DAG来描述获取的需执行任务之间的逻辑关系。
需执行任务之间的依赖关系是指:某些需执行任务的执行需要依赖于其他执行任务的执行结果。例如:读取A指令,需要依赖于写入A指令这一操作。
作为一种可选的实施方式,需执行任务可由第一任务并行处理系统100中处理器110的处理器核运行预设的拆分算法,拆分需执行的程序得到。
作为一种可选的实施方式,需执行任务可由第二任务并行处理系统200中第一处理器210的处理器核运行预设的拆分算法,拆分需执行的程序得到。
本实施步骤S301可以由第一任务并行处理系统100中处理器110的处理器核执行,或者第二任务并行处理系统200中第一处理器的处理器核执行。
步骤S302:根据所述任务有向无环图DAG,将各所述需执行任务分发至所述处理器的多个工作队列。
第一任务并行处理系统100中处理器的处理器核,或者第二任务并行处理系统200中处理器核都可以包括一个或多个工作队列。
工作队列(work queue)是将任务推后执行的一种机制,可以按序运行放入的待需执行任务。工作队列中的各需执行任务的运行由一个内核线程控制,因此可以通过处理器系统中的中断控制机制调整工作队列的控制线程实现任务重新调度甚至睡眠。
在将需执行任务分发至工作队列时,尽可能的将可并行的任务分发至不同的工作队列以减少程序的运行时间。任务有向无环图DAG中并行结点关联的下游需执行任务一般为可并行的需执行任务,因此,可以根据构建的任务有向无环图DAG,进行需执行任务的分发。
需要说明的是,本实施步骤S302可以由第一任务并行处理系统100中的任一处理器核执行,也可以由第二任务并行处理系统200中的任一处理器核执行。
步骤S303:根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行。
由于各工作队列独立运行,当某工作队列中存在需依赖与其他工作队列中的需执行任务的输出结果时,若不对需执行任务进行调度会出现执行错误。因此,为了保证程序输出正确结果,需根据任务有向无环图DAG中各所述需执行任务的依赖关系对各工作队列中的各需执行任务进行调度,控制各需执行任务的运行。
需要说明的是,本实施步骤可以由第一任务并行处理系统100中的任一处理器核执行,也可以由第二任务并行处理系统200中的任一处理器核执行。本实施例提出的一种任务并行处理方法,通过根据需执行任务之间的依赖关系,构建任务有向无环图DAG,再根据任务有向无环图DAG进行需执行任务分发与控制,依赖于工作队列的可重新调度性实现多核处理器的任务并行,提高了数据处理效率。本实施例提出的任务并行处理方法的实施不依赖tensorflow或者Caffe等框架程序,因此在设计程序时无需考虑接口兼容等问题。
在其中一个实施例中,根据需执行任务之间的依赖关系,构建任务有向无环图DAG的步骤之前包括:
根据程序中的操作节点和/或数据节点对程序进行拆分,获取所述需执行任务。执行程序中包含多个操作请求(如:conv,pool,active,add等),各操作请求之间存在操作节点。因此,可以根据操作节点拆分程序获取需执行任务。
在某些执行程序中,可能包含操作请求均需顺序执行。在这种情形下,可以考虑在执行程序的数据层面(代码层面),也可以根据程序中的数据节点进行拆分,增加任务的并行可能性。
本实施步骤需由第一任务并行处理系统100中处理器110的处理器核,或者第二任务并行处理系统200中第一处理器210的处理器核运行预设的拆分算法,根据程序中的操作节点和/或数据节点对须执行程序进行拆分得到需执行任务。
需要说明的是,在对执行程序进行拆分时,可以仅根据操作节点对执行程序进行拆分,也可以直接在数据层面根据数据节点进行拆分,还可以将二者结合。尽管将执行程序拆分的越细致,任务并行的可能性也越高,但是这也会增加任务并行时的调控难度。因此,在选择对执行程序的拆分时需根据实际需求选择拆分方式,本申请对此不作限定。
在其中一个实施例中,第一任务并行处理系统100中处理器110的处理器核,或者第二任务并行处理系统200中第一处理器210的处理器核对根据程序中的操作节点对程序进行拆分时,包括两种情形:1)程序中包括模型的操作请求;2)程序中不包括带模型的操作请求。
情形一:当所述程序中包括不带模型的操作请求(如pool,batchnorm,Lrn,active,add等)时,根据程序中的操作节点对程序进行拆分,获取所述需执行任务的步骤包括:
对所述不带模型的操作请求的输入数据和/或输出数据进行拆分,获取需执行任务。
当不带模型的操作请求的输入数据和/或输出数据进行拆分时,可以按照预设规则在数据的窗口方向(height width方向,hw方向)拆分所述输入数据和/或输出数据,得到需执行任务。
如图4示出的为在数据的窗口方向上,对不带模型的操作请求的输入数据和输出数据进行拆分的示意图。此次拆分的预设规则为,在窗口所在的平面上均分输入数据和输出数据。
设定输出数据Y=输入数据X,其中,X=x1+x2+x3+x4;Y=y1+y2+y3+y4。
需要说明的是,在数据的窗口方向上均分输入数据和输出数据得到需执行的任务,仅是本实施例提出的一种在数据的窗口方向上拆分输入数据和输出数据的具体形式,实际情形中,还可以以非均分的形式在数据的窗口方向上拆分数据,或者以不同的均分方式在数据的窗口方向上拆分数据,只要可以按照一定的规则将输入数据和输出数据拆分开,即可实现本步骤的目的,具体如何拆分,本发明不做限定。
还需要说明的是,本发明提出在数据的窗口方向上拆分输入数据和输出数据旨在获取多个需执行任务,只要输入数据和输出数据进行拆分即可达到本步骤的目的。因此,对不带模型的操作请求进行拆分得到需执行任务时,可以仅对输入数据进行拆分,也可以仅对输出数据进行拆分,还可以既拆分输入数据又拆分输出数据,上述情形均可以达到本步骤的实施目的,具体如何拆分可根据具体操作以及实际需求灵活选择。情形二:当所述程序包括带模型的操作请求(如conv,mlp等)时,根据程序中的操作节点对程序进行拆分,获取所述需执行任务的步骤包括:
对所述带模型的操作请求的模型进行拆分和/或对所述模型的输入数据进行拆分,获取需执行任务。
当对所述带模型的操作请求的模型进行拆分时,需预先设置拆分模型得到的各所述需执行任务对应的权值;再使用各所述权值,设置所述需执行任务的输入数据与输出数据的对应关系。
对所述带模型的操作请求的模型进行拆分时,可以按照预设规则在模型的窗口方向(height width方向,hw方向)上拆分所述带模型的操作的模型,得到需执行任务;也可以在模型的通道方向(channel方向,C方向)上拆分所述带模型的操作的模型,得到需执行任务;还可以将二者进行结合。
此外,也可以在hw平面上拆分带模型的操作的输入数据,得到需执行任务。
图5示出的神经网络模型的卷积操作(conv)的输入输出示意图。图4示出的为在通道方向上,对conv模型进行拆分的示意图。
设定conv模型依照:输出数据Y=输入数据X,进行输入输出。则将mlp任务在模型的C方向上分成3个子任务。输入数据X拆分成x1,x2,x3,对应的输出数据为y1,y2,y3。
由于神经网络自身特殊结构,拆分后的输入数据除进行处理外还需乘以相应的权值Si,以获取对应的输出数据为y1,y2,y3,其中,i为X拆分数。即:y1=x1*S1+x2*S2+x3*S3;y2=x1*S4+x2*S5+x3*S6;y3=x1*S7+x2*S8+x3*S9。最后通过运算处理y1、y2、y3即可得到输出数据Y。
在hw平面上拆分带模型的操作的输入数据方式与不带模型的操作请求在hw平面上拆分输入数据类似,在此不做详述。
需要说明的是,对带模型的操作请求进行拆分时,既可以仅在模型C方向上拆分,也可以仅在模型hw平面上拆分,还可以同时模型的C方向上和模型hw平面上拆分。虽然多种拆分方式可以增加任务的并行可能性,在理论上减少程序的运行时间,但是其实现难度也会相应加大,此外,实际应用中,运行拆分后的需执行任务,实际运行时间也会稍大于理论运行时间,因此,如何拆分带模型的操作请求还需根据实际场景进行选择,本申请对此不作限定。
使用上述两个情形提供的对获取需执行任务的方法得到的需执行任务的并行可能性高,构建任务有向无环图DAG中并行结点更加丰富,进而使得需执行程序的运行更加高效。
在其中一个实施例中,第一任务并行处理系统100或第二任务并行处理系统200的处理器核,按照获取的所述需执行任务之间的依赖关系,构建任务有向无环图DAG,包括:
按照获取的各需执行任务之间的依赖关系,确定所述任务有向无环图DAG中的并行结点与顺序结点;
根据所述并行结点与顺序结点构建任务有向无环图DAG。
获取的需执行任务之间可能存在依赖关系,也可能无依赖关系。当两需执行任务之间无依赖关系时,两需执行任务一般为可并行任务;当两需执行任务之间存在依赖关系时,两需执行任务一般为串行任务。因此可以根据各需执行任务之间的依赖关系确定任务有向无环图DAG中的并行结点与顺序结点,根据确定的不同类型的节点将各任务填充至任务有向无环图DAG的相应位置,完成任务有向无环图DAG的构建。
需要说明的是,当需要对需执行的程序进行拆分得到需执行任务时,需要保证任务并行处理系统中至少包含一个可以运行拆分算法的处理器,用于拆分程序获取需执行任务。
在其中一个实施例中,第一任务并行处理系统100或第二任务并行处理系统200的处理器核,根据所述任务有向无环图DAG将各所述需执行任务分发至所述处理器的多个工作队列,包括:
步骤S2021:对任务有向无环图DAG进行拓扑排序,获取任务拓扑排序序列。
步骤S2022:根据各所述需执行任务的预设执行时间,对得到的所述拓扑排序序列进行排序,得到最长拓扑排序序列。
步骤S2023:根据所述最长拓扑排序序列以及各所述需执行任务之间的依赖关系,分发各所述需执行任务至所述工作队列。
本实施例中,处理器核进行任务分发时,可以将任务分发至具有运行拆分算法的处理器核的工作队列,例如,将任务分发至第一任务并行处理器系统100中处理器110的处理器核的工作队列;也可以将任务分发至不具有运行拆分算法能力的处理器核的工作队列,例如第二任务并行处理系统200中第二处理器220的处理器核的工作队列。只要保证处理器核能够执行被分发的任务,就可以保证可以以并行的方式运行需执行的程序,运行需执行任务处理器核是否具有运行拆分算法的能力,此时不会影响程序的执行,因此,本发明对此不做限定。
本实施例根据任务拓扑排序序列的最长路径进行需执行任务分发,可以优化程序的执行时间,即理论上执行最长拓扑排序序列中任务的时间即为程序执行时间,这样可以保证需执行程序以最短的时间执行完毕。
在其中一个实施例中,第一任务并行处理系统100或第二任务并行处理系统200的处理器核,根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务的运行,包括:
步骤S3031:根据所述任务有向无环图DAG为各所述需执行任务设置引用计数。
步骤S3032:若被依赖的需执行任务已执行,则修改依赖的需执行任务的引用计数;
步骤S3033:当所述需执行任务的引用计数达到预设值,控制各所述工作队列中引用计数达到预设值的需执行任务运行。
图7示出的为一种任务并行处理方法的步骤流程图。该方法包括:
步骤S701:根据需执行程序中的操作节点对执行进行拆分,获取需执行任务A3,B2,C2,D4,E5,F1并根据需执行任务A3,B2,C2,D4,E5,F1之间的依赖关系构建任务如图6所示的任务有向无环图DAG。
步骤S702:根据图8所示的任务有向无环图DAG,将需执行任务A3,B2,C2,D4,E5,F1分发至所述工作队列1,工作队列2,工作队列3。分发结果如图9所示。
步骤S703:根据任务有向无环图DAG为需执行任务A3,B2,C2,D4,E5设置引用计数,并根据设置的引用计数控制A3,B2,C2,D4,E5,F1的运行。
本实施例中设定当引用计数为0时,工作队列中需执行任务开始运行。如需执行任务A3的引用计数为0,需执行任务A3被放入工作队列可以直接执行;需执行任务E5需依赖需执行任务B2和需执行任务C2的执行结果,因此将需执行任务E5的引用计数设置为2。当需执行任务B2执行完毕,将需执行任务E5的引用计数调整为1,当需执行任务C2执行完毕,再将需执行任务E5的引用计数调整为0,引用计数为0时,引用计数E5可以开始执行,同理控制需执行任务F1的运行,最终运行完成需执行程序。
图10示出了一种任务并行处理方法的步骤流程图。该方法包括:
步骤S1001:获取下述需执行程序中的数据节点,对需执行程序进行拆分,获取需执行任务,并根据需执行任务之间的依赖关系构建任务如图11所示的任务有向无环图DAG。
B=conv(A);
C=pool(B);
D=active(B);
E=add(C,D)。
其中,A,B,C,D,E为数据节点,conv,pool,active,add为操作节点。
本实施例的中的任务有向无环图DAG中数据E的获得依赖对数据C和数据D的处理结果,数据C和数据D的获得依赖对数据B的处理结果,而数据B的获得依赖对数据A的处理结果。
步骤S1002:根据图11所述的任务有向无环图DAG,将各需执行任务分发至工作队列1’和工作队列2’。分发结果如图12所示。
步骤S1003:根据任务有向无环图DAG为需执行任务设置引用计数,并根据设置的引用计数控制各需执行任务的运行。
本实施例设定引用计数的值为0时,工作队列中的需执行任务开始运行,否则不运行。当被引用的任务被执行后,任务的引用计数会减1,直至减为0,该任务才可被执行。初始设定,需执行任务B=conv(A)的引用计数为0;需执行任务C=pool(B)的引用计数为1;需执行任务D=active(B)的引用计数为1;需执行任务E=add(C,D)的引用计数为2。当需执行任务B=conv(A)运行完毕,需执行任务C=pool(B)和需执行任务D=active(B)的引用计数均减小1,变为0,此时需执行任务C=pool(B)和需执行任务D=active(B)开始运行。同理,当运行任务C=pool(B)和运行任务D=active(B)运行完毕后,运行任务E=add(C,D)的引用计数变为0,此时需执行任务E开始运行,需执行任务E运行完毕即需执行程序运行完毕。
基于同样的发明思想,本发明提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提及方法的步骤。
基于同样的发明构思,本发明提出了一种任务并行处理装置,该装置结构如图13所示,包括:DAG图构建模块410、任务分发模块420和调度控制模块430,
DAG图构建模块410,用于根据需执行任务之间的依赖关系,构建任务有向无环图DAG;
任务分发模块420,用于根据所述任务有向无环图DAG,将各所述需执行任务分发至处理器的多个工作队列;
调度控制模块430,用于根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行。
在其中一个实施例中,DAG图构建模块410,用于根据程序中的操作节点和/或数据节点对程序进行拆分,获取所述需执行任务。
在其中一个实施例中,DAG图构建模块410,用于若所述程序中包括带模型的操作请求,则对所述带模型的操作请求的模型进行拆分和/或对所述模型的输入数据进行拆分,获取需执行任务。
在其中一个实施例中,DAG图构建模块410,用于若所述程序包括不带模型的操作请求,则对所述不带模型的操作请求的输入数据和/或输出数据进行拆分,获取需执行任务。
在其中一个实施例中,所述DAG图构建模块410,用于按照获取的需执行任务之间的依赖关系,确定所述任务有向无环图DAG中的并行结点与顺序结点;根据所述并行结点与顺序结点构建任务有向无环图DAG。
在其中一个实施例中,任务分发模块420,用于对所述任务有向无环图DAG进行拓扑排序,获取任务拓扑排序序列;根据各所述需执行任务的预设执行时间,对得到的所述拓扑排序序列进行排序,得到最长拓扑排序序列;根据所述最长拓扑排序序列以及各所述需执行任务之间的依赖关系,分发各所述需执行任务至所述工作队列。
在其中一个实施例中,调度控制模块430,用于根据所述任务有向无环图DAG为各所述需执行任务设置引用计数;若被依赖的需执行任务已执行,则修改需依赖的需执行任务的引用计数;当所述需执行任务的引用计数达到预设值,控制各所述工作队列中引用计数达到预设值的需执行任务开始运行。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)运行本发明各个实施场景的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (15)

1.一种任务并行处理方法,其特征在于,包括:
根据需执行任务之间的依赖关系,构建任务有向无环图DAG;
根据所述任务有向无环图DAG,将各所述需执行任务分发至处理器的多个工作队列;
根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行。
2.根据权利要求1所述的方法,其特征在于,所述根据需执行任务之间的依赖关系,构建任务有向无环图DAG的步骤之前包括:
根据程序中的操作节点和/或数据节点对程序进行拆分,获取所述需执行任务。
3.根据权利要求2所述的方法,其特征在于,所述根据程序中的操作节点对程序进行拆分,获取所述需执行任务的步骤包括:
若所述程序包括带模型的操作请求,则对所述带模型的操作请求的模型进行拆分和/或对所述模型的输入数据进行拆分,获取需执行任务。
4.根据权利要求3所述的方法,其特征在于,所述对所述带模型的操作请求的模型进行拆分,获取需执行任务的步骤包括:
设置拆分模型得到的各所述需执行任务对应的权值;
使用各所述权值,设置所述需执行任务的输入数据与输出数据的对应关系。
5.根据权利要求3所述的方法,其特征在于,所述对所述带模型的操作请求的模型进行拆分,获取需执行任务的步骤包括:
按照预设规则在模型的窗口方向和/或通道方向上拆分所述带模型的操作的模型,得到需执行任务。
6.根据权利要求3所述的方法,其特征在于,所述对所述带模型的操作请求的输入数据进行拆分,获取需执行任务的步骤包括:
按照预设规则在数据的窗口方向拆分所述带模型的操作的输入数据,得到需执行任务。
7.根据权利要求2所述的方法,其特征在于,所述根据程序中的操作节点对程序进行拆分,获取所述需执行任务的步骤包括:
若所述程序包括不带模型的操作请求,则对所述不带模型的操作请求的输入数据和/或输出数据进行拆分,获取需执行任务。
8.根据权利要求7所述的方法,其特征在于,所述对所述不带模型的操作请求的输入数据和/或输出数据进行拆分,获取需执行任务的在步骤包括:
按照预设规则在数据的窗口方向拆分所述输入数据和/或输出数据,得到需执行任务。
9.根据权利要求1所述的方法,其特征在于,所述根据需执行任务之间的依赖关系,构建任务有向无环图DAG的步骤包括:
根据获取的各所述需执行任务之间的依赖关系,确定所述任务有向无环图DAG中的并行结点与顺序结点;
根据所述并行结点与顺序结点构建任务有向无环图DAG。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述根据所述任务有向无环图DAG将各所述需执行任务分发至所述处理器的多个工作队列的步骤包括:
对所述任务有向无环图DAG进行拓扑排序,获取任务拓扑排序序列;
根据各所述需执行任务的预设执行时间,对得到的所述拓扑排序序列进行排序,得到最长拓扑排序序列;
根据所述最长拓扑排序序列以及各所述需执行任务之间的依赖关系,分发各所述需执行任务至所述工作队列。
11.根据权利要求1-9任一项所述的方法,其特征在于,所述根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行的步骤包括:
根据所述任务有向无环图DAG为各所述需执行任务设置引用计数;
若被依赖的需执行任务已执行,则修改需依赖的需执行任务的引用计数;
当所述需执行任务的引用计数达到预设值,控制各所述工作队列中引用计数达到预设值的需执行任务开始运行。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-11中任意一项所述方法的步骤。
13.一种任务并行处理系统,其特征在于,包括存储器、多核处理器,及存储在存储器上并可在处理器上运行的计算机程序,所述多核处理器能够运行拆分算法,其特征在于,所述多核时处理器执行所述计算机程序时实现权利要求1-11中任一项所述方法的步骤。
14.一种任务并行处理系统,其特征在于,包括存储器、第一处理器和第二处理器,所述第一处理器能够运行拆分算法,第二处理器为多核处理器,其特征在于,所述第一处理器和第二处理器执行所述计算机程序时实现权利要求1-11中任一项所述方法的步骤。
15.一种任务并行处理装置,其特征在于,包括:DAG图构建模块、任务分发模块和调度控制模块,
所述DAG图构建模块,用于根据需执行任务之间的依赖关系,构建任务有向无环图DAG;
所述任务分发模块,用于根据所述任务有向无环图DAG,将各所述需执行任务分发至处理器的多个工作队列;
所述调度控制模块,用于根据所述任务有向无环图DAG中各所述需执行任务的依赖关系,调控各所述工作队列中并行的需执行任务开始运行。
CN201711157341.XA 2017-11-20 2017-11-20 任务并行处理方法、存储介质、计算机设备、装置和系统 Active CN109814986B (zh)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN201711157341.XA CN109814986B (zh) 2017-11-20 2017-11-20 任务并行处理方法、存储介质、计算机设备、装置和系统
EP18878728.7A EP3614260A4 (en) 2017-11-20 2018-09-28 METHOD, DEVICE AND SYSTEM FOR PARALLEL PROCESSING OF TASKS, STORAGE MEDIUM AND COMPUTER DEVICE
KR1020197037907A KR102569086B1 (ko) 2017-11-20 2018-09-28 태스크 병렬 처리 방법, 장치, 시스템, 기억 매체 및 컴퓨터 기기
PCT/CN2018/108298 WO2019095873A1 (zh) 2017-11-20 2018-09-28 任务并行处理方法、装置、系统、存储介质及计算机设备
JP2019568198A JP7074777B2 (ja) 2017-11-20 2018-09-28 タスク並列処理方法、装置、システム、記憶媒体およびコンピュータ機器
EP19210491.7A EP3651020A1 (en) 2017-11-20 2018-09-28 Computer equipment, data processing method, and storage medium
US16/575,344 US11221877B2 (en) 2017-11-20 2019-09-18 Task parallel processing method, apparatus and system, storage medium and computer device
US16/702,491 US11360811B2 (en) 2017-11-20 2019-12-03 Task parallel processing method, apparatus and system, storage medium and computer device
US16/702,502 US11113103B2 (en) 2017-11-20 2019-12-03 Task parallel processing method, apparatus and system, storage medium and computer device
US16/705,190 US11113104B2 (en) 2017-11-20 2019-12-05 Task parallel processing method, apparatus and system, storage medium and computer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711157341.XA CN109814986B (zh) 2017-11-20 2017-11-20 任务并行处理方法、存储介质、计算机设备、装置和系统

Publications (2)

Publication Number Publication Date
CN109814986A true CN109814986A (zh) 2019-05-28
CN109814986B CN109814986B (zh) 2021-01-05

Family

ID=66597986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711157341.XA Active CN109814986B (zh) 2017-11-20 2017-11-20 任务并行处理方法、存储介质、计算机设备、装置和系统

Country Status (1)

Country Link
CN (1) CN109814986B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110246078A (zh) * 2019-05-31 2019-09-17 北京航空航天大学 一种基于嵌入式gpu和卷积计算的图像处理方法和装置
CN110297632A (zh) * 2019-06-12 2019-10-01 百度在线网络技术(北京)有限公司 代码生成方法和装置
CN110333941A (zh) * 2019-06-28 2019-10-15 苏宁消费金融有限公司 一种基于sql的大数据实时计算平台及方法
CN110377340A (zh) * 2019-07-24 2019-10-25 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN110489219A (zh) * 2019-08-05 2019-11-22 北京字节跳动网络技术有限公司 一种调度功能对象的方法、装置、介质和电子设备
CN110554909A (zh) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 任务的调度处理方法、装置及计算机设备
CN111190703A (zh) * 2019-12-11 2020-05-22 平安医疗健康管理股份有限公司 实时数据处理方法、装置、计算机设备和存储介质
CN111258740A (zh) * 2020-02-03 2020-06-09 北京无限光场科技有限公司 一种用于启动应用程序的方法、装置和电子设备
WO2021008259A1 (zh) * 2019-07-15 2021-01-21 北京一流科技有限公司 用于异构架构的数据处理系统及其方法
CN112363837A (zh) * 2020-11-19 2021-02-12 北京航天泰坦科技股份有限公司 基于集群环境的点云数据并行处理方法和装置、设备及存储介质
CN112379995A (zh) * 2021-01-11 2021-02-19 北京江融信科技有限公司 一种基于dag的单元化分布式调度系统及方法
CN112541836A (zh) * 2020-12-10 2021-03-23 贵州电网有限责任公司 一种多能源系统数字孪生应用流程建模与部署方法及系统
CN112654092A (zh) * 2019-10-09 2021-04-13 中盈优创资讯科技有限公司 资源调度方法、装置及系统
CN112732979A (zh) * 2020-12-29 2021-04-30 五八有限公司 信息写入方法、装置、电子设备和计算机可读介质
CN112799797A (zh) * 2019-11-14 2021-05-14 北京沃东天骏信息技术有限公司 一种任务管理的方法和装置
CN112988362A (zh) * 2021-05-14 2021-06-18 南京蓝洋智能科技有限公司 一种任务处理方法、装置、电子设备及存储介质
WO2021217300A1 (zh) * 2020-04-26 2021-11-04 深圳市大疆创新科技有限公司 并行执行单元的管理装置、方法及电子设备
CN113760529A (zh) * 2021-01-15 2021-12-07 北京沃东天骏信息技术有限公司 接口执行方法、装置、设备和可读存储介质
CN114387150A (zh) * 2020-10-20 2022-04-22 富泰华工业(深圳)有限公司 用于人工智能学习的处理方法及装置、设备及存储介质
CN114625507A (zh) * 2022-03-14 2022-06-14 广州经传多赢投资咨询有限公司 基于有向无环图的任务调度方法、系统、设备及存储介质
CN117093502A (zh) * 2023-10-13 2023-11-21 支付宝(杭州)信息技术有限公司 程序代码的并行性检测方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012844A (zh) * 2010-11-29 2011-04-13 上海大学 一种面向cmp系统的线程调度方法
CN102156782A (zh) * 2011-04-14 2011-08-17 国电南瑞科技股份有限公司 基于图论的电力系统公式并行运算管理方法
US8464271B2 (en) * 2009-05-05 2013-06-11 International Business Machines Corporation Runtime dependence-aware scheduling using assist thread
CN104009920A (zh) * 2013-02-25 2014-08-27 华为技术有限公司 数据源移动的处理方法、转发报文的方法及其装置
CN104239137A (zh) * 2014-08-21 2014-12-24 东软集团股份有限公司 基于dag节点最优路径的多模型并行调度方法及装置
CN104731709A (zh) * 2015-03-31 2015-06-24 北京理工大学 一种基于jcudasa_bp算法的软件缺陷预测方法
CN105260237A (zh) * 2015-09-29 2016-01-20 中南大学 异构多核平台的任务调度系统及其调度方法
CN105956021A (zh) * 2016-04-22 2016-09-21 华中科技大学 一种适用于分布式机器学习的自动化任务并行的方法及其系统
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN106920545A (zh) * 2017-03-21 2017-07-04 百度在线网络技术(北京)有限公司 基于人工智能的语音特征提取方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464271B2 (en) * 2009-05-05 2013-06-11 International Business Machines Corporation Runtime dependence-aware scheduling using assist thread
CN102012844A (zh) * 2010-11-29 2011-04-13 上海大学 一种面向cmp系统的线程调度方法
CN102156782A (zh) * 2011-04-14 2011-08-17 国电南瑞科技股份有限公司 基于图论的电力系统公式并行运算管理方法
CN104009920A (zh) * 2013-02-25 2014-08-27 华为技术有限公司 数据源移动的处理方法、转发报文的方法及其装置
CN104239137A (zh) * 2014-08-21 2014-12-24 东软集团股份有限公司 基于dag节点最优路径的多模型并行调度方法及装置
CN104731709A (zh) * 2015-03-31 2015-06-24 北京理工大学 一种基于jcudasa_bp算法的软件缺陷预测方法
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN105260237A (zh) * 2015-09-29 2016-01-20 中南大学 异构多核平台的任务调度系统及其调度方法
CN105956021A (zh) * 2016-04-22 2016-09-21 华中科技大学 一种适用于分布式机器学习的自动化任务并行的方法及其系统
CN106920545A (zh) * 2017-03-21 2017-07-04 百度在线网络技术(北京)有限公司 基于人工智能的语音特征提取方法和装置

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110246078A (zh) * 2019-05-31 2019-09-17 北京航空航天大学 一种基于嵌入式gpu和卷积计算的图像处理方法和装置
CN110297632A (zh) * 2019-06-12 2019-10-01 百度在线网络技术(北京)有限公司 代码生成方法和装置
CN110333941A (zh) * 2019-06-28 2019-10-15 苏宁消费金融有限公司 一种基于sql的大数据实时计算平台及方法
CN110333941B (zh) * 2019-06-28 2021-08-24 苏宁消费金融有限公司 一种基于sql的大数据实时计算方法
WO2021008259A1 (zh) * 2019-07-15 2021-01-21 北京一流科技有限公司 用于异构架构的数据处理系统及其方法
CN110377340A (zh) * 2019-07-24 2019-10-25 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN110489219A (zh) * 2019-08-05 2019-11-22 北京字节跳动网络技术有限公司 一种调度功能对象的方法、装置、介质和电子设备
CN110489219B (zh) * 2019-08-05 2022-05-03 北京字节跳动网络技术有限公司 一种调度功能对象的方法、装置、介质和电子设备
CN110554909A (zh) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 任务的调度处理方法、装置及计算机设备
CN112654092A (zh) * 2019-10-09 2021-04-13 中盈优创资讯科技有限公司 资源调度方法、装置及系统
CN112654092B (zh) * 2019-10-09 2023-05-30 中盈优创资讯科技有限公司 资源调度方法、装置及系统
CN112799797B (zh) * 2019-11-14 2024-04-16 北京沃东天骏信息技术有限公司 一种任务管理的方法和装置
CN112799797A (zh) * 2019-11-14 2021-05-14 北京沃东天骏信息技术有限公司 一种任务管理的方法和装置
CN111190703B (zh) * 2019-12-11 2023-02-07 深圳平安医疗健康科技服务有限公司 实时数据处理方法、装置、计算机设备和存储介质
CN111190703A (zh) * 2019-12-11 2020-05-22 平安医疗健康管理股份有限公司 实时数据处理方法、装置、计算机设备和存储介质
CN111258740A (zh) * 2020-02-03 2020-06-09 北京无限光场科技有限公司 一种用于启动应用程序的方法、装置和电子设备
WO2021217300A1 (zh) * 2020-04-26 2021-11-04 深圳市大疆创新科技有限公司 并行执行单元的管理装置、方法及电子设备
CN114387150A (zh) * 2020-10-20 2022-04-22 富泰华工业(深圳)有限公司 用于人工智能学习的处理方法及装置、设备及存储介质
CN112363837A (zh) * 2020-11-19 2021-02-12 北京航天泰坦科技股份有限公司 基于集群环境的点云数据并行处理方法和装置、设备及存储介质
CN112541836A (zh) * 2020-12-10 2021-03-23 贵州电网有限责任公司 一种多能源系统数字孪生应用流程建模与部署方法及系统
CN112732979A (zh) * 2020-12-29 2021-04-30 五八有限公司 信息写入方法、装置、电子设备和计算机可读介质
CN112732979B (zh) * 2020-12-29 2023-02-17 五八有限公司 信息写入方法、装置、电子设备和计算机可读介质
CN112379995B (zh) * 2021-01-11 2021-04-20 北京江融信科技有限公司 一种基于dag的单元化分布式调度系统及方法
CN112379995A (zh) * 2021-01-11 2021-02-19 北京江融信科技有限公司 一种基于dag的单元化分布式调度系统及方法
CN113760529A (zh) * 2021-01-15 2021-12-07 北京沃东天骏信息技术有限公司 接口执行方法、装置、设备和可读存储介质
CN112988362A (zh) * 2021-05-14 2021-06-18 南京蓝洋智能科技有限公司 一种任务处理方法、装置、电子设备及存储介质
CN114625507B (zh) * 2022-03-14 2023-01-03 广州经传多赢投资咨询有限公司 基于有向无环图的任务调度方法、系统、设备及存储介质
CN114625507A (zh) * 2022-03-14 2022-06-14 广州经传多赢投资咨询有限公司 基于有向无环图的任务调度方法、系统、设备及存储介质
CN117093502A (zh) * 2023-10-13 2023-11-21 支付宝(杭州)信息技术有限公司 程序代码的并行性检测方法和装置
CN117093502B (zh) * 2023-10-13 2024-01-30 支付宝(杭州)信息技术有限公司 程序代码的并行性检测方法和装置

Also Published As

Publication number Publication date
CN109814986B (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
CN109814986A (zh) 任务并行处理方法、存储介质、计算机设备、装置和系统
KR102251932B1 (ko) 컴퓨팅 시스템에 의해 수행되는 태스크 제어
Teich et al. Invasive computing: An overview
CN103069390B (zh) 在混合计算环境中重新调度工作量的方法和系统
CN103069389B (zh) 混合计算环境中的高吞吐量计算的方法和系统
Yalcinkaya et al. An exact schedulability test for non-preemptive self-suspending real-time tasks
Amalarethinam et al. A new DAG based dynamic task scheduling algorithm (DYTAS) for multiprocessor systems
Kotthoff et al. Distributed solving through model splitting
Peng et al. Response time analysis of typed DAG tasks for G-FP scheduling
Zatelli et al. A concurrent architecture for agent reasoning cycle execution in jason
Dietze et al. Search-Based Scheduling for Parallel Tasks on Heterogeneous Platforms
Schuele Efficient parallel execution of streaming applications on multi-core processors
Sah et al. Critical path based scheduling of multiple applications in heterogeneous distributed computing
Evripidou et al. Data-flow vs control-flow for extreme level computing
Baruah et al. A Review of Selected Results on Uniprocessors
Schroder-Preikschat et al. Invasive Computing: An Overview
Diduch et al. A framework for modular signal processing systems with high-performance requirements
Wolfmann et al. The PN-PEM framework: a Petri Net based parallel execution model
Serbânescu Software development by abstract behavioural specification
Ghafoor Modeling of an adaptive parallel system with malleable applications in a distributed computing environment
Nguyen et al. Dynamic Workflow Composition and Execution
Castrillón Mazo et al. MPSoC Runtime Management
Tesfay Autonomic Management of Performance in FastFlow Stream Parallel Patterns
Loghin et al. An Approach for Direct Dataflow Execution on Contemporary Multicore Systems
Imene Benkermi et al. Hardware Task Scheduling for Heterogeneous SoC Architectures

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
GR01 Patent grant
GR01 Patent grant