CN109815021B - 针对递归树建模程序的资源关键树方法及系统 - Google Patents
针对递归树建模程序的资源关键树方法及系统 Download PDFInfo
- Publication number
- CN109815021B CN109815021B CN201811546982.9A CN201811546982A CN109815021B CN 109815021 B CN109815021 B CN 109815021B CN 201811546982 A CN201811546982 A CN 201811546982A CN 109815021 B CN109815021 B CN 109815021B
- Authority
- CN
- China
- Prior art keywords
- resource
- target node
- node
- tree
- bound
- 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.)
- Active
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明适用光电技术领域,提供了一种针对递归树建模程序的资源关键树方法及系统,针对现有算法在资源请求可以建模为递归树的情况,没有根据递归树结构的特殊性设计专门的死锁的算法的问题,首先将资源请求程序建模为递归树模型;其次初始化安全检测算法,并采用该算法计算目标节点的执行任务所需的资源下界;再计算可用资源与所述资源下界的差值,若差值为正则为所述目标节点分配资源;若所述差值为负则回收资源,避免死锁;有效的提高了系统资源利用率和计算性能。
Description
技术领域
本发明属于光电技术领域,尤其涉及一种针对递归树建模程序的资源关键树方法及系统。
背景技术
现有计算机系统资源分配时,资源请求程序常常建模为递归树,这样可以表示出其固有的并行性。递归树树中的每个结点都代表一个计算任务,他们请求m种类型的资源。资源是指程序运行的时候的需要cpu、gpu、内存、硬盘等各种资源,但是资源的不当分配会造成程序的死锁。递归程序的执行分为两个阶段,输出树和输入树。输出树代表树结点若要执行并请求资源分配,其必须先完成其祖先结点的执行和资源分配,是从上到下执行的阶段,输入树代表计算任务完成释放资源,从下到上的依次返回的阶段。当把每个递归树的结点即计算任务变为独立的线程或进程时,线程(进程)间可以并行执行来提高资源利用率和性能。
在资源充足的理想情况下,可以实现递归程序的并行最大化,但是在现实中,资源总是有限。递归树建模程序的两个阶段,其分叉和连接结构通常会给资源带来巨大压力,如现有资源无法满足节点请求的资源则引发死锁,甚至可能影响主要程序的运行和功能实现。现有技术存在不足。
发明内容
本发明的目的在于提供一种基于银行家算法的针对递归树建模程序的资源关键树方法,旨在解决现有资源请求建模为递归树时没有根据递归树结构的特殊性设计专门的死锁避免算法的技术问题。
本发明提供一种针对递归树建模程序的资源关键树方法,包括以下步骤:
S1.将资源请求程序建模为递归树模型;
S2.初始化安全检测算法,并采用该算法计算目标节点的执行任务所需的资源下界;
S3.计算可用资源与所述资源下界的差值,若差值为正则为所述目标节点分配资源;若所述差值为负则回收资源,避免死锁;
所述目标节点的资源下界包括目标节点及其所有子节点的最小资源需求。
优选的,还包括以下步骤;
S4.若步骤S3可以为所述目标节点分配资源,则利用所述目标节点的父节点的资源下界为所述目标节点的放松资源。
为了解决上述技术问题,本发明还提供一种针对递归树建模程序的资源关键树系统,包括以下单元:
建模单元,用于将资源请求程序建模为递归树模型;
资源下界计算单元,与所述建模单元连接,用于计算目标节点的执行任务所需的资源下界以及检测资源请求是否安全;
资源分配单元,与所述资源下界计算单元连接,用于计算可用资源与所述资源下界的差值,若差值为正则为所述目标节点分配资源;若所述差值为负则回收资源,避免死锁;
所述目标节点的资源下界包括目标节点及其所有子节点的最小资源需求。
优选的,还包括;
放松资源计算单元,与所述资源分配单元连接,用于当所述资源分配单元为所述目标节点分配资源时利用所述目标节点的父节点的资源下界为所述目标节点的放松资源。
本发明的针对递归树建模程序的资源关键树方法及系统,在此算法中引入了安全检测算法的概念,在考虑树的一个目标节点时将其分支结构的资源请求一并纳入考虑,得出每个结点任务执行资源下界,在实际应用中提升了资源请求程序的适用范围和资源分配性能。
附图说明
图1是本发明的针对递归树建模程序的资源关键树方法的基本算法结构图;
图2是本发明的针对递归树建模程序的资源关键树方法的完整算法结构图;
图3是本发明的针对递归树建模程序的资源关键树系统的功能单元框图;
图4是本发明的递归树建模程序示意图;
图5本发明的安全检测算法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
如附图1-5所示,本发明的机载轻型一种针对递归树建模程序的资源关键树方法,包括以下步骤:
S1.将资源请求程序建模为递归树模型;
S2.初始化安全检测算法,并采用该算法计算目标节点的执行任务所需的资源下界;
S3.计算可用资源与所述资源下界的差值,若差值为正则为所述目标节点分配资源;若所述差值为负则回收资源,避免死锁;
所述目标节点的资源下界包括目标节点及其所有子节点的最小资源需求。
上述资源关键树方法中的安全检测就是在死锁检测的时候,按照能防止该结点死锁的最小资源来进行死锁判断或者资源分配。
优选的,还包括以下步骤;
S4.若步骤S3可以为所述目标节点分配资源,则利用所述目标节点的父节点的资源下界为所述目标节点的放松资源。
这样做的原因是如果在资源分配的时候只考虑该结点能安全运行所需的最小资源并按照最小资源分配,多个子孙结点再进行死锁检测的时候有可能产生更多不安全状态,所以按照比最小资源大一点的资源量分配资源会减少不安全状态的次数提高性能,这是平衡资源利用率和时间性能之间矛盾的一种方式。
优选的,所述步骤S2中的安全检测算法包括以下步骤:
D1.将就绪队列中的所述目标节点赋值给局部变量,
D2.遍历局部变量中的目标节点的所有子节点,
D3.将所有子节点调入运行队列;
D4.遍历所述运行队列的每个结点,当运行队列中的所有节点都被执行时,统计所需资源作为目标节点的最小资源需求;当可用资源不足以满足运行队列中节点的运行需求时,返回不安全信号。
优选的,所述资源下界采用以下表达式计算:
N(u)=ru+MAX{N(v),N(v')};
其中,u为所述目标节点,v和v'分别是u在输入树阶段的左孩子和右孩子;N(u)为所述目标节点的资源下界,ru为所述目标节点自身所需资源。
优选的,若所述目标节点为根节点,其放松资源采用以下表达式计算:N'(u)=N(root);若所述目标节点不为根节点,其放松资源采用以下表达式计算:N'(u)=N(v)-rv;
其中,N'(u)为目标节点的放松资源,root为根节点;v是目标节点输出树阶段的父节点,N(v)为目标节点输出树阶段的父节点的资源下界,rv为目标节点的输出树阶段的父节点自身所需资源。
实施例二:
如附图3所示,为了解决上述技术问题,本发明还提供一种针对递归树建模程序的资源关键树系统,包括以下单元:
建模单元,用于将资源请求程序建模为递归树模型;
资源下界计算单元,与所述建模单元连接,用于计算目标节点的执行任务所需的资源下界以及检测资源请求是否安全;
资源分配单元,与所述资源下界计算单元连接,用于计算可用资源与所述资源下界的差值,若差值为正则为所述目标节点分配资源;若所述差值为负则回收资源,避免死锁;
所述目标节点的资源下界包括目标节点及其所有子节点的最小资源需求。
优选的,还包括;
放松资源计算单元,与所述资源分配单元连接,用于当所述资源分配单元为所述目标节点分配资源时利用所述目标节点的父节点的资源下界为所述目标节点的放松资源。
实施例二为将实施例一的算法封装成模块或单元,加入计算机内核的资源调度系统中,应用程序需要进行资源调度时通系统或者操作系统需要为递归树建模程序分配资源时,调用该模块的接口,对内存、硬盘等进行资源分配以达到理想的目标效果。
实施例三:
为了更好的说明本发明的技术方案,以下为具体实施时的详细步骤;
如附图4所示,程序的执行包括两个阶段,一个树输出树阶段,以自上而下的方式(南行)开始每个任务计算,首先分配其所需的资源,然后在可能的情况下启动其子任务线程,此过程由其所有子任务递归重复,直到叶子任务完成;然后启动另一个输入树阶段,从底部到顶部(北向)逐步完成递归过程,直到根任务完成。因此,通过将输出树和输入树阶段组合成递归树可以获得程序的资源请求图。给定这个模型,每个节点的父节点和子节点都可以从输出树和输入树角度定义,例如图4,对于结点C,从输出树阶段看A是C的父亲则有Pout(C)=A,H和F是C的孩子则有Cout(C)=H或者Cout(C)=F,从输入树阶段看A是C的孩子则有Cin(C)=A,同理有点Pin(C)=H或者Pin(C)=F,显然Pout(u)=Cin(u)且Pin(u)=Cout(u)。
关于执行递归树建模程序的资源的下限,每个结点u独立所需资源抽象为m维ru=<r1,r2...rm>,m代表资源种类数,ri代表某种资源i需要的资源数,计算资源关键树,即每个结点需要分配的最少资源N(u),计算方如下:
N(u)=ru+MAX{N(v),N(v')}
其中,v和v'分别是u在输入树阶段的左孩子和右孩子,这样计算出每个结点所需分配的最小资源(资源下界)而不是所有子节点所需资源的简单相加。
如附图4所示,对于结点C,(11,3)表示该节点请求的资源ru,<36,10>表示该节点的需要分配的资源下界N(u),C结点左孩子N(u)为<7,7>,右孩子N(u)为<25,2>,所以N(u)=<25+11,7+3>=<36,10>,这是保证该结点顺利运行的最小应该分配的资源量。
如附图5所示,首先,开始并初始化安全检测算法;
其次,进入结点u的死锁检测算法并预分配资源;
再次,进入安全检测算法;
进一步的,就绪队列Qr赋值给运行变量Q并将运行状态结点运行后可能释放的睡眠状态的结点入队;
在一步的,队列Q的结点循环出队,回收资源,判断可用资源是否可以满足就绪状态节点所需资源,完成安全检测;
最后,若安全则确认分配资源,否则给该节点会造成死锁,回收资源。
关于放松资源:
虽然所提出的算法可以通过快速有效地解决递归树建模请求的死锁问题来成功实现我们的目标,但其实际应用仍然是一个巨大的挑战,因为:1)树可能随时间动态变化。2)在算法可以工作之前,必须知道与每个节点相关联的最大需求向量。
所以,即便如此在递归树中,我们认为仍然可以以相对简单的方式有效地实现算法。我们通过对于任何以目标节点u为根的子树,N(u)是完成子树的资源下界,并且真实运行中每当检查到节点u的分配时,其输出树的父亲结点已经分配过资源,可以利用它来估计其子节点(即目标节点u)的放松资源。
所以,如果我们将最大需求N(u)放宽到N'(u),递归计算如下:
若所述目标节点为根节点,其放松资源采用以下表达式计算:N'(u)=N(root);若所述目标节点不为根节点,其放松资源采用以下表达式计算:N'(u)=N(v)-rv;
其中,N'(u)为目标节点的放松资源,root为根节点;v是目标节点输出树阶段的父节点,N(v)为目标节点输出树阶段的父节点的资源下界,rv为目标节点的输出树阶段的父节点自身所需资源。
这样我们不仅能够包容死锁解决方案的请求信息的不足,而且能够摆脱树中每个目标节点u的N(u)计算,从而大大降低了安全检查的复杂性从O(mn log log n)到O(m loglog n),这放松资源算法得到非常有效的实现。
关于系统装置的实施部署:
将该算法封装成模块,加入计算机内核的资源调度系统中,应用程序需要进行资源调度时通系统或者操作系统需要为递归树建模程序分配资源时,调用该模块的接口,对内存、硬盘等进行资源分配以达到理想的目标效果。
在本发明实施例中,在计算某个结点需要分配的资源时,引入了资源关键算法的概念,在充分考虑树的分支结构对执行资源的需求后,得出每个结点任务执行资源下界并避免死锁,根据资源下界对资源进行分配,大大的提高了程序执行的效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种针对递归树建模程序的资源关键树方法,其特征在于,包括以下步骤:
S1.将资源请求程序建模为递归树模型;
S2.初始化安全检测算法,并采用该算法计算目标节点的执行任务所需的资源下界;
S3.计算可用资源与所述资源下界的差值,若差值为正则为所述目标节点分配资源;若所述差值为负则回收资源,避免死锁;
所述目标节点的资源下界包括目标节点及其所有子节点的最小资源需求;
S4.若步骤S3可以为所述目标节点分配资源,则利用所述目标节点的父节点的资源下界为所述目标节点的放松资源;
所述资源下界采用以下表达式计算:N(u)=ru+MAX{N(v),N(v')};
其中,u为所述目标节点,v和v'分别是u在输入树阶段的左孩子和右孩子;N(u)为所述目标节点的资源下界,ru为所述目标节点自身所需资源;
若所述目标节点为根节点,其放松资源采用以下表达式计算:N'(u)=N(root);若所述目标节点不为根节点,其放松资源采用以下表达式计算:N'(u)=N(v)-rv;
其中,N'(u)为目标节点的放松资源,root为根节点;v是目标节点输出树阶段的父节点,N(v)为目标节点输出树阶段的父节点的资源下界,rv为目标节点的输出树阶段的父节点自身所需资源。
2.如权利要求1所述的资源关键树方法,其特征在于,所述步骤S2中的安全检测算法包括以下步骤:
D1.将就绪队列中的所述目标节点赋值给局部变量,
D2.遍历局部变量中的目标节点的所有子节点,
D3.将所有子节点调入运行队列;
D4.遍历所述运行队列的每个结点,当运行队列中的所有节点都被执行时,统计所需资源作为目标节点的最小资源需求;当可用资源不足以满足运行队列中节点的运行需求时,返回不安全信号。
3.一种针对递归树建模程序的资源关键树系统,其特征在于,包括以下单元:
建模单元,用于将资源请求程序建模为递归树模型;
资源下界计算单元,与所述建模单元连接,用于计算目标节点的执行任务所需的资源下界以及检测资源请求是否安全;
资源分配单元,与所述资源下界计算单元连接,用于计算可用资源与所述资源下界的差值,若差值为正则为所述目标节点分配资源;若所述差值为负则回收资源,避免死锁;
所述目标节点的资源下界包括目标节点及其所有子节点的最小资源需求:
放松资源计算单元,与所述资源分配单元连接,用于当所述资源分配单元为所述目标节点分配资源时利用所述目标节点的父节点的资源下界为所述目标节点的放松资源;
所述资源下界采用以下表达式计算:N(u)=ru+MAX{N(v),N(v')};
其中,u为所述目标节点,v和v'分别是u在输入树阶段的左孩子和右孩子;N(u)为所述目标节点的资源下界,ru为所述目标节点自身所需资源;
若所述目标节点为根节点,其放松资源采用以下表达式计算:N'(u)=N(root);若所述目标节点不为根节点,其放松资源采用以下表达式计算:N'(u)=N(v)-rv;
其中,N'(u)为目标节点的放松资源,root为根节点;v是目标节点输出树阶段的父节点,N(v)为目标节点输出树阶段的父节点的资源下界,rv为目标节点的输出树阶段的父节点自身所需资源。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811546982.9A CN109815021B (zh) | 2018-12-18 | 2018-12-18 | 针对递归树建模程序的资源关键树方法及系统 |
PCT/CN2019/123333 WO2020125427A1 (zh) | 2018-12-18 | 2019-12-05 | 针对递归树建模程序的资源关键树算法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811546982.9A CN109815021B (zh) | 2018-12-18 | 2018-12-18 | 针对递归树建模程序的资源关键树方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815021A CN109815021A (zh) | 2019-05-28 |
CN109815021B true CN109815021B (zh) | 2021-03-23 |
Family
ID=66602113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811546982.9A Active CN109815021B (zh) | 2018-12-18 | 2018-12-18 | 针对递归树建模程序的资源关键树方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109815021B (zh) |
WO (1) | WO2020125427A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815021B (zh) * | 2018-12-18 | 2021-03-23 | 深圳先进技术研究院 | 针对递归树建模程序的资源关键树方法及系统 |
CN110347516B (zh) * | 2019-06-27 | 2023-03-24 | 河北科技大学 | 一种面向细粒度读写锁的软件自动重构方法及装置 |
CN113360290B (zh) * | 2020-03-04 | 2023-02-03 | 华为技术有限公司 | 死锁检测方法和装置 |
CN112486598A (zh) * | 2020-10-28 | 2021-03-12 | 武汉中科通达高新技术股份有限公司 | 一种使用管道技术处理图片的方法、系统及电子装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US7703102B1 (en) * | 1999-08-23 | 2010-04-20 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on preemptable resource requirements |
US8091088B2 (en) * | 2005-02-22 | 2012-01-03 | Microsoft Corporation | Method and system for hierarchical resource management involving hard and soft resource limits |
CN101394656B (zh) * | 2007-09-21 | 2013-10-09 | 电信科学技术研究院 | 一种共享信道的资源分配方法及装置 |
CN103473137B (zh) * | 2013-09-16 | 2017-04-12 | 东软集团股份有限公司 | 避免死锁的资源分配方法及系统 |
US9417918B2 (en) * | 2013-11-20 | 2016-08-16 | International Business Machines Corporation | Computing session workload scheduling and management of parent-child tasks |
CN105072049B (zh) * | 2015-08-31 | 2018-06-12 | 北京理工大学 | 面向数据中心多层次弹性应用的资源分配方法及装置 |
CN106528287B (zh) * | 2015-09-09 | 2019-10-29 | 阿里巴巴集团控股有限公司 | 计算机系统资源分配方法和装置 |
CN109815021B (zh) * | 2018-12-18 | 2021-03-23 | 深圳先进技术研究院 | 针对递归树建模程序的资源关键树方法及系统 |
-
2018
- 2018-12-18 CN CN201811546982.9A patent/CN109815021B/zh active Active
-
2019
- 2019-12-05 WO PCT/CN2019/123333 patent/WO2020125427A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN109815021A (zh) | 2019-05-28 |
WO2020125427A1 (zh) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815021B (zh) | 针对递归树建模程序的资源关键树方法及系统 | |
US9053067B2 (en) | Distributed data scalable adaptive map-reduce framework | |
US9367359B2 (en) | Optimized resource management for map/reduce computing | |
Yang et al. | Design adaptive task allocation scheduler to improve MapReduce performance in heterogeneous clouds | |
CN114741207A (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
CN107463442B (zh) | 一种星载多核SoC任务级负载均衡并行调度方法 | |
CN109918182A (zh) | 虚拟化技术下的多gpu任务调度方法 | |
CN112162854A (zh) | 一种cpu-gpu间计算任务调度方法、系统及介质 | |
Nguyen et al. | Deadlock detection for resource allocation in heterogeneous distributed platforms | |
CN104008012A (zh) | 一种基于虚拟机动态迁移的高性能MapReduce实现机制 | |
CN112948066A (zh) | 一种基于异构资源的Spark任务调度方法 | |
Sena et al. | Autonomic malleability in iterative mpi applications | |
Martínez del Amor et al. | Parallel simulation of probabilistic P systems on multicore platforms | |
Schor et al. | Adapnet: Adapting process networks in response to resource variations | |
US11561826B1 (en) | Scheduling processing of machine learning tasks on heterogeneous compute circuits | |
US10592473B2 (en) | Method for improving energy efficiency of map-reduce system and apparatus thereof | |
Nguyen et al. | Algorithmic approach to deadlock detection for resource allocation in heterogeneous platforms | |
US20140040907A1 (en) | Resource assignment in a hybrid system | |
Wang et al. | On optimal budget-driven scheduling algorithms for MapReduce jobs in the hetereogeneous cloud | |
Ghose et al. | A framework for OpenCL task scheduling on heterogeneous multicores | |
He et al. | Using minmax-memory claims to improve in-memory workflow computations in the cloud | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
CN112463397B (zh) | lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 | |
Beaumont et al. | Analysis of dynamic scheduling strategies for matrix multiplication on heterogeneous platforms | |
Li et al. | Reliability evaluation for cloud computing system considering common cause failure |
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 |