CN103902374A - 基于元胞自动机和赋权有向超图的云计算任务调度方法 - Google Patents
基于元胞自动机和赋权有向超图的云计算任务调度方法 Download PDFInfo
- Publication number
- CN103902374A CN103902374A CN201410137810.1A CN201410137810A CN103902374A CN 103902374 A CN103902374 A CN 103902374A CN 201410137810 A CN201410137810 A CN 201410137810A CN 103902374 A CN103902374 A CN 103902374A
- Authority
- CN
- China
- Prior art keywords
- power
- composing
- cellular
- directed hypergraph
- node
- 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
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种云计算环境下的基于元胞自动机和赋权有向超图的云计算任务调度方法,其采用赋权有向超图描述任务的资源需求及依赖关系,并生成相应的赋权有向超图文件;然后启动基于元胞自动机的赋权有向超图划分程序,对生成的赋权有向超图进行划分;最后依据赋权有向超图的划分结果构造任务子集,通过MapReduce任务调度模型对其进行映射和调度。采用本发明基于元胞自动机和赋权有向超图的云计算任务调度方法,不仅有效地提高了任务调度的效率,还显著地提高了任务划分的性能,具有较好的实用性。
Description
技术领域
本发明涉及一种云计算环境下的基于元胞自动机和赋权有向超图的云计算任务调度方法。
背景技术
云计算作为分布式计算、并行计算、网格计算等传统技术和网络编程模型、分布式数据存储技术、虚拟化技术等新型技术融合发展的产物,是引领未来信息产业创新的关键战略性技术和手段,将对我国发展高新技术产业具有重要的战略意义。云计算通过将计算任务划分在大规模的廉价服务器集群上,使得人们能够利用分布在各地的闲散资源来处理较为复杂的应用程序,以极低的成本投入获得极高的计算品质。
在满足云计算环境要求的前提下,将大量分散的应用程序任务划分成多个具有一定约束关系的任务子集,调度到不同的虚拟机上,获得比其他一些针对网格计算或并行计算的任务调度算法更短的时间跨度和更好的运行质量,是实现云计算高性能的关键核心技术。现有技术的划分***中有若干种任务的划分法,这些划分法从依赖关系数目最小、划分后任务子集的任务数目均匀分布等不同的方面来实现,主要有基于迁移的划分法、水平嵌套划分法、多水平划分法、元胞自动机划分法等方法。
基于迁移的划分法。该方法首先产生任务的随机初始划分,同一个任务不能同时属于两个任务子集。在迁移优化阶段,从两个任务子集中各选取一个任务进行成对交换,这两个任务分别属于两个不同的任务子集且收益最大,从而每次都利用交换过程最大限度地改进任务划分质量。记录割切达到最小值时刻的任务划分结果,且一旦交换了所选择的两个任务,在整个迁移过程余下的优化改进中,将这两个任务锁定使得它们不再被选中。重复上述过程直到所有可能的任务都经过迁移之后,回滚到累计收益最大值即割切最小值的时刻。该划分法得到的任务划分结果不稳定,离散性很大,因此限制了该划分法所能解决问题的规模。
水平嵌套划分法。该方法首先选择一个任务,将这个任务标上号码0,然后将所有和这个任务相连的任务标上号码1,之后对于那些还未标上号码,但是和已经标上号码的任务相连的任务,将其标号为相连任务的号码上加1。直到一半的任务标上号码,标号过程才结束。那些已经标上号码的任务集合设为一个任务子集,其他任务为另一个任务子集。该划分法只有在选取的初始任务接近***时,得到的任务划分结果相对较好,总的来说该任务划分结果也不稳定。
多水平划分法。Karypis针对结点规模达到几百万的划分问题,提出了多水平划分的概念,在相对较短的时间内可以得到高质量的划分。该方法包含粗化、初始划分和迁移优化三个阶段。首先,它采用随机匹配策略将某些任务结合在一起,得到下一水平层的粗化任务图,重复此过程直到粗化任务图足够小为止,即得到一个最小任务图。然后,采用划分法对最小任务图进行对分,得到一个初始划分。之后,将最小任务图投影回初始任务图,在每一水平层的细化任务划分中,按照贪心原则选择收益值最大的任务进行迁移优化,得到最后的任务划分结果。自多水平划分的概念提出以来,得到了广泛地重视,并应用在电路划分、云计算任务调度等许多研究领域。2008年中国专利局公告的由冷明、郁松年和孙凌宇申报的《基于多水平划分法的大规模集成电路划分方法》发明专利,针对现有技术方案中因采用随机策略进行匹配和贪心原则进行迁移优化,导致无法逃离局部最优的划分,提供了一种改进的基于多水平划分法的大规模集成电路划分方法,有效地提高了大规模集成电路划分的效率和性能。2012年中国专利局公告的由孙凌宇、冷明和冷子阳申报的《基于多水平划分法和赋权超图的大规模集成电路划分方法》发明专利,针对采用赋权无向图作为大规模集成电路划分问题的数学模型,存在着赋权无向图最优划分和大规模集成电路最优划分的不一致性,提供了一种基于多水平划分法和赋权无向超图的大规模集成电路划分方法,进一步提高了大规模集成电路划分的效率和性能。2012年中国专利局公告的由孙凌宇、冷明和冷子阳申报的《基于结点属性函数的大规模集成电路的核值计算方法》发明专利,在采用多水平划分法求解赋权无向超图划分问题的粗化阶段中,提供了所需的基于结点属性函数的大规模集成电路的核值计算方法。2014年中国专利局公告的由孙凌宇、冷明和冷子阳申报的《基于多水平划分法和赋权有向超图的云计算任务调度方法》发明专利,采用赋权有向超图描述任务的资源需求及依赖关系,并生成相应的赋权有向超图文件;然后启动基于多水平划分法的赋权有向超图划分程序,对生成的赋权有向超图进行划分;最后依据赋权有向超图的划分结果构造任务子集,通过MapReduce任务调度模型对其进行映射和调度。2014年中国专利局公告的由孙凌宇、冷明和冷子阳申报的《云计算环境中基于结点属性函数的任务核值计算方法》发明专利,在采用多水平划分法求解赋权有向超图划分问题的粗化阶段中,提供了所需的云计算环境中基于结点属性函数的任务核值计算方法。
元胞自动机划分法。2012年中国专利局公告的由冷明、孙凌宇和冷子阳申报的《基于元胞自动机和赋权超图的大规模集成电路划分方法》发明专利,采用元胞自动机对赋权无向超图划分问题进行数学建模。其中,元胞对应于赋权无向超图中的结点,邻接元胞对应于邻接超边所包含的结点,元胞的状态对应于所在的划分子集,进而采用快速的元胞收益值和划分割切值的计算方法,有效地降低了大规模集成电路划分方法的空间复杂度和时间复杂度,并提高了大规模集成电路划分的性能。
发明内容
本发明涉及的云计算环境中任务调度包括元任务的调度和依赖任务的调度。元任务之间相互独立,其调度不考虑任务间的数据关联与优先约束关系,因此它只是部分地解决了资源异构性和可用性问题,缺乏普遍适用性。而依赖任务之间存在先后依赖关系,要求一个任务必须接收到它的所有前驱任务消息后才能开始执行。
本发明采用赋权有向超图来构造任务划分问题的数学模型, 任务表示为赋权有向超图的结点,任务结点间的先后依赖关系表示为赋权有向超图中的有向超边 。赋权有向超图的多对多关系提供了精确描述用户任务的手段,其结点对应于分解后的进程级用户任务,有向超边对应于任务结点间的先后依赖关系,任意超边的尾端结点所对应任务的全部前驱任务都包含在该超边的源端子集中。相比赋权有向图和赋权无向超图,赋权有向超图为依赖任务的调度提供了更为精确的模型,能全面地表示云计算环境的异构性、分布性、广域性等特点,从而提高任务调度的准确性和执行效率。
相比赋权有向图而言,赋权有向超图为任务结点的依赖关系提供了更为精确的模型:每条边仅连接两个结点,对应于任务结点之间的依赖关系只能连接两个任务,而每条超边可以连接两个以上的结点,对应于任务结点之间的先后依赖关系可以连接两个以上的任务,即任意超边的尾端结点所对应任务的全部(两个以上)前驱任务都包含在该超边的源端子集中。
相比赋权无向超图而言,赋权有向超图为任务结点的先后依赖关系提供了更为精确的模型:无向超边连接两个以上的结点,但无法表示任务结点间的先后依赖关系,而每条有向超边可以连接两个以上的结点,超边尾端结点的所有直接前驱结点都包含在该超边的源端子集中,对应于任务结点间的先后依赖关系。
本发明的目的在于针对已有技术存在的不足,提供一种基于元胞自动机和赋权有向超图的云计算任务调度方法,有效地缩短了任务完成的时间跨度,实现了云计算资源的合理利用,为云计算提供高效的任务调度机制。为达到上述目的,本发明的构思如下。
一、在云计算环境中将大量分散的任务按照特定的约束条件划分为多个规模较小的任务子集,使划分后的各个任务子集计算规模相当,但任务子集之间的依赖关系数目达到最少,从而最大程度地实现云计算平台的负载均衡,并缩短整个任务完成的时间跨度。任务子集的优化划分作为云计算任务调度机制的关键环节,其结果对整个云计算环境的运行效率有着重要的影响,可有效地减少资源空闲时间,提高资源的利用效益。
二、云计算任务调度的任务子集的优化划分问题转换为赋权有向超图划分问题,即任务子集的优化划分问题要求每个任务子集所包含的任务数目相等,对应于赋权有向超图划分问题的平衡约束条件,划分结果使得任务子集之间的依赖关系数目达到最小,对应于赋权有向超图划分问题的最小化总割切。赋权有向超图的划分要求每个任务子集所包含的任务数目相等,对应于多资源约束条件下的平衡约束条件,并且划分结果使得这些任务子集之间的依赖关系数目达到最小,对应于多目标优化划分问题的最小化总割切。
三、采用赋权有向超图描述任务的资源需求及依赖关系,并生成相应的赋权有向超图文件;然后启动基于元胞自动机的赋权有向超图划分程序,对生成的赋权有向超图进行划分;最后依据赋权有向超图的划分结果构造任务子集,通过MapReduce任务调度模型对其进行映射和调度。
四、采用元胞自动机对赋权有向超图划分问题进行数学建模,其中元胞对应于赋权有向超图中的结点,邻接元胞对应于邻接有向超边所包含的结点,元胞的状态对应于所在的划分子集,进而采用快速的元胞收益值和划分割切值的计算方法,有效地降低了基于元胞自动机的赋权有向超图划分方法的空间复杂度和时间复杂度。
根据上述的发明构思,本发明的技术方案是这样实现的:一种基于元胞自动机和赋权有向超图的云计算任务调度方法,其特征在于,具体步骤如下。
步骤1,类型类度分析,输入云计算环境下用户提交的任务,并对其进行类型和类度的分析,确定任务的并行化程度及特点。
步骤2,进程粒度分解,根据用户任务的并行化程度及特点,以及云计算的资源共享分配方式等独特性质,对用户任务按照进程粒度级别进行分解。
步骤3,资源特性分析,根据云计算的资源共享分配方式等独特性质,对分解后的任务进行资源特性分析。
步骤4,赋权有向超图文件生成,依据对任务资源特性的分析结果,建立描述其资源需求及依赖关系的赋权有向超图模型,并按照改进压缩的文件存储格式保存为赋权有向超图文件。
步骤5,赋权有向超图划分,启动基于元胞自动机的赋权有向超图划分程序,读取赋权有向超图文件,采用基于元胞自动机的内存压缩存储格式对赋权有向超图进行存储,对生成的赋权有向超图进行划分,将最终得到的划分结果存储在赋权有向超图划分文件中。
步骤6,任务子集构造,在检测到基于元胞自动机的赋权有向超图划分程序完成划分之后,从赋权有向超图划分文件中读取相应的划分结果,依据赋权有向超图的划分结果构造进程级任务子集。
步骤7,任务映射调度,通过MapReduce任务调度模型,对基于赋权有向超图优化划分构造的任务子集进行映射和调度,实现在云计算环境中的任务提交与执行,有效地均衡云计算平台的负载和缩短整个任务完成的时间跨度。
上述的步骤4中,所述的赋权有向超图的改进压缩的文件存储格式如下。
步骤4.1,文件格式的第1行第1个参数代表着赋权有向超边的数目m,第2个参数代表着赋权结点的数目n。
步骤4.2,文件格式的第2行开始到第m+1行的每行代表着一条赋权有向超边的相关信息,第1个数值为赋权有向超边的权值信息,其余数值为赋权有向超边的结点信息,其中每行的最后一个数值代表赋权有向超边的尾端结点信息,且赋权有向超边的源端结点信息处于赋权有向超边的权值信息和尾端结点信息之间。
步骤4.3,文件格式的第m+2行开始到第m+n+1行的每行代表着一个赋权结点的权值信息。
上述的步骤5中,所述的基于元胞自动机的赋权有向超图划分程序的步骤如下。
步骤5.1,读取赋权有向超图文件,采用基于元胞自动机的内存压缩存储格式对赋权有向超图进行存储。
步骤5.2,元胞初始化,遍历每个元胞并随机给定元胞所处的状态1和n之间的整数,分别代表元胞对应结点所处的n个划分子集V1…Vn中间的某个划分子集,从而得到初始划分。
步骤5.3,初始化二维辅助数组EDG[n][m],依据初始划分,初始化二维辅助数组EDG[n][m]。
步骤5.4,计算初始划分的割切值,依据二维辅助数组EDG[n][m],快速计算当前划分的割切值。
步骤5.5,循环初始化,初始化循环计数器COUNT为0。
步骤5.6,遍历每个元胞是否结束,如果访问未结束,即存在当前元胞未被访问,则转步骤5.7;否则访问结束,转步骤5.13。
步骤5.7,计算当前元胞的收益值,根据当前元胞的状态和邻接元胞的状态,快速计算当前元胞的收益值。
步骤5.8,演化当前元胞状态,如果当前元胞的收益值大于零,当前元胞状态一定从当前状态from翻转到翻转状态to,否则当前元胞状态以设定的翻转概率从当前状态from翻转到翻转状态to。
步骤5.9,如果当前元胞状态从当前状态from翻转到翻转状态to,则转步骤5.10,否则转步骤5.6。
步骤5.10,更新二维辅助数组EDG[n][m],遍历元胞的所有邻接超边e,执行EDG[from][e]减1操作,EDG[to][e]加1操作。
步骤5.11,更新当前划分的割切值,依据二维辅助数组EDG[n][m],快速计算当前划分的割切值。
步骤5.12,更新已找到的最优划分,转步骤5.6。
步骤5.13,循环判断,循环计数器COUNT加1,若满足COUNT达到设定演化次数的条件1或者全部元胞都不再改变自身状态的条件2时,执行步骤5.14,否则返回步骤5.6。
步骤5.14,进入到平衡阶段,运行基于FM-EE方法的赋权有向超图划分程序:由于在基于元胞自动机的赋权有向超图划分过程中,可能违背赋权有向超图划分问题的平衡约束条件,因此在基于元胞自动机的赋权有向超图划分所求解的基础上,运行基于FM-EE方法的赋权有向超图划分方法,使划分解满足平衡约束条件,从而得到赋权有向超图划分问题的划分解。
步骤5.15,将最终得到的赋权有向超图划分结果存储在赋权有向超图划分文件中。
上述的步骤5.1中,所述的赋权有向超图的基于元胞自动机的内存压缩存储格式如下。
步骤5.1.1,使用ID数组存储元胞对应于赋权有向超图中结点的编号信息,且ID数组的大小为赋权有向超图中的结点个数。
步骤5.1.2,使用state数组存储元胞的状态信息,且state数组的大小为赋权有向超图中的结点个数。
步骤5.1.3,使用vwgts数组存储元胞对应于赋权有向超图中结点的权值信息,且vwgts数组的大小为赋权有向超图中的结点个数。
步骤5.1.4,使用xadj数组存储每个结点所有邻接赋权有向超边列表的起始位置信息,即第i个结点的终止位置为第i+1个结点的起始位置减1,且xadj数组的大小为赋权有向超图中的结点个数加1, xadj数组最后一个元素用于存放最后一个结点的终止位置。
步骤5.1.5,使用adjncy数组存储每个结点所有邻接赋权有向超边的列表信息,第i个结点的邻接赋权有向超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1]。
步骤5.1.6,使用eptr数组存储每条赋权有向超边所包含的结点列表的起始位置信息,即第j条赋权有向超边的终止位置为第j+1条赋权有向超边的起始位置减1,且eptr数组的大小为赋权有向超图中的赋权有向超边条数加1, eptr数组最后一个元素用于存放最后一条赋权有向超边的终止位置。
步骤5.1.7,使用eind数组存储每条赋权有向超边所包含结点的列表信息,其中每条赋权有向超边的尾端结点只有1个,且每条赋权有向超边尾端结点的所有直接前驱结点都包含在该赋权有向超边的源端子集中。第j条赋权有向超边的结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]-1],其中第j条赋权有向超边的源端结点为eind[eptr[j]]到eind[eptr[j+1]-2],第j条赋权有向超边的尾端结点为eind[eptr[j+1]-1]。
步骤5.1.8,使用hewgts数组存储赋权有向超边的权值信息,且hewgts数组的大小为赋权有向超图中的赋权有向超边条数。
上述的步骤5.3中,所述的初始化二维辅助数组EDG[n][m]的步骤如下。
步骤5.3.1,二维辅助数组EDG[n][m]清零。
步骤5.3.2,读取eptr数组和eind数组存储的每条赋权有向超边所包含的结点信息,基于初始划分计算每条赋权有向超边在n个划分子集V1…Vn的结点个数,即二维辅助数组EDG[n][m]的n行分别存放m条赋权有向超边在n个划分子集的结点个数。
上述的步骤5.4和步骤5.11中,所述的快速计算当前划分的割切值的步骤如下。
步骤5.4.1,划分割切值清零。
步骤5.4.2,遍历每条赋权有向超边是否结束,如果访问未结束,即存在赋权有向超边e未被访问,则转步骤5.4.3;否则访问结束,返回划分割切值。
步骤5.4.3,如果满足EDG[i][e] ≥1的条件1和EDG[j][e]≥1的条件2时,意味着赋权有向超边e在划分子集Vi和Vj的结点个数都大于等于1,即可判定赋权有向超边e是两栖边,并将划分割切值累加上当前赋权有向超边的权值;否则判定赋权有向超边e不是两栖边,划分割切值不变。
步骤5.4.4,转步骤5.4.2。
上述的步骤5.7中,所述的快速计算当前元胞收益值的步骤如下。
步骤5.7.1,元胞收益值清零。
步骤5.7.2,读取元胞的当前状态from和翻转状态to。
步骤5.7.3,遍历元胞的所有邻接赋权有向超边e,若二维数组EDG[from][e]值为1,则将收益值加上赋权有向超边e的权值;若二维数组EDG[to][e]值为0,则将收益值减去赋权有向超边e的权值。
步骤5.7.4,返回元胞收益值。
本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点。
1、提高了电路划分的效率。
本发明基于元胞自动机和赋权有向超图的云计算任务调度方法,一方面通过任务到赋权有向超图文件的转换,启动基于元胞自动机的赋权有向超图划分程序,对生成的赋权有向超图进行划分,避免了划分方法直接在任务上进行划分;另一方面可以通过设置元胞自动机的翻转概率参数来获取较优的划分结果后,再进行任务的映射和调度,从而有效地提高了任务调度的效率,缩短了任务完成的时间跨度,实现了云计算资源的合理利用,为云计算提供高效的任务调度机制。
2、提高了任务划分的性能。
本发明基于元胞自动机和赋权有向超图的任务优化划分方法,借助二维辅助数组EDG[n][m]存储每条超边在划分子集的结点个数,实现了划分割切值的计算方法,有效地避免了遍历超边中的结点。相比赋权无向超图划分方法和赋权有向图划分方法,该方法有效地找到比现有技术更优的任务划分结果,降低了空间复杂度和时间复杂度,最终显著地提高了任务优化划分的性能。
通过以下对本发明基于元胞自动机和赋权有向超图的云计算任务调度方法的实例结合其附图的描述,可以进一步理解本发明的目的、具体结构特征和优点。
图1是本发明基于元胞自动机和赋权有向超图的云计算任务调度方法的流程图。
图2是本发明的赋权超图的基于元胞自动机的压缩存储格式。
图3是本发明的基于元胞自动机的赋权超图划分方法的流程图。
具体实施方式。
为了能够更清楚地理解本发明基于元胞自动机和赋权有向超图的云计算任务调度方法的技术内容,特举以下实例详细说明。
本实施例的基于元胞自动机和赋权有向超图的云计算任务调度方法的流程图如图1所示。在云计算环境下,输入用户提交的任务101,对用户任务进行类型和类度的分析102,确定任务的并行化程度和特点;根据用户任务的并行化程度和特点,以及云计算的资源共享分配方式等独特性质,对用户任务按照进程粒度级别进行分解103;进而对分解后的任务进行资源特性分析104;依据对任务资源特性的分析结果,建立描述其资源需求及依赖关系的赋权有向超图模型105;按照改进压缩的文件存储格式保存为赋权有向超图文件109;启动基于元胞自动机的赋权有向超图划分程序111,读取赋权有向超图文件109,得到基于元胞自动机的内存压缩存储格式的赋权有向超图112;进入到划分阶段,运行基于元胞自动机的赋权有向超图划分程序113,对内存压缩存储格式的赋权有向超图进行划分;进入到平衡阶段,运行基于FM-EE方法的赋权有向超图划分程序114,使初始赋权有向超图的划分结果满足平衡约束条件,并将最终得到的划分结果存储为赋权有向超图划分文件110;在检测到基于元胞自动机的赋权有向超图划分程序111完成划分之后,从赋权有向超图划分文件110中读取相应的划分结果,依据赋权有向超图的划分结果构造进程级任务子集106;通过MapReduce任务调度模型,对基于赋权有向超图优化划分构造的任务子集进行映射和调度107;在云计算环境中,对基于赋权有向超图优化划分构造的任务子集中的任务提交与执行108,有效地均衡云计算平台的负载并缩短整个任务完成的时间跨度。
本实施例的赋权有向超图改进压缩的文件存储格式参见在先技术[1] “G. Karypis and V. Kumar. HMetis 1.5.3: A Hypergraph Partitioning Package [R]. Technical report, Department of Computer Science, University of Minnesota, 1998.”和在先技术[2] “孙凌宇,冷明,郭恺强,朱平. 一种VLSI设计到超图的转换***[J]. 计算机工程与应用, 2012, Vol.29, Issue.2, Pages 7-16.”。与在先技术[1,2]相同点:文件格式的第1行第1个参数代表着有向赋权超边的数目m,第2个参数代表着赋权结点的数目n;文件格式的第2行开始到第m+1行的每行代表着一条有向赋权超边的相关信息;文件格式的第m+2行开始到第m+n+1行的每行代表着一个赋权结点的权值信息。与在先技术[1,2]区别点:文件格式的第2行开始到第m+1行中,除第1个数值之外的其余数值为有向赋权超边的结点信息,其中每行的最后一个数值代表有向赋权超边的尾端结点信息,且有向赋权超边的源端结点信息处于有向赋权超边的权值信息和尾端结点信息之间。
本实施例的赋权有向超图的基于元胞自动机的压缩存储格式如图2所示。图例202所示的元胞存储结构,其中不仅存储了自身的编号、状态和权值,还存储了邻接赋权有向超边的起始位置。基于元胞自动机的压缩存储格式使用ID数组203存储元胞对应的赋权有向超图中结点的编号信息,且ID数组203的大小为赋权有向超图中的结点个数。使用state数组204存储元胞的状态信息,且state数组204的大小为赋权有向超图中的结点个数。使用vwgts数组205存储结点的权值信息,且vwgts数组205的大小为赋权有向超图中的结点个数。使用xadj数组206存储每个结点所有邻接赋权有向超边列表的起始位置信息,即第i个结点的终止位置为第i+1个结点的起始位置减1,且xadj数组206的大小为赋权有向超图中的结点个数加1, xadj数组206最后一个元素用于存放最后一个结点的终止位置。使用adjncy数组207存储每个结点所有邻接赋权有向超边的列表信息,第i个结点的邻接赋权有向超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1]。使用hewgts数组208存储赋权有向超边的权值信息,且hewgts数组208的大小为赋权有向超图中的赋权有向超边条数。使用eptr数组209存储每条赋权有向超边所包含的结点列表的起始位置信息,即第j条赋权有向超边的终止位置为第j+1条赋权有向超边的起始位置减1,且eptr数组209的大小为赋权有向超图中的赋权有向超边条数加1, eptr数组209最后一个元素用于存放最后一条赋权有向超边的终止位置。使用eind数组210存储每条赋权有向超边所包含结点的列表信息。假设数组地址从零开始,结点编号从零开始,则第i个结点的邻接赋权有向超边列表存储在adjncy数组207中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1];第j条赋权有向超边的邻接结点列表存储在eind数组210中,从eind[eptr[j]]到eind[eptr[j+1]-1] ,其中第j条赋权有向超边的源端结点为eind[eptr[j]]到eind[eptr[j+1]-2],第j条赋权有向超边的尾端结点为eind[eptr[j+1]-1]。图例201的赋权有向超图包含总共7个结点和8条赋权有向超边,其中第6个结点的权值为7,有2条邻接有向超边f、h,其中有向超边f对应的权值为4,且相应的邻接结点分别为结点7、3、6,源端结点为结点7和3,尾端结点为结点6;有向超边h对应的权值为1,且相应的邻接结点分别为结点4、6,源端结点为结点4,尾端结点为结点6。
本实施例的基于FM-EE方法的赋权有向超图划分程序参见在先技术[3] “Karypis G, Aggarwal R, Kumar V, Shekhar S. Multilevel hypergraph partitioning: Applications in VLSI domain[J]. IEEE transactions on very large scale integration systems, 1999, Vol.7, Issue.1, Pages 69-79.”。
本实施例的基于元胞自动机的赋权有向超图划分方法的流程图如图3所示,步骤如下。
A01:读取赋权有向超图文件。
A02:元胞初始化。
A03:初始化二维辅助数组EDG[n][m]。
A04:计算初始划分的割切值。
A05:初始化循环计数器COUNT为0。
A06:遍历每个元胞是否结束,如果访问未结束,即存在当前元胞未被访问,则转步骤A07;否则访问结束,转步骤A13。
A07:计算当前元胞的收益值。
A08:演化当前元胞状态。
A09:如果当前元胞状态从当前状态from翻转到翻转状态to,则转步骤A10,否则转步骤A 06。
A10:更新二维辅助数组EDG[n][m]。
A11:更新当前划分的割切值。
A12:更新已找到的最优划分,转步骤A06。
A13:循环计数器COUNT加1,若满足COUNT达到设定演化次数的条件1或者全部元胞都不再改变自身状态的条件2时,执行步骤A 14,否则返回步骤A 06。
A14: 运行基于FM-EE方法的赋权有向超图划分程序。
A15:将最终得到的赋权有向超图划分结果存储在赋权有向超图划分文件中。
Claims (1)
1.本发明的技术方案是这样实现的:一种基于元胞自动机和赋权有向超图的云计算任务调度方法,其特征在于,具体步骤如下:
步骤1,类型类度分析,输入云计算环境下用户提交的任务,并对其进行类型和类度的分析,确定任务的并行化程度及特点;
步骤2,进程粒度分解,根据用户任务的并行化程度及特点,以及云计算的资源共享分配方式等独特性质,对用户任务按照进程粒度级别进行分解;
步骤3,资源特性分析,根据云计算的资源共享分配方式等独特性质,对分解后的任务进行资源特性分析;
步骤4,赋权有向超图文件生成,依据对任务资源特性的分析结果,建立描述其资源需求及依赖关系的赋权有向超图模型,并按照改进压缩的文件存储格式保存为赋权有向超图文件;
步骤5,赋权有向超图划分,启动基于元胞自动机的赋权有向超图划分程序,读取赋权有向超图文件,采用基于元胞自动机的内存压缩存储格式对赋权有向超图进行存储,对生成的赋权有向超图进行划分,将最终得到的划分结果存储在赋权有向超图划分文件中;
步骤6,任务子集构造,在检测到基于元胞自动机的赋权有向超图划分程序完成划分之后,从赋权有向超图划分文件中读取相应的划分结果,依据赋权有向超图的划分结果构造进程级任务子集;
步骤7,任务映射调度,通过MapReduce任务调度模型,对基于赋权有向超图优化划分构造的任务子集进行映射和调度,实现在云计算环境中的任务提交与执行,有效地均衡云计算平台的负载和缩短整个任务完成的时间跨度;
上述的步骤4中,所述的赋权有向超图的改进压缩的文件存储格式如下:
步骤4.1,文件格式的第1行第1个参数代表着赋权有向超边的数目m,第2个参数代表着赋权结点的数目n;
步骤4.2,文件格式的第2行开始到第m+1行的每行代表着一条赋权有向超边的相关信息,第1个数值为赋权有向超边的权值信息,其余数值为赋权有向超边的结点信息,其中每行的最后一个数值代表赋权有向超边的尾端结点信息,且赋权有向超边的源端结点信息处于赋权有向超边的权值信息和尾端结点信息之间;
步骤4.3,文件格式的第m+2行开始到第m+n+1行的每行代表着一个赋权结点的权值信息;
上述的步骤5中,所述的基于元胞自动机的赋权有向超图划分程序的步骤如下:
步骤5.1,读取赋权有向超图文件,采用基于元胞自动机的内存压缩存储格式对赋权有向超图进行存储;
步骤5.2,元胞初始化,遍历每个元胞并随机给定元胞所处的状态1和n之间的整数,分别代表元胞对应结点所处的n个划分子集V1…Vn中间的某个划分子集,从而得到初始划分;
步骤5.3,初始化二维辅助数组EDG[n][m],依据初始划分,初始化二维辅助数组EDG[n][m];
步骤5.4,计算初始划分的割切值,依据二维辅助数组EDG[n][m],快速计算当前划分的割切值;
步骤5.5,循环初始化,初始化循环计数器COUNT为0;
步骤5.6,遍历每个元胞是否结束,如果访问未结束,即存在当前元胞未被访问,则转步骤5.7;否则访问结束,转步骤5.13;
步骤5.7,计算当前元胞的收益值,根据当前元胞的状态和邻接元胞的状态,快速计算当前元胞的收益值;
步骤5.8,演化当前元胞状态,如果当前元胞的收益值大于零,当前元胞状态一定从当前状态from翻转到翻转状态to,否则当前元胞状态以设定的翻转概率从当前状态from翻转到翻转状态to;
步骤5.9,如果当前元胞状态从当前状态from翻转到翻转状态to,则转步骤5.10,否则转步骤5.6;
步骤5.10,更新二维辅助数组EDG[n][m],遍历元胞的所有邻接超边e,执行EDG[from][e]减1操作,EDG[to][e]加1操作;
步骤5.11,更新当前划分的割切值,依据二维辅助数组EDG[n][m],快速计算当前划分的割切值;
步骤5.12,更新已找到的最优划分,转步骤5.6;
步骤5.13,循环判断,循环计数器COUNT加1,若满足COUNT达到设定演化次数的条件1或者全部元胞都不再改变自身状态的条件2时,执行步骤5.14,否则返回步骤5.6;
步骤5.14,进入到平衡阶段,运行基于FM-EE方法的赋权有向超图划分程序:由于在基于元胞自动机的赋权有向超图划分过程中,可能违背赋权有向超图划分问题的平衡约束条件,因此在基于元胞自动机的赋权有向超图划分所求解的基础上,运行基于FM-EE方法的赋权有向超图划分方法,使划分解满足平衡约束条件,从而得到赋权有向超图划分问题的划分解;
步骤5.15,将最终得到的赋权有向超图划分结果存储在赋权有向超图划分文件中;
上述的步骤5.1中,所述的赋权有向超图的基于元胞自动机的内存压缩存储格式如下:
步骤5.1.1,使用ID数组存储元胞对应于赋权有向超图中结点的编号信息,且ID数组的大小为赋权有向超图中的结点个数;
步骤5.1.2,使用state数组存储元胞的状态信息,且state数组的大小为赋权有向超图中的结点个数;
步骤5.1.3,使用vwgts数组存储元胞对应于赋权有向超图中结点的权值信息,且vwgts数组的大小为赋权有向超图中的结点个数;
步骤5.1.4,使用xadj数组存储每个结点所有邻接赋权有向超边列表的起始位置信息,即第i个结点的终止位置为第i+1个结点的起始位置减1,且xadj数组的大小为赋权有向超图中的结点个数加1, xadj数组最后一个元素用于存放最后一个结点的终止位置;
步骤5.1.5,使用adjncy数组存储每个结点所有邻接赋权有向超边的列表信息,第i个结点的邻接赋权有向超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1];
步骤5.1.6,使用eptr数组存储每条赋权有向超边所包含的结点列表的起始位置信息,即第j条赋权有向超边的终止位置为第j+1条赋权有向超边的起始位置减1,且eptr数组的大小为赋权有向超图中的赋权有向超边条数加1, eptr数组最后一个元素用于存放最后一条赋权有向超边的终止位置;
步骤5.1.7,使用eind数组存储每条赋权有向超边所包含结点的列表信息,其中每条赋权有向超边的尾端结点只有1个,且每条赋权有向超边尾端结点的所有直接前驱结点都包含在该赋权有向超边的源端子集中;第j条赋权有向超边的结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]-1],其中第j条赋权有向超边的源端结点为eind[eptr[j]]到eind[eptr[j+1]-2],第j条赋权有向超边的尾端结点为eind[eptr[j+1]-1];
步骤5.1.8,使用hewgts数组存储赋权有向超边的权值信息,且hewgts数组的大小为赋权有向超图中的赋权有向超边条数;
上述的步骤5.3中,所述的初始化二维辅助数组EDG[n][m]的步骤如下:
步骤5.3.1,二维辅助数组EDG[n][m]清零;
步骤5.3.2,读取eptr数组和eind数组存储的每条赋权有向超边所包含的结点信息,基于初始划分计算每条赋权有向超边在n个划分子集V1…Vn的结点个数,即二维辅助数组EDG[n][m]的n行分别存放m条赋权有向超边在n个划分子集的结点个数;
上述的步骤5.4和步骤5.11中,所述的快速计算当前划分的割切值的步骤如下:
步骤5.4.1,划分割切值清零;
步骤5.4.2,遍历每条赋权有向超边是否结束,如果访问未结束,即存在赋权有向超边e未被访问,则转步骤5.4.3;否则访问结束,返回划分割切值;
步骤5.4.3,如果满足EDG[i][e] ≥1的条件1和EDG[j][e]≥1的条件2时,意味着赋权有向超边e在划分子集Vi和Vj的结点个数都大于等于1,即可判定赋权有向超边e是两栖边,并将划分割切值累加上当前赋权有向超边的权值;否则判定赋权有向超边e不是两栖边,划分割切值不变;
步骤5.4.4,转步骤5.4.2;
上述的步骤5.7中,所述的快速计算当前元胞收益值的步骤如下:
步骤5.7.1,元胞收益值清零;
步骤5.7.2,读取元胞的当前状态from和翻转状态to;
步骤5.7.3,遍历元胞的所有邻接赋权有向超边e,若二维数组EDG[from][e]值为1,则将收益值加上赋权有向超边e的权值;若二维数组EDG[to][e]值为0,则将收益值减去赋权有向超边e的权值;
步骤5.7.4,返回元胞收益值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410137810.1A CN103902374B (zh) | 2014-04-08 | 2014-04-08 | 基于元胞自动机和赋权有向超图的云计算任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410137810.1A CN103902374B (zh) | 2014-04-08 | 2014-04-08 | 基于元胞自动机和赋权有向超图的云计算任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902374A true CN103902374A (zh) | 2014-07-02 |
CN103902374B CN103902374B (zh) | 2017-01-18 |
Family
ID=50993712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410137810.1A Expired - Fee Related CN103902374B (zh) | 2014-04-08 | 2014-04-08 | 基于元胞自动机和赋权有向超图的云计算任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902374B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005503A (zh) * | 2015-07-26 | 2015-10-28 | 孙凌宇 | 基于元胞自动机的云计算负载均衡任务调度方法 |
CN105159762B (zh) * | 2015-08-03 | 2018-09-07 | 冷子阳 | 基于贪心策略的启发式云计算任务调度方法 |
EP3230903A4 (en) * | 2014-12-10 | 2018-10-03 | Kyndi, Inc. | Apparatus and method for combinatorial hypermap based data representations and operations |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663216A (zh) * | 2012-05-16 | 2012-09-12 | 孙凌宇 | 基于结点属性函数的大规模集成电路的核值计算方法 |
CN102682176A (zh) * | 2012-05-18 | 2012-09-19 | 冷明 | 基于元胞自动机和赋权超图的大规模集成电路划分方法 |
-
2014
- 2014-04-08 CN CN201410137810.1A patent/CN103902374B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663216A (zh) * | 2012-05-16 | 2012-09-12 | 孙凌宇 | 基于结点属性函数的大规模集成电路的核值计算方法 |
CN102682176A (zh) * | 2012-05-18 | 2012-09-19 | 冷明 | 基于元胞自动机和赋权超图的大规模集成电路划分方法 |
Non-Patent Citations (2)
Title |
---|
孙凌宇、冷明等: "一种基于元胞自动机的无向图剖分优化算法", 《计算机工程与应用》 * |
孙凌宇、冷明等: "赋权有向图的最小生成树算法", 《计算机工程与应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3230903A4 (en) * | 2014-12-10 | 2018-10-03 | Kyndi, Inc. | Apparatus and method for combinatorial hypermap based data representations and operations |
US10985775B2 (en) | 2014-12-10 | 2021-04-20 | Kyndi, Inc. | System and method of combinatorial hypermap based data representations and operations |
CN105005503A (zh) * | 2015-07-26 | 2015-10-28 | 孙凌宇 | 基于元胞自动机的云计算负载均衡任务调度方法 |
CN105005503B (zh) * | 2015-07-26 | 2017-12-01 | 孙凌宇 | 基于元胞自动机的云计算负载均衡任务调度方法 |
CN105159762B (zh) * | 2015-08-03 | 2018-09-07 | 冷子阳 | 基于贪心策略的启发式云计算任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103902374B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885839B (zh) | 基于多水平划分法和赋权有向超图的云计算任务调度方法 | |
Jiang et al. | Scaling-up item-based collaborative filtering recommendation algorithm based on hadoop | |
Fischer et al. | Assigning tasks for efficiency in Hadoop | |
CN102693340B (zh) | 基于多水平划分法和赋权超图的大规模集成电路划分方法 | |
CN102682176B (zh) | 基于元胞自动机和赋权超图的大规模集成电路划分方法 | |
CN102662639A (zh) | 一种基于Mapreduce的多GPU协同计算方法 | |
CN103377032A (zh) | 一种基于异构多核芯片的细粒度科学计算并行处理装置 | |
Kajdanowicz et al. | Comparison of the efficiency of mapreduce and bulk synchronous parallel approaches to large network processing | |
WO2023116067A1 (zh) | 面向5g云边端协同的电力业务分解方法及*** | |
Song et al. | Fully GPU‐based electromagnetic transient simulation considering large‐scale control systems for system‐level studies | |
CN104679966A (zh) | 基于多层次方法和离散粒子群的赋权超图优化划分方法 | |
CN103902374A (zh) | 基于元胞自动机和赋权有向超图的云计算任务调度方法 | |
Kumari et al. | Exact, fast and scalable parallel dbscan for commodity platforms | |
CN105005503A (zh) | 基于元胞自动机的云计算负载均衡任务调度方法 | |
Danopoulos et al. | Fpga acceleration of approximate knn indexing on high-dimensional vectors | |
CN103870342B (zh) | 云计算环境中的基于结点属性函数的任务核值计算方法 | |
Fioretto et al. | A dynamic programming-based MCMC framework for solving DCOPs with GPUs | |
Huang et al. | An efficient parallel method for batched OS-ELM training using MapReduce | |
Herrera et al. | On a hybrid MPI-Pthread approach for simplicial branch-and-bound | |
Alsaryrah et al. | A fast iot service composition scheme for energy efficient qos services | |
Lo et al. | Mining and generating large-scaled social networks via MapReduce | |
Herrera et al. | Dynamic and hierarchical load-balancing techniques applied to parallel branch-and-bound methods | |
Rahmaniani et al. | An asynchronous parallel benders decomposition method for stochastic network design problems | |
Chan et al. | Coarse grained parallel algorithms for graph matching | |
Gavagsaz | Weighted spatial skyline queries with distributed dominance tests |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170118 Termination date: 20170408 |