CN108255593B - 基于共享资源的任务协调方法、装置、介质及电子设备 - Google Patents

基于共享资源的任务协调方法、装置、介质及电子设备 Download PDF

Info

Publication number
CN108255593B
CN108255593B CN201711401952.4A CN201711401952A CN108255593B CN 108255593 B CN108255593 B CN 108255593B CN 201711401952 A CN201711401952 A CN 201711401952A CN 108255593 B CN108255593 B CN 108255593B
Authority
CN
China
Prior art keywords
task
time matrix
maximum value
executed
matrix
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
Application number
CN201711401952.4A
Other languages
English (en)
Other versions
CN108255593A (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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN201711401952.4A priority Critical patent/CN108255593B/zh
Publication of CN108255593A publication Critical patent/CN108255593A/zh
Application granted granted Critical
Publication of CN108255593B publication Critical patent/CN108255593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/486Scheduler internals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开涉及一种基于共享资源的任务协调方法、装置、介质及电子设备。方法包括:获取任务执行时间矩阵;获取第一时间矩阵,将矩阵中的最大值作为第一最大值,确定第一最大值对应的目标任务为第一待执行任务;获取第二时间矩阵,若矩阵中存在非零元素,将矩阵中的最大值作为第二最大值,根据第二最大值确定第二待执行任务;若存在第二待执行任务,控制第一待执行任务和第二待执行任务并行执行,否则,控制第一待执行任务执行;在执行完成后,将任务执行时间矩阵中已执行完成的目标任务对应时间置零,返回上述获取第一时间矩阵的步骤,直到该矩阵中的元素全部为零为止。由此,可减少任务执行时间矩阵中各目标任务的整体等待时间,提高任务执行效率。

Description

基于共享资源的任务协调方法、装置、介质及电子设备
技术领域
本公开涉及资源共享领域,具体地,涉及一种基于共享资源的任务协调方法、装置、介质及电子设备。
背景技术
客户智能分析平台中的个性化推荐模块旨在为企业快速搭建精准的营销渠道,降低企业大数据分析学习成本,该个性化推荐模块通过前端监控技术,对用户行为进行记录并还原、描绘用户画像,以实现基于用户偏好的个性化推荐服务,例如,个性化着陆页,猜你喜欢等功能。很多企业会偏向于通过多重场景和模型的混合使用来增强寸土寸金的单个展示页的商业广告价值,以增加用户点击率,但多种场景多种模型的计算会涉及到后台数据的读写等待时间等问题。尤其是模型的混合计算,很多数据资源会被不同模型重复使用,这就存在一种共享资源抢占的问题。例如,某电商平台首页的商品展示可能会用到热门商品推荐和个性化商品推荐这两个场景,其中,热门商品推荐需要使用到热门商品模型、协同过滤模型、以及商品信息、评论信息、用户信息、购买信息等,个性化商品推荐需要使用到K最邻近结点(K-Nearest Neighbor,KNN)模型、协同过滤模型、以及商品信息、用户信息、购买信息等。在确定向用户推荐的目标商品时,热门商品模型和KNN模型均需要访问用户信息、商品信息、购买信息等,即用户信息、商品信息、购买信息属于热门商品模型和KNN模型的共享资源,二者必定存在共享资源抢占的问题。因此,如何合理安排各模型访问共享资源的时机,以尽可能缩短热门商品推荐和个性化商品推荐的处理时间,以使得商品展示页能够实时展现商品,一直是共享资源抢占领域需要攻克的技术难题。
发明内容
为了解决相关技术中存在的问题,本公开提供一种基于共享资源的任务协调方法、装置、介质及电子设备。
为了实现上述目的,本公开提供一种基于共享资源的任务协调方法,所述方法包括:
获取任务执行时间矩阵,所述任务执行时间矩阵中每个元素表示该元素所对应的任务执行主体对该元素所对应的共享资源执行目标任务时所花费的时间;
获取第一时间矩阵,将所述第一时间矩阵中的最大值作为第一最大值,并确定该第一最大值所对应的目标任务为第一待执行任务,其中,所述第一时间矩阵为所述任务执行时间矩阵或所述任务执行时间矩阵的子矩阵;
获取第二时间矩阵,其中,所述第二时间矩阵为从所述第一时间矩阵中删除所述第一最大值所在行和列后所得的矩阵;
若所述第二时间矩阵中存在非零元素,则将所述第二时间矩阵中的最大值作为第二最大值,根据该第二最大值确定第二待执行任务;
若存在所述第二待执行任务,则控制所述第一待执行任务和所述第二待执行任务并行执行,否则,控制所述第一待执行任务执行;
在执行完成后,将所述任务执行时间矩阵中已执行完成的目标任务所对应的时间置零,并返回所述获取第一时间矩阵,并将第一时间矩阵中的最大值作为第一最大值,确定该第一最大值所对应的目标任务为第一待执行任务的步骤,直到所述任务执行时间矩阵中的矩阵元素全部为零为止。
可选地,所述根据该第二最大值确定第二待执行任务,包括:
将该第二最大值在所述第二时间矩阵中所在行的非零元素中,累加值最接近于所述第一最大值的非零元素所对应的目标任务确定为所述第二待执行任务,其中,所述累加值小于或等于所述第一最大值。
可选地,所述累加值中至少包括所述第二最大值。
可选地,所述第一时间矩阵中的元素所对应的任务执行主体的最大数量与所述第一时间矩阵中的元素所对应的共享资源的总数相等。
可选地,所述第一时间矩阵是非零矩阵。
本公开还提供一种基于共享资源的任务协调装置,所述装置包括:
第一获取模块,用于获取任务执行时间矩阵,所述任务执行时间矩阵中每个元素表示该元素所对应的任务执行主体对该元素所对应的共享资源执行目标任务时所花费的时间;
第一确定模块,用于获取第一时间矩阵,将所述第一时间矩阵中的最大值作为第一最大值,并确定该第一最大值所对应的目标任务为第一待执行任务,其中,所述第一时间矩阵为所述任务执行时间矩阵或所述任务执行时间矩阵的子矩阵;
第二获取模块,用于获取第二时间矩阵,其中,所述第二时间矩阵为从所述第一确定模块获取到的所述第一时间矩阵中删除所述第一最大值所在行和列后所得的矩阵;
第二确定模块,用于若所述第二获取模块获取到的所述第二时间矩阵中存在非零元素,则将所述第二时间矩阵中的最大值作为第二最大值,根据该第二最大值确定第二待执行任务;
控制模块,用于若存在所述第二待执行任务,则控制所述第一待执行任务和所述第二待执行任务并行执行,否则,控制所述第一待执行任务执行;
矩阵更新模块,用于在执行完成后,将所述任务执行时间矩阵中已执行完成的目标任务所对应的时间置零,并触发所述第一确定模块重新获取第一时间矩阵,并将第一时间矩阵中的最大值作为第一最大值,确定该第一最大值所对应的目标任务为第一待执行任务,直到所述任务执行时间矩阵中的矩阵元素全部为零为止。
可选地,所述第二确定模块用于将该第二最大值在所述第二时间矩阵中所在行的非零元素中,累加值最接近于所述第一最大值的非零元素所对应的目标任务确定为所述第二待执行任务,其中,所述累加值小于或等于所述第一最大值。
可选地,所述累加值中至少包括所述第二最大值。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开提供的所述基于共享资源的任务协调方法的步骤。
本公开还提供一种电子设备,包括:
本公开提供的所述计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序
在上述技术方案中,通过任务执行时间矩阵来存储待执行的各目标任务,不但可以节省存储空间,而且能够提高数据存储效率,进而提升任务的执行效率。另外,将第一时间矩阵中花费时间最长的目标任务(即第一最大值所对应的目标任务)作为第一待执行任务,并根据从该第一时间矩阵中删除第一最大值所在行和列而获得的、存在非零元素的第二时间矩阵来确定能够与上述第一待执行任务并行执行的第二待执行任务,之后控制该第二待执行任务与上述第一待执行任务并行执行,这样,可以提升各目标任务并行执行的效率,以减少各目标任务的整体等待时间。最后,通过将任务执行时间矩阵中已执行完成的目标任务所对应的时间置零的方式来动态更新任务执行时间矩阵,更新速率快,进一步提升了任务执行的效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种基于共享资源的任务协调方法的流程图。
图2是根据一示例性实施例示出的一种任务执行时间矩阵的示意图。
图3是根据另一示例性实施例示出的一种任务执行时间矩阵的示意图。
图4是根据另一示例性实施例示出的一种任务执行时间矩阵的示意图。
图5是根据一示例性实施例示出的一种基于共享资源的任务协调装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的一种基于共享资源的任务协调方法的流程图。如图1所示,该方法可以包括以下步骤。
在步骤101中,获取任务执行时间矩阵。
在本公开中,该任务执行时间矩阵中每个元素表示该元素所对应的任务执行主体对该元素所对应的共享资源执行目标任务时所花费的时间。在一种实施方式中,该任务执行时间矩阵的各行可以分别对应不同的任务执行主体,例如,不同的客户端,不同的模型、不同业务等;该任务执行时间矩阵的各列可以分别对应不同的共享资源,例如,数据资源,设备资源(例如,打印机)等;这样,该任务执行时间矩阵中的每个元素可以表示该元素所在行对应的任务执行主体对该元素所在列对应的共享资源执行目标任务时所花费的时间,其中,执行目标任务时所花费的时间可以根据历史时段内执行该目标任务时所花费的历史时间值来确定,例如,执行目标任务时所花费的时间等于历史时段内执行该目标任务时所花费的历史时间值的均值。
示例地,如图2中所示,获取到的任务执行时间矩阵
Figure BDA0001516725680000061
的第一行对应的任务执行主体为热门商品模型、第二行对应的任务执行主体为KNN模型,该任务执行时间矩阵
Figure BDA0001516725680000062
的各列分别对应以下共享资源:商品信息、用户信息、购买信息,该任务执行时间矩阵中的元素0.86表示热门商品模型访问商品信息时所花费的时间,1.67表示KNN模型访问用户信息时所花费的时间。
在另一种实施方式中,该任务执行时间矩阵的各行可以分别对应不同的共享资源,例如,数据资源,设备资源(例如,打印机)等;该任务执行时间矩阵的各列可以分别对应不同的任务执行主体,例如,不同的客户端,不同的模型、不同业务等;这样,该任务执行时间矩阵中的每个元素表示该元素所在列对应的任务执行主体对该元素所在行对应的共享资源执行目标任务时所花费的时间。
在步骤102中,获取第一时间矩阵,将该第一时间矩阵中的最大值作为第一最大值,并确定该第一最大值所对应的目标任务为第一待执行任务。
在本公开中,该第一时间矩阵可以为上述任务执行时间矩阵。示例地,上述任务执行时间矩阵为
Figure BDA0001516725680000063
则该第一时间矩阵为
Figure BDA0001516725680000064
其中,该第一时间矩阵中的最大值为2,即第一最大值为2,此时,可以将该第一最大值2所对应的目标任务作为第一待执行任务,即,将KNN模型访问购买信息这一目标任务作为第一待执行任务。
另外,上述第一时间矩阵还可以为上述任务执行时间矩阵的子矩阵。在一种实施方式中,假设上述任务执行时间矩阵中的元素所对应的任务执行主体的数量为M个,该任务执行时间矩阵中的元素所对应的共享资源的总数为N个。由于在同一时刻,每个共享资源只能被一个任务执行主体占用,因此,当M>N时,在同一时刻,最多有N个任务执行主体能够分别获取到上述N个共享资源,即至少有M-N个任务执行主体因未能获取到共享资源而处于等待状态,直到有共享资源被释放时,上述至少M-N个处于等待状态的任务执行主体才有机会获取该被释放的共享资源。基于上述原理,当M>N时,即当任务执行主体的数量M大于共享资源的总数N时,为了减少计算量,可以将上述第一时间矩阵中的元素所对应的任务执行主体的最大数量与第一时间矩阵中的元素所对应的共享资源的总数相等,也就是说,第一时间矩阵中的元素所对应的任务执行主体的数量设定在[1,N]范围内,即第一时间矩阵中的元素所对应的任务执行主体的数量小于或等于第一时间矩阵中的元素所对应的共享资源的总数N(其中,第一时间矩阵中的元素所对应的共享资源的总数与上述任务执行时间矩阵中的元素所对应的共享资源的总数一致)。
在一种实施方式中,上述第一时间矩阵中的元素所对应的任务执行主体的数量与第一时间矩阵中的元素所对应的共享资源的总数相等,假设上述任务执行时间矩阵的大小为M×N,其中,该任务执行时间矩阵中的行数为M,即任务执行主体的数量为M个,该任务执行时间矩阵的列数为N,即,共享资源的总数为N个,这样,可以将该任务执行时间矩阵中的前N行作为第一时间矩阵。示例地,如图3所示,上述任务执行时间矩阵为
Figure BDA0001516725680000071
其中,该任务执行时间矩阵的第一行对应的任务执行主体为热门商品模型、第二行对应的任务执行主体为KNN模型、第三行对应的任务执行主体为第一模型、第四行对应的任务执行主体为第二模型,该任务执行时间矩阵的各列分别对应以下共享资源:商品信息、用户信息、购买信息;该任务执行时间矩阵中的元素0.86表示热门商品模型访问商品信息时所花费的时间,1.67表示KNN模型访问用户信息时所花费的时间,0.6表示第一模型访问购买信息时所花费的时间,1.5表示第二模型访问用户信息时所花费的时间。由于上述任务执行时间矩阵
Figure BDA0001516725680000081
的行数大于列数,即任务执行主体的数量大于共享资源的总数,因此,可以将上述任务执行时间矩阵中的前N行作为第一时间矩阵,即第一时间矩阵为
Figure BDA0001516725680000082
其中,该第一时间矩阵中的最大值为2,即第一最大值为2,此时,可以将该第一最大值2所对应的目标任务作为第一待执行任务,即,将KNN模型访问购买信息这一目标任务作为第一待执行任务。
为了提高任务执行时间矩阵中各目标任务的执行效率,可以并行执行该任务执行时间矩阵中的各目标任务。因此,在确定出第一待执行任务后,可以查找是否存在能够与第一待执行任务并行执行的一个或多个目标任务。具体来说,可以通过以下步骤103和步骤104来查找是否存在能够与第一待执行任务并行执行的一个或多个目标任务。
在步骤103中,获取第二时间矩阵。
在本公开中,该第二时间矩阵为从上述第一时间矩阵中删除第一最大值所在行和列后所得的矩阵。具体来说,在确定出第一待执行任务后,可以将该第一时间矩阵中第一最大值所在的行和列删除,并将删除第一时间矩阵中的第一最大值所在的行和列后所得的矩阵作为第二时间矩阵。
示例地,第一时间矩阵为
Figure BDA0001516725680000083
其中,该第一时间矩阵中的第一最大值2位于该第一时间矩阵的第二行第三列,将该第一时间矩阵的第二行和第三列删除后的所得的矩阵为(0.86 0.59),即第二时间矩阵为(0.86 0.59)。
又示例地,第一时间矩阵为
Figure BDA0001516725680000091
其中,该第一时间矩阵中的第一最大值2位于该第一时间矩阵的第二行第三列,将该第一时间矩阵的第二行和第三列删除后的所得的矩阵为
Figure BDA0001516725680000092
即第二时间矩阵为
Figure BDA0001516725680000093
在步骤104中,判断第二时间矩阵中是否存在非零元素。
在获取到第二时间矩阵后,可以先判断该第二时间矩阵中是否存在非零元素。当确定该第二时间矩阵中存在非零元素时,表明该第二时间矩阵中存在尚未执行的目标任务,此时,可以执行以下步骤105和步骤106;当确定该第二时间矩阵中不存在非零元素时,即第二时间矩阵中的各元素均为零,表明该第二时间矩阵中不存在尚未执行的目标任务,此时,可以执行以下步骤107。
在步骤105中,将第二时间矩阵中的最大值作为第二最大值,根据该第二最大值确定第二待执行任务。
在本公开中,该第二待执行任务可以是第二时间矩阵中、能够与上述步骤102中确定出的第一待执行任务并行执行的一个或多个目标任务,其中,执行该一个或多个目标任务所花费时间的总和应小于或等于执行上述第一待执行任务所花费的时间。具体来说,当第二时间矩阵中存在非零元素时,可以将该第二时间矩阵中的最大值确定为第二最大值,并在确定出该第二最大值后,可以根据该第二最大值来确定第二待执行任务。在一种实施方式中,可以将该第二最大值在第二时间矩阵中所在行的非零元素中,累加值最接近于第一最大值的非零元素所对应的目标任务确定为第二待执行任务,并且,该累加值小于或等于上述第一最大值。
示例地,任务执行时间矩阵如图2中所示,其中,第一最大值为2,第二时间矩阵为(0.86 0.59),可知,该第二时间矩阵中的最大值为0.86,即第二最大值为0.86,这样,该第二最大值0.86所在行的非零值包括0.86和0.59这两个元素,累加值小于或等于第一最大值2的有:0.86、0.59和0.86+0.59=1.45,其中,累加值0.86+0.59=1.45最接近第一最大值2,因此,可以将0.86和0.59所对应的目标任务确定为第二待执行任务,即,将热门商品模型访问商品信息和访问用户信息这两个目标任务作为第二待执行任务。
又示例地,任务执行时间矩阵如图3中所示,其中,第一最大值为2,第二时间矩阵为
Figure BDA0001516725680000101
可知,该第二时间矩阵中的最大值为1.23,即第二最大值为1.23,这样,该第二最大值1.23所在行的非零值包括1.23和1.02这两个元素,累加值小于或等于第一最大值2的有:1.23和1.02,其中,累加值1.23最接近第一最大值2,因此,可以将1.23所对应的目标任务确定为第二待执行任务,即,将第一模型访问商品信息这一目标任务作为第二待执行任务。
又示例地,如图4所示,任务执行时间矩阵为
Figure BDA0001516725680000102
第一时间矩阵为该任务执行时间矩阵
Figure BDA0001516725680000111
其中,第一最大值为2,第二时间矩阵为
Figure BDA0001516725680000112
可知,该第二时间矩阵中的最大值为1.42,即第二最大值为1.42,这样,该第二最大值1.42所在行的非零值包括0.86、0.59和1.42这三个元素,其中,累加值小于或等于第一最大值2的有:0.86+0.59=1.45、1.42、0.86、0.59,其中,小于或等于第一最大值2的累加中,最接近于第一最大值2的为0.86+0.59=1.45,这样,可以将0.86和0.59所对应的目标任务确定为第二待执行任务,即,将热门商品模型访问商品信息和访问用户信息这两个目标任务作为第二待执行任务。
另外,当第二待执行任务中包含多个目标任务时,执行完其中一个任务时,需要切换第二待执行任务中的另一个未执行的目标任务,并且可能切换多次,因此,为了避免频繁切换任务,上述累加值中至少可以包括第二最大值。
下面仍以上述的任务执行时间矩阵
Figure BDA0001516725680000113
第二时间矩阵
Figure BDA0001516725680000114
为例来具体说明:第二最大值1.42所在行的非零值包括0.86、0.59和1.42这三个元素,其中,累加值小于或等于第一最大值2的有:0.86+0.59=1.45、1.42、0.86、0.59,其中,累加值小于或等于第一最大值2、且至少包括第二最大值1.42的有:1.42,这样,可以将1.42所对应的目标任务确定为第二待执行任务,即,将热门商品模型访问第二信息这一目标任务作为第二待执行任务。
在步骤106中,控制第一待执行任务和第二待执行任务并行执行。
在确定出第二待执行任务后,可以控制第一待执行任务和第二待执行任务并行执行。
示例地,如图2所示,任务执行时间矩阵为
Figure BDA0001516725680000121
第一时间矩阵为
Figure BDA0001516725680000122
第二时间矩阵为(0.86 0.59),其中,上述步骤102中确定出的第一待执行任务为KNN模型访问购买信息,上述步骤105中确定出的第二待执行任务包括热门商品模型访问商品信息和访问用户信息这两个目标任务,此时,可以控制KNN模型访问购买信息与热门商品模型访问商品信息、访问用户信息并行执行。例如,可以先控制KNN模型访问购买信息和热门商品模型访问商品信息,并在上述热门商品模型访问商品信息这一目标任务执行完毕后,再控制该热门商品模型访问用户信息。或者,可以先控制KNN模型访问购买信息和热门商品模型访问用户信息,并在上述热门商品模型访问用户信息这一目标任务执行完毕后,再控制该热门商品模型访问商品信息。
另外,为了进一步避免频繁切换任务,可以在第二待执行任务中包含多个目标任务时,将该多个目标任务合并为一个任务,并作为第二待执行任务。之后,再控制第一待执行任务和第二待执行任务并行执行。示例地,上述步骤102中确定出的第一待执行任务为KNN模型访问购买信息,上述步骤105中确定出的第二待执行任务包括热门商品模型访问商品信息和访问用户信息这两个目标任务,由于该第二待执行任务中包含两个目标任务,因此,可以先将热门商品模型访问商品信息和访问用户信息这两个目标任务合并,并作为第二待执行任务,之后,再控制第一待执行任务和第二待执行任务并行执行。
返回图1,在步骤107中,控制第一待执行任务执行。
当确定第二时间矩阵中不存在非零元素时,可以确定不存在能够与该第一待执行任务并行执行的第二待执行任务,此时,可以控制第一待执行任务执行。
在步骤108中,在执行完成后,将任务执行时间矩阵中已执行完成的目标任务所对应的时间置零。
在上述第一待执行任务和第二待执行任务执行完成后,或者,当不存在第二待执行任务时,第一待执行任务执行完成后,可以将上述任务执行时间矩阵中已执行完成的目标任务所对应的时间置零。
示例地,在上述控制KNN模型访问购买信息与热门商品模型访问商品信息、访问用户信息并行执行完成后,可以将KNN模型访问购买信息、热门商品模型访问商品信息、热门商品模型访问用户信息对应的时间置零,以更新上述任务执行时间矩阵,更新后的任务执行时间矩阵为
Figure BDA0001516725680000131
在步骤109中,判断任务执行时间矩阵中的矩阵元素是否全部为零。
在完成上述任务执行时间矩阵的更新后,可以判断该任务执行时间矩阵中的元素是否全部为零,并在判定该任务执行时间矩阵中的元素不全部为零时,表明该任务执行时间矩阵中仍有尚未执行的目标任务,此时,可以返回上述步骤102,即,返回获取第一时间矩阵,将该第一时间矩阵中的最大值作为第一最大值,并确定该第一最大值所对应的目标任务为第一待执行任务步骤继续执行,直到该任务执行时间矩阵中的矩阵元素全部为零为止。
示例地,上述更新后的任务执行时间矩阵为
Figure BDA0001516725680000132
可以判断该任务执行时间矩阵中的元素不全部为零,此时,可以返回上述步骤102,即重新获取第一时间矩阵,获取到的第一时间矩阵为
Figure BDA0001516725680000141
将该第一时间矩阵中的最大值1.67作为第一最大值,并确定该第一最大值1.67所对应的目标任务为第一待执行任务,即将KNN模型访问用户信息这一目标任务作为第一待执行任务。
接下来,可以将该第一时间矩阵
Figure BDA0001516725680000142
中最大值1.67所在的行和列删除以得到第二时间矩阵(0 1),此时,可以判断该第二时间矩阵中存在非零元素,这样,可以将该第二时间矩阵(0 1)中的最大值1作为第二最大值,并可以将该第二最大值1在第二时间矩阵中(0 1)所在行的非零元素中,累加值最接近于第一最大值1.67的非零元素所对应的目标任务确定为第二待执行任务,并且,该累加值小于或等于上述第一最大值,即可以将第二最大值1所对应的目标任务确定为第二待执行任务,即,将热门商品模型访问购买信息这一目标任务作为第二待执行任务。之后,可以控制KNN模型访问用户信息、热门商品模型访问购买信息并行执行。并在它们执行完成后,将KNN模型访问用户信息、热门商品模型访问购买信息对应的时间置零,以更新上述任务执行时间矩阵,更新后的任务执行时间矩阵为
Figure BDA0001516725680000143
然后,可以判定该任务执行时间矩阵中的矩阵元素是否全部为零,可见,该任务执行时间矩阵
Figure BDA0001516725680000144
中仍存在不为零的矩阵元素,此时,再次返回上述步骤102,即重新获取第一时间矩阵,获取到的第一时间矩阵为
Figure BDA0001516725680000145
将该第一时间矩阵中的最大值0.32作为第一最大值,并确定该第一最大值0.32所对应的目标任务为第一待执行任务,即将KNN模型访问商品信息这一目标任务作为第一待执行任务。此时,可以该第一时间矩阵
Figure BDA0001516725680000151
中最大值0.32所在的行和列删除以得到第二时间矩阵(0 0),之后,可以判定该第二时间矩阵(0 0)中不存在非零元素,即,第二时间矩阵中的不存在尚未执行的目标任务,也就是说,不存在第二待执行任务,此时,可以执行上述步骤107,即控制KNN模型访问商品信息,并在该任务执行完成后,将KNN模型访问商品信息对应的时间置零,以更新上述任务执行时间矩阵,更新后的任务执行时间矩阵为
Figure BDA0001516725680000152
此时,可以确定该任务执行时间矩阵中的矩阵元素全部为零,表明上述任务执行时间矩阵
Figure BDA0001516725680000153
中的不存在尚未执行的目标任务,此时,可以结束。
在上述技术方案中,通过任务执行时间矩阵来存储待执行的各目标任务,不但可以节省存储空间,而且能够提高数据存储效率,进而提升任务的执行效率。另外,将第一时间矩阵中花费时间最长的目标任务(即第一最大值所对应的目标任务)作为第一待执行任务,并根据从该第一时间矩阵中删除第一最大值所在行和列而获得的、存在非零元素的第二时间矩阵来确定能够与上述第一待执行任务并行执行的第二待执行任务,之后控制该第二待执行任务与上述第一待执行任务并行执行,这样,可以提升各目标任务并行执行的效率,以减少各目标任务的整体等待时间。最后,通过将任务执行时间矩阵中已执行完成的目标任务所对应的时间置零的方式来动态更新任务执行时间矩阵,更新速率快,进一步提升了任务执行的效率。
另外,当上述第一时间矩阵为零矩阵时,仍需要执行上述步骤101~步骤109,但该过程中并未执行上述任务执行时间矩阵中的任何目标任务,但浪费了不少时间,因此,为了避免上述时间的浪费、提升各任务的执行效率,上述第一时间矩阵可以为非零矩阵。
另外,虽然在本公开中以各行分别对应不同的任务执行主体、各列分别对应不同的共享资源的任务执行时间矩阵为例进行说明,但是本公开提供的上述方法不局限于此,也可以适用于各列分别对应不同的任务执行主体、各行分别对应不同的共享资源的任务执行时间矩阵。
图5是根据一示例性实施例示出的一种基于共享资源的任务协调装置。参照图5,该装置500可以包括:第一获取模块501,用于获取任务执行时间矩阵,所述任务执行时间矩阵中每个元素表示该元素所对应的任务执行主体对该元素所对应的共享资源执行目标任务时所花费的时间;第一确定模块502,用于获取第一时间矩阵,将所述第一时间矩阵中的最大值作为第一最大值,并确定该第一最大值所对应的目标任务为第一待执行任务,其中,所述第一时间矩阵为所述任务执行时间矩阵或所述任务执行时间矩阵的子矩阵;第二获取模块503,用于获取第二时间矩阵,其中,所述第二时间矩阵为从所述第一确定模块502获取到的所述第一时间矩阵中删除所述第一最大值所在行和列后所得的矩阵;第二确定模块504,用于若所述第二获取模块503获取到的所述第二时间矩阵中存在非零元素,则将所述第二时间矩阵中的最大值作为第二最大值,根据该第二最大值确定第二待执行任务;控制模块505,用于若存在所述第二待执行任务,则控制所述第一待执行任务和所述第二待执行任务并行执行,否则,控制所述第一待执行任务执行;矩阵更新模块506,用于在执行完成后,将所述任务执行时间矩阵中已执行完成的目标任务所对应的时间置零,并触发所述第一确定模块502重新获取第一时间矩阵,并将第一时间矩阵中的最大值作为第一最大值,确定该第一最大值所对应的目标任务为第一待执行任务,直到所述任务执行时间矩阵中的矩阵元素全部为零为止。
可选地,所述第二确定模块504可以用于将该第二最大值在所述第二时间矩阵中所在行的非零元素中,累加值最接近于所述第一最大值的非零元素所对应的目标任务确定为所述第二待执行任务,其中,所述累加值小于或等于所述第一最大值。
可选地,所述累加值中至少包括所述第二最大值。
可选地,所述第一时间矩阵中的元素所对应的任务执行主体的最大数量与所述第一时间矩阵中的元素所对应的共享资源的总数相等。
可选地,所述第一时间矩阵是非零矩阵。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种电子设备600的框图。如图6所示,该电子设备600可以包括:处理器601,存储器602,多媒体组件603,输入/输出(I/O)接口604,以及通信组件605。
其中,处理器601用于控制该电子设备600的整体操作,以完成上述的基于共享资源的任务协调方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件605可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的基于共享资源的任务协调方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器602,上述程序指令可由电子设备600的处理器601执行以完成上述的基于共享资源的任务协调方法。
图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图7,电子设备700包括处理器722,其数量可以为一个或多个,以及存储器732,用于存储可由处理器722执行的计算机程序。存储器732中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器722可以被配置为执行该计算机程序,以执行上述的基于共享资源的任务协调方法。
另外,电子设备700还可以包括电源组件726和通信组件750,该电源组件726可以被配置为执行电子设备700的电源管理,该通信组件750可以被配置为实现电子设备700的通信,例如,有线或无线通信。此外,该电子设备700还可以包括输入/输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器732,上述程序指令可由电子设备700的处理器722执行以完成上述的基于共享资源的任务协调方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (8)

1.一种基于共享资源的任务协调方法,其特征在于,所述方法包括:
获取任务执行时间矩阵,所述任务执行时间矩阵中每个元素表示该元素所对应的任务执行主体对该元素所对应的共享资源执行目标任务时所花费的时间;
获取第一时间矩阵,将所述第一时间矩阵中的最大值作为第一最大值,并确定该第一最大值所对应的目标任务为第一待执行任务,其中,所述第一时间矩阵为所述任务执行时间矩阵或所述任务执行时间矩阵的子矩阵;
获取第二时间矩阵,其中,所述第二时间矩阵为从所述第一时间矩阵中删除所述第一最大值所在行和列后所得的矩阵;
若所述第二时间矩阵中存在非零元素,则将所述第二时间矩阵中的最大值作为第二最大值,根据该第二最大值确定第二待执行任务;
若存在所述第二待执行任务,则控制所述第一待执行任务和所述第二待执行任务并行执行,否则,控制所述第一待执行任务执行;
在执行完成后,将所述任务执行时间矩阵中已执行完成的目标任务所对应的时间置零,并返回所述获取第一时间矩阵,并将第一时间矩阵中的最大值作为第一最大值,确定该第一最大值所对应的目标任务为第一待执行任务的步骤,直到所述任务执行时间矩阵中的矩阵元素全部为零为止;
所述根据该第二最大值确定第二待执行任务,包括:
将该第二最大值在所述第二时间矩阵中所在行的非零元素中,累加值最接近于所述第一最大值的非零元素所对应的目标任务确定为所述第二待执行任务,其中,所述累加值小于或等于所述第一最大值。
2.根据权利要求1所述的方法,其特征在于,所述累加值中至少包括所述第二最大值。
3.根据权利要求1或2所述的方法,其特征在于,所述第一时间矩阵中的元素所对应的任务执行主体的最大数量与所述第一时间矩阵中的元素所对应的共享资源的总数相等。
4.根据权利要求3所述的方法,其特征在于,所述第一时间矩阵是非零矩阵。
5.一种基于共享资源的任务协调装置,其特征在于,所述装置包括:
第一获取模块,用于获取任务执行时间矩阵,所述任务执行时间矩阵中每个元素表示该元素所对应的任务执行主体对该元素所对应的共享资源执行目标任务时所花费的时间;
第一确定模块,用于获取第一时间矩阵,将所述第一时间矩阵中的最大值作为第一最大值,并确定该第一最大值所对应的目标任务为第一待执行任务,其中,所述第一时间矩阵为所述任务执行时间矩阵或所述任务执行时间矩阵的子矩阵;
第二获取模块,用于获取第二时间矩阵,其中,所述第二时间矩阵为从所述第一确定模块获取到的所述第一时间矩阵中删除所述第一最大值所在行和列后所得的矩阵;
第二确定模块,用于若所述第二获取模块获取到的所述第二时间矩阵中存在非零元素,则将所述第二时间矩阵中的最大值作为第二最大值,根据该第二最大值确定第二待执行任务;
控制模块,用于若存在所述第二待执行任务,则控制所述第一待执行任务和所述第二待执行任务并行执行,否则,控制所述第一待执行任务执行;
矩阵更新模块,用于在执行完成后,将所述任务执行时间矩阵中已执行完成的目标任务所对应的时间置零,并触发所述第一确定模块重新获取第一时间矩阵,并将第一时间矩阵中的最大值作为第一最大值,确定该第一最大值所对应的目标任务为第一待执行任务,直到所述任务执行时间矩阵中的矩阵元素全部为零为止;
所述第二确定模块用于将该第二最大值在所述第二时间矩阵中所在行的非零元素中,累加值最接近于所述第一最大值的非零元素所对应的目标任务确定为所述第二待执行任务,其中,所述累加值小于或等于所述第一最大值。
6.根据权利要求5所述的装置,其特征在于,所述累加值中至少包括所述第二最大值。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤。
8.一种电子设备,其特征在于,包括:
权利要求7中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
CN201711401952.4A 2017-12-20 2017-12-20 基于共享资源的任务协调方法、装置、介质及电子设备 Active CN108255593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711401952.4A CN108255593B (zh) 2017-12-20 2017-12-20 基于共享资源的任务协调方法、装置、介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711401952.4A CN108255593B (zh) 2017-12-20 2017-12-20 基于共享资源的任务协调方法、装置、介质及电子设备

Publications (2)

Publication Number Publication Date
CN108255593A CN108255593A (zh) 2018-07-06
CN108255593B true CN108255593B (zh) 2020-11-03

Family

ID=62723820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711401952.4A Active CN108255593B (zh) 2017-12-20 2017-12-20 基于共享资源的任务协调方法、装置、介质及电子设备

Country Status (1)

Country Link
CN (1) CN108255593B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076174A (en) * 1998-02-19 2000-06-13 United States Of America Scheduling framework for a heterogeneous computer network
CN101702833A (zh) * 2009-10-27 2010-05-05 武汉理工大学 一种移动网格任务调度方法
CN102171627A (zh) * 2008-10-03 2011-08-31 悉尼大学 对在异构计算系统中执行的应用的调度
CN102223404A (zh) * 2011-06-07 2011-10-19 武汉理工大学 一种基于访问成本和传输时间的副本选择方法
CN103561077A (zh) * 2013-10-29 2014-02-05 李飞 一种多QoS约束的云存储任务调度法
CN107133095A (zh) * 2017-04-07 2017-09-05 北京科技大学 一种云环境下的任务调度方法
CN107357652A (zh) * 2017-06-16 2017-11-17 北京邮电大学 一种基于分段排序及标准差调整因子的云计算任务调度方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442760B2 (en) * 2014-10-03 2016-09-13 Microsoft Technology Licensing, Llc Job scheduling using expected server performance information
US20160350146A1 (en) * 2015-05-29 2016-12-01 Cisco Technology, Inc. Optimized hadoop task scheduler in an optimally placed virtualized hadoop cluster using network cost optimizations

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076174A (en) * 1998-02-19 2000-06-13 United States Of America Scheduling framework for a heterogeneous computer network
CN102171627A (zh) * 2008-10-03 2011-08-31 悉尼大学 对在异构计算系统中执行的应用的调度
CN101702833A (zh) * 2009-10-27 2010-05-05 武汉理工大学 一种移动网格任务调度方法
CN102223404A (zh) * 2011-06-07 2011-10-19 武汉理工大学 一种基于访问成本和传输时间的副本选择方法
CN103561077A (zh) * 2013-10-29 2014-02-05 李飞 一种多QoS约束的云存储任务调度法
CN107133095A (zh) * 2017-04-07 2017-09-05 北京科技大学 一种云环境下的任务调度方法
CN107357652A (zh) * 2017-06-16 2017-11-17 北京邮电大学 一种基于分段排序及标准差调整因子的云计算任务调度方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《Improving Tasks Scheduling Performance in Cloud Computing Environment by Using Analytic Hierarchy Process Model》;Tahani Aladwani;《2017 International Conference on Green Informatics (ICGI)》;20171123;全文 *
《基于QoS和效用的云计算资源调度模型》;刘波 等;《计算机测量与控制》;20150120;第22卷(第3期);全文 *
《基于群智能优化算法的云计算任务调度策略研究》;辛海奎;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20160215;第2016年卷(第2期);全文 *
《改进鱼群算法在云计算任务调度中的应用》;张晓丽;《电子设计工程》;20170331;第25卷(第6期);全文 *

Also Published As

Publication number Publication date
CN108255593A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
US10958748B2 (en) Resource push method and apparatus
JP7009455B2 (ja) 分散イベント処理システムにおけるデータシリアライズ
JP6832347B2 (ja) 分散型システムにおける多段階処理のためのイベント順序の保証
CN107450903B (zh) 一种信息处理方法及装置
JP6919065B2 (ja) アプリケーションのプリロード方法、端末機器、および媒体
CN110909942B (zh) 训练模型的方法及系统和预测序列数据的方法及系统
US10447743B2 (en) Apparatus, method and non-transitory computer-readable recording medium for providing content sharing service
US10346441B2 (en) Systems and methods for providing predictions to applications executing on a computing device
WO2021104132A1 (zh) 一种基于云虚拟机的数据访问方法及设备
CN111371851B (zh) 一种连接方法、装置及电子设备和存储介质
CN112631682B (zh) 小程序处理方法、装置、设备及存储介质
CN110502336A (zh) 一种服务器的启动方法、装置、设备、及可读存储介质
US20180225333A1 (en) Data write/import performance in a database through distributed memory
CN108255593B (zh) 基于共享资源的任务协调方法、装置、介质及电子设备
CN117033766A (zh) 业务处理行为预测方法、装置、计算机设备和存储介质
US20220229858A1 (en) Multi-cloud object store access
CN111694768A (zh) 运算方法、装置及相关产品
CN113382310B (zh) 信息推荐方法及装置、电子设备和介质
CN111597200A (zh) 数据处理方法、装置及存储介质
US10546036B2 (en) Web browser having improved navigational functionality
CN109492759B (zh) 神经网络模型预测方法、装置和终端
CN109150993B (zh) 一种获取网络请求切面的方法、终端装置及存储介质
CN113378022A (zh) 一种站内搜索平台、搜索方法和相关装置
CN116561735B (zh) 一种基于多认证源的互信认证方法、系统及电子设备
CN114866845B (zh) 一种基于短视频发布的信息检测方法及系统

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