CN105320565B - 一种针对多种应用软件的计算机资源调度方法 - Google Patents
一种针对多种应用软件的计算机资源调度方法 Download PDFInfo
- Publication number
- CN105320565B CN105320565B CN201410373241.0A CN201410373241A CN105320565B CN 105320565 B CN105320565 B CN 105320565B CN 201410373241 A CN201410373241 A CN 201410373241A CN 105320565 B CN105320565 B CN 105320565B
- Authority
- CN
- China
- Prior art keywords
- application software
- computing resource
- computing
- resource
- transferred
- 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
Abstract
本发明提供了一种针对多种应用软件的计算机资源调度方法,属于计算机领域。该方法包括:(1)按每种应用软件对计算资源的使用需求进行评估,然后将总的计算资源按应用软件的个数划分成若干个大小不等的计算资源池,分别分配给每个应用软件;(2)在应用软件使用过程中,对各种应用软件计算资源的负载量进行监控,当某种应用软件出现所分配的计算资源不够用而其他应用软件有空闲的计算资源时,动态地将其他应用软件当前空闲的计算资源切换给计算资源不够用的应用软件去使用,并在作业结束后将这些计算资源归还给原有的应用软件。
Description
技术领域
本发明属于计算机领域,具体涉及一种针对多种应用软件的计算机资源调度方法,用于安装有多种地震资料处理应用软件的石油地球物理勘探地震资料处理计算中心对计算资源使用的动态调度管理。
背景技术
目前在大的计算中心(或数据中心),在有多种应用软件使用的情况下,为提高计算资源的利用率和减少用户作业等待的时间,通常采用的方法是通过开源或定制的作业调度软件(或系统)将用户提交的作业放入作业等待队列,再根据一定的策略选取合适的作业分配到适合作业申请条件的计算资源上去运行。
在一般情况下,这种方式可以满足作业运行和资源有效利用的需求。但是,当一个数据中心拥有多种不同类型的应用软件,尤其是在有自己研发的也有购置的商业应用软件,而且这些应用软件中的一些本身带有定制的作业调度系统的时候,要想进行所有应用软件作业的统一调度,就需要定制开发一套新的作业调度系统,但定制开发一套新的调度系统需要解决以下两个主要问题:
1.改变用户提交作业的习惯;
2.将有作业调度系统的应用软件的源代码进行修改。
尤其是第2点对不提供源代码的商业应用软件几乎是不可能的。
在没有统一的作业调度系统对所有应用软件的作业进行统一调度的情况下,为保证各种应用软件作业能够得到相应的计算资源进行运算,同时避免各应用软件对计算资源的竞争,大部分计算中心采用的方法是为每种应用软件按软件使用的需求分时段由人工固定地分配一定数量的计算资源来使用,这种方法的弊端是会导致有些软件分配的计算资源不够用,而另外一些软件分配的计算资源却处于闲置状态,降低了计算资源的应用效率。
因此,需要一种对计算资源进行动态调度的技术来解决在有多种应用软件,且每种应用软件都有自己的作业调度系统的情况下,人工对不同的应用软件进行计算资源分配带来的有些应用软件计算资源不够用,而其他应用软件的计算资源却处于闲置的状态的弊端,从而提升整体计算资源的利用率。
发明内容
本发明的目的在于解决上述现有技术对作业进行调度而存在的问题,提供一种针对多种应用软件的对计算机资源进行调度的方法,对多种不同应用软件所分配的计算资源进行动态调配,克服各应用软件因拥有自带的作业调度系统而不得不人工为不同应用软件分配计算资源从而导致有些应用软件所分配的计算资源不够用,而其他一些应用软件所分配的计算资源却处于闲置状态的缺点。
本发明是通过以下技术方案实现的:
一种针对多种应用软件的计算机资源调度方法,包括:
(1)按每种应用软件对计算资源的使用需求进行评估,然后将总的计算资源按应用软件的个数划分成若干个大小不等的计算资源池,分别分配给每个应用软件;
(2)在应用软件使用过程中,对各种应用软件计算资源的负载量进行监控,当某种应用软件出现所分配的计算资源不够用而其他应用软件有空闲的计算资源时,动态地将其他应用软件当前空闲的计算资源切换给计算资源不够用的应用软件去使用,并在作业结束后将这些计算资源归还给原有的应用软件。
所述步骤(2)包括:
S0.定时监控各应用软件的作业队列,定时监控各计算资源使用情况;
S1.判断是否有应用软件出现作业等待;如果是,则转入S2,如果否,则返回S0;
S2.判断其它应用软件是否有空闲的计算资源,且空闲的计算资源数大于或等于等待运行的作业所需的计算资源数;如果是,则转入S3,如果否,则转入S4;
S3.将有空闲计算资源的应用软件的空闲计算资源调配给出现作业等待的应用软件使用,然后转入S7;
S4.判断若干个有空闲计算资源的应用软件所空闲的计算资源总数是否大于或等于等待运行的作业所需的计算资源数;如果是,则转入S5,如果否,则转入S6:
S5.将该若干个有空闲计算资源的应用软件所空闲的计算资源按等待运行的作业所需的计算资源数将空闲的计算资源调配给出现作业等待的应用软件去使用,然后转入S7;
S6.将所有空闲计算资源调配给出现作业等待的应用软件去使用,剩余的作业等待本应用软件其他作业运行完成后或别的应用软件空出计算资源后再被调度,然后转入S7;
S7.判断作业是否结束,如果是,则将借用的计算资源归还给原有的应用软件,然后返回S0,如果否,则返回S0。
与现有技术相比,本发明的有益效果是:本发明通过对多种应用软件所分配的计算资源进行动态的调度,它调度的是计算资源而不是作业,在有多种应用软件同时使用的时候提高了计算资源的利用率。
附图说明
图1是本发明计算资源动态调度的一个实施例;
图2是根据图1流程图对本发明计算资源动态调度更详细的示例之一。
具体实施方式
本发明公开了一种针对多种拥有自带作业调度系统的不同应用软件进行计算资源动态调度的方法,该方法首先按每种应用软件对计算资源的使用需求进行评估,然后将总的计算资源按应用软件的个数划分成若干个大小不等的计算资源池分别分配给每个应用软件,在应用软件使用过程中按本发明的方法设计的计算资源调度程序对各种应用软件计算资源的负载量进行定时监控,当某种应用软件出现作业等待现象(所分配的计算资源不够用)而其他应用软件有空闲的计算资源时,动态地将其他应用软件当前空闲的计算资源切换给出现计算资源紧张的应用软件去使用,并在作业结束后将这些资源归还给原有的应用软件,从而达到计算资源的动态调配功能,最终实现整体计算资源利用率的最大化。
具体来说,本发明在实施过程中,根据每种应用软件所使用计算资源的情况,在有软件所分配的计算资源不够用(作业出现等待)的时候,动态的将其他软件的空闲计算资源调配给出现计算资源紧张的软件使用,从而达到计算资源动态调度和提高计算资源的利用率的目的。
本发明对计算资源动态调度的方法是在尽量不改变每种软件用户发送作业习惯的前提下,对每种软件所分配的计算资源进行调度。调度的方法是,首先按每种应用软件对计算资源的使用需求进行评估,然后将总的计算资源划分成若干个计算资源池分配给不同的应用软件,在应用软件使用过程中对各种应用软件的作业排队情况和计算资源的负载量进行监控,当某种应用软件计算资源出现作业等待现象(所分配的计算资源不够用)而其他应用软件有空闲的计算资源时,动态的将其他应用软件当前空闲的计算资源切换给出现计算资源紧张的应用软件去使用,从而达到计算资源的调配功能,最终实现整体计算资源利用率的最大化。
本发明进行计算资源调度的步骤是:
S0.定时监控各应用软件的作业队列,定时监控各计算资源使用情况;
S1.判断是否有应用软件出现作业等待;如果是,则转入S2,如果否,则返回S0;
S2.判断其它应用软件是否有空闲的计算资源,且空闲的计算资源数大于或等于等待运行的作业所需的计算资源数;如果是,则转入S3,如果否,则转入S4;
S3.将有空闲计算资源的应用软件的空闲计算资源调配给出现作业等待的应用软件使用,然后转入S7;
S4.判断若干个有空闲计算资源的应用软件所空闲的计算资源总数是否大于或等于出现作业等待的应用软件的等待计算资源的作业数;如果是,则转入S5,如果否,则转入S6:
S5.将该若干个有空闲计算资源的应用软件所空闲的计算资源按等待作业所需的计算资源数将空闲的计算资源调配给出现作业等待的应用软件去使用,然后转入S7;
S6.将所有空闲计算资源调配给有作业等待的应用软件去使用,剩余的作业等待本应用软件其他作业运行完成后或别的应用软件空出计算资源后再被调度,然后转入S7;
S7.判断作业是否结束,如果是,则将借用的计算资源归还给原有的应用软件,如果否,则返回S0。
由于本发明涉及的是针对不同应用软件所分配的计算资源间的调度,因此在下面的说明中将不对各应用软件的作业调度系统的调度策略和方式再做详细论述。同时,为方便说明,只举3个应用(应用A101、应用B201和应用N301)作为示例,对其他应用软件计算资源的调度可参照下面的示例。
下面结合附图对本发明具体实施方式作进一步详细描述。
图1示出了本发明对计算资源进行动态调度的流程。开始100,在每种应用软件根据应用需求分配了一定数量的计算资源后,计算资源调度程序定时的监控各应用软件作业调度系统的作业队列和所分配的计算资源的使用情况102;在发现有应用软件所分配的计算资源不够用而出现作业等待时103,计算资源调度程序同时查看其他应用软件是否有空闲的计算资源104;如果有,则将空闲的计算资源临时调配给出现作业等待的应用软件使用105,如果没有,则继续监控;在被借用计算资源上运行的作业结束后,计算资源调度程序将借用的计算资源归还给原有应用软件,以保证原有应用软件优先使用这些资源;至此,完成一次计算资源的动态调配过程。
图2示出的是根据图1对有3种应用软件同时运行时,计算资源调度程序进行计算资源动态调度的更详细的实施例。这3种应用软件(应用A101、应用B201至应用N301)的每一种都带有自己的作业调度系统(A作业调度系统100、B作业调度系统200至N作业调度系统300)。为了让这3种应用软件都能够得到计算资源使用,一开始为每种应用软件按使用情况预估所需的计算资源,并人工的将总的计算资源划分成若干个小的计算资源池分别分配给每种应用软件使用(含有m个计算资源的计算资源池A001分配给应用A101、含有n个计算资源的计算资源池B002分配给应用B201、含有o个计算资源的计算资源池N003分配给应用N301)。
在计算资源划分后,应用A101、应用B201及应用N301即可开始提交作业。为方便对本发明的说明及理解,假设某一时刻:
1.应用A101提交了i个作业:Ajob(1)103、Ajob(2)104至Ajob(i)105,并且i小于分配给它的计算资源池A001中的计算资源个数m。
2.应用B201提交了j个作业:Bjob(1)203、Bjob(2)204至Bjob(j)206,并且j大于计算资源池B002中的计算资源个数n。
3.应用N301提交了k个作业:Njob(1)303、Njob(2)304至Njob(k)305,并且k小于计算资源池N003中的计算资源个数o。
根据上面的假设,由于应用A101和应用N301所提交的作业少于所分配给他们的计算资源数量,因此A作业调度系统100根据自身的调度策略将A应用作业队列102中的i个作业Ajob(1)103、Ajob(2)104至Ajob(i)105发送给计算资源池A001中的计算资源A(1)106、A(2)107至A(i)108进行计算;N作业调度系统300根据自身的调度策略将N应用作业队列302中的作业Njob(1)303、Njob(2)304至Njob(k)305发送给计算资源池N003中的计算资源N(1)306、N(2)307至N(k)308进行计算。由于应用B201所提交的作业个数j大于所分配给该应用的计算资源个数n,因此B作业调度系统200根据自身的调度策略仅能将B应用作业队列202中的n个作业Bjob(1)203、Bjob(2)204至Bjob(n)205发送给计算资源池B002中的计算资源B(1)207、B(2)208至B(n)209进行计算;剩余的(j-n个)作业由于没有空闲的计算资源而处于等待状态。
在上述各种应用对作业的提交与调度的过程中,计算资源调度程序010定期监控各应用软件作业调度系统作业队列011和应用所分配的计算资源池012。在监控到应用B201有(j-n)个作业处于等待状态,而计算资源池A001有(m-i)个计算资源空闲、计算资源池N003有(o-k)个计算资源空闲时;计算资源调度程序010开始进行计算资源的调度,此时根据各应用软件剩余空闲资源的多少有多种计算资源调度方案,下面对4种典型方案进行了描述,图2示出的是下面4种方案中的第3种方案,其他方案可参照图2的示例。
1.若[(m-i)≥(j-n)],表明计算资源池A001有足够的计算资源给应用B201处于等待的作业使用;计算资源调度程序将计算资源池A001中的计算资源A(i+1)至A(i+j-n)调配给应用B201使用。计算资源池B002的计算资源数量将临时增加到j个,计算资源池A001的计算资源将临时减少至(m-j+n)个110。此时,B作业调度系统200可根据自己的调度策略将Bjob(n+1)至Bjob(j)206的作业调度到A(i+1)210至A(i+j-n)211的计算资源上去运行。
在作业Bjob(n+1)至Bjob(j)运行完成后,应用B201所借用的计算资源将由计算资源调度程序010归还给应用A101的计算资源池A001,以保证这些借用的计算资源优先归应用A101使用。
2.若[(m-i)<(j-n)]而[(o-k)≥(j-n)],表明计算资源池N003有足够的计算资源给应用B201处于等待的作业使用;计算资源调度程序将以方案1类似的方法将计算资源池N003中的计算资源调配给应用B201使用,并在作业结束后将借用的计算资源归还给应用N301。
3.若(m-i)<(j-n)或(o-k)<(j-n),且(m-i)+(o-k)≥(j-n),此时按顺序将计算资源池A001的剩余计算资源A(i+1)109至A(m)110和计算资源池N003中的计算资源N(k+1)309至计算资源N(p-k)310(其中,(m-i)+(p-k)=(j-n))调配给应用B201使用。计算资源池B002的计算资源数量将临时增加到j个;计算资源池A001的计算资源将临时减少至i个;计算资源池N003的计算资源将临时减少至(o-p+k)个。此时,B作业调度系统200可根据自己的调度策略将Bjob(n+1)至Bjob(j)206的作业调度到由计算资源调度程序010临时调配来的计算资源A(i+1)209至A(m)210和N(k+1)211至N(p-k)212的计算资源上去运行。在Bjob(n+1)至Bjob(j)运行完成后,应用B201所借用的计算资源将由计算资源调度程序010归还给应用A101的计算资源池A001和应用N301的计算资源池N003,以保证应用A101和应用N301优先使用这些计算资源。
4.若[(m-i)+(o-k)<(j-n)],表明计算资源池A001和计算资源池N003剩余的计算资源仍然少于应用B201在B应用作业队列202中等待的作业数,因此在将计算资源池A001和计算资源池N003剩余的计算资源都调配给应用B201使用后,应用B201还会有作业没有资源使用而处于等待状态。这些作业需要等待应用B201的作业运行完成或其他应用的作业运行完成释放出计算资源后,再由B作业调度系统200进行作业调度或由计算资源调度程序010进行计算资源调配。
上述4种对计算资源调度的技术方案只是本发明的4种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
Claims (2)
1.一种针对多种应用软件的计算机资源调度方法,其特征在于:所述方法包括:
(1)按每种应用软件对计算资源的使用需求进行评估,然后将总的计算资源按应用软件的个数划分成若干个大小不等的计算资源池,分别分配给每个应用软件;
(2)在应用软件使用过程中,对各种应用软件计算资源的负载量进行监控,当某种应用软件出现所分配的计算资源不够用而其他应用软件有空闲的计算资源时,动态地将其他应用软件当前空闲的计算资源切换给计算资源不够用的应用软件去使用,并在作业结束后将这些计算资源归还给原有的应用软件。
2.根据权利要求1所述的针对多种应用软件的计算机资源调度方法,其特征在于:所述步骤(2)包括:
S0.定时监控各应用软件的作业队列,定时监控各计算资源使用情况;
S1.判断是否有应用软件出现作业等待;如果是,则转入S2,如果否,则返回S0;
S2.判断其它应用软件是否有空闲的计算资源,且空闲的计算资源数大于或等于等待运行的作业所需的计算资源数;如果是,则转入S3,如果否,则转入S4;
S3.将有空闲计算资源的应用软件的空闲计算资源调配给出现作业等待的应用软件使用,然后转入S7;
S4.判断若干个有空闲计算资源的应用软件所空闲的计算资源总数是否大于或等于等待运行的作业所需的计算资源数;如果是,则转入S5,如果否,则转入S6:
S5.将该若干个有空闲计算资源的应用软件所空闲的计算资源按等待运行的作业所需的计算资源数调配给出现作业等待的应用软件去使用,然后转入S7;
S6.将所有空闲计算资源调配给出现作业等待的应用软件去使用,剩余的作业等待本应用软件其他作业运行完成后或别的应用软件空出计算资源后再被调度,然后转入S7;
S7.判断作业是否结束,如果是,则将借用的计算资源归还给原有的应用软件,然后返回S0,如果否,则返回S0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410373241.0A CN105320565B (zh) | 2014-07-31 | 2014-07-31 | 一种针对多种应用软件的计算机资源调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410373241.0A CN105320565B (zh) | 2014-07-31 | 2014-07-31 | 一种针对多种应用软件的计算机资源调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105320565A CN105320565A (zh) | 2016-02-10 |
CN105320565B true CN105320565B (zh) | 2018-11-20 |
Family
ID=55247989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410373241.0A Active CN105320565B (zh) | 2014-07-31 | 2014-07-31 | 一种针对多种应用软件的计算机资源调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105320565B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239865B (zh) * | 2016-03-28 | 2020-12-22 | 创新先进技术有限公司 | 一种互联网信息资源的调度方法、装置与系统 |
CN113315719A (zh) * | 2020-02-27 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 流量调度方法、设备、系统及存储介质 |
CN113703952B (zh) * | 2020-05-20 | 2023-10-10 | 山东省计算中心(国家超级计算济南中心) | 一种基于超级计算机的队列资源调度的资源分配方法 |
CN113204426A (zh) * | 2021-04-28 | 2021-08-03 | 北京京东乾石科技有限公司 | 资源池的任务处理方法及相关设备 |
CN113448726B (zh) * | 2021-05-28 | 2022-11-04 | 山东英信计算机技术有限公司 | 一种资源调度方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426542A (zh) * | 2011-10-28 | 2012-04-25 | 中国科学院计算技术研究所 | 数据中心资源管理系统及作业调度方法 |
CN102981910A (zh) * | 2012-11-02 | 2013-03-20 | 曙光云计算技术有限公司 | 虚拟机调度的实现方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464265B2 (en) * | 2006-04-03 | 2013-06-11 | Secure64 Software | Method and system for reallocating computational resources using resource reallocation enabling information |
-
2014
- 2014-07-31 CN CN201410373241.0A patent/CN105320565B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426542A (zh) * | 2011-10-28 | 2012-04-25 | 中国科学院计算技术研究所 | 数据中心资源管理系统及作业调度方法 |
CN102981910A (zh) * | 2012-11-02 | 2013-03-20 | 曙光云计算技术有限公司 | 虚拟机调度的实现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105320565A (zh) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320565B (zh) | 一种针对多种应用软件的计算机资源调度方法 | |
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN110471766B (zh) | 一种基于cuda的gpu资源调度系统和方法 | |
CN103309946B (zh) | 多媒体文件处理方法、装置及系统 | |
CN104598426B (zh) | 用于异构多核处理器系统的任务调度方法 | |
CN109788315A (zh) | 视频转码方法、装置及系统 | |
CN104915253B (zh) | 一种作业调度的方法及作业处理器 | |
CN103761146B (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN106326003B (zh) | 一种作业调度和计算资源分配方法 | |
CN102799467A (zh) | 一种任务分配的方法及系统 | |
CN104735095A (zh) | 一种云计算平台作业调度方法及装置 | |
CN109428912A (zh) | 一种分布式系统资源分配方法、装置及系统 | |
CN109542608A (zh) | 一种基于混合排队网络的云仿真任务调度方法 | |
CN110099083A (zh) | 一种用于服务器集群的负载均衡调度方法及装置 | |
CN106776025A (zh) | 一种计算机集群作业调度方法及其装置 | |
CN106095581B (zh) | 一种私有云条件下的网络存储虚拟化调度方法 | |
CN105677467A (zh) | 基于量化标签的Yarn资源调度器 | |
CN110543352A (zh) | 调度系统的任务分配方法及其相关的装置 | |
CN109684077A (zh) | 用于spark streaming的资源动态分配和反馈方法及装置 | |
CN116048721A (zh) | 一种gpu集群的任务分配方法、装置、电子设备和介质 | |
CN113391911B (zh) | 一种大数据资源动态调度方法、装置和设备 | |
CN104111876A (zh) | 一种基于Oracle资源计划的动态资源管理装置及方法 | |
CN102917014A (zh) | 资源调度方法及装置 | |
CN106549786A (zh) | 一种业务开通资源的配置方法及装置 | |
CN111107229B (zh) | 用于智能客服的外呼预测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |