CN112199177A - 基于遗传算法和计算拓扑模型的ska任务调度系统及方法 - Google Patents
基于遗传算法和计算拓扑模型的ska任务调度系统及方法 Download PDFInfo
- Publication number
- CN112199177A CN112199177A CN202011120020.4A CN202011120020A CN112199177A CN 112199177 A CN112199177 A CN 112199177A CN 202011120020 A CN202011120020 A CN 202011120020A CN 112199177 A CN112199177 A CN 112199177A
- Authority
- CN
- China
- Prior art keywords
- task
- ska
- scheduling scheme
- task scheduling
- genetic algorithm
- 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
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种基于遗传算法和计算拓扑模型的SKA任务调度系统及方法,包括:模块M1:根据并行任务各个子任务所需要的处理时间所构成的向量X、每个节点的数据处理能力组成的向量Y以及并行任务分配方案A,构建计算拓扑模型;模块M2:将并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间通过遗传算法得到次优调度方案;模块M3:将得到的次优调度方案通过计算拓扑模型得到任务调度方案,根据任务调度方案得到各个任务所需要的完成时间,重复触发模块M2至模块M3,直至迭代次数达到预设次数,得到最优SKA任务调度方案。本发明输入简单,用户可以方便快捷地构造任务依赖拓扑图文件,然后将其作为算法的输入。
Description
技术领域
本发明涉及大数据领域,具体地,涉及一种基于遗传算法和计算拓扑模型的SKA任务调度系统及方法,更为具体地,涉及一种针对平方公里阵列(SKA)射电天文望远镜通过遗传算法和计算拓扑模型找到一种优化的任务调度方案。
背景技术
随着数据收集和存储技术的发展,人类已经积累了大量的天文观测数据。在天文学领域,图像在这些数据中占据着越来越大的比重。因此,寻找最适合天文图像大数据处理的框架至关重要,而天文图像处理系统的目的则是通过提供可扩展和高效的数据存储和分析手段,帮助天文学家轻松使用编程模型。
平方公里阵列(SKA)是下一代望远镜,它将会产生世界上最大的数据量,其参与国家包括中国,澳大利亚,加拿大,意大利,新西兰,荷兰,南非,英国等。该项目预计总投资20亿美元。SKA项目的初衷是21世纪的宇宙论仍然有许多基本问题需要解决,如基本粒子的性质和基本力,宇宙的形成和演化以及暗物质的起源。因此,为了便于天文学家进一步观察早期宇宙的结构,需要建立更高灵敏度和探测速度的望远镜,SKA就是其中之一。SKA由数千个无线电波接收器和天线组成。这些设备连接到近1平方公里的接收区,使SKA成为历史上规模最大,最灵敏的射电望远镜群。
在以往的天文学观测模式中,一般都会有一个专家团队的工程师在专用服务器上处理收集的图像,再将其结果提炼成文本目录以供其他天文学家分析。相反,SKA的目标之一是为全球的天文学家提供对图像的直接接触,使得他们能够自行地对图像进行分析而不需要借助额外的计算机工程团队的帮助。这个案例强调需要有效的系统来支持图像数据的管理和分析:高效,易扩展且易于编程的系统,无需深入的系统专业知识进行部署和调整。令人惊讶的是,目前围绕支持大规模图像管理和分析的系统构建所进行的研究工作相当有限。Ras-daman和SciDB是两个众所周知的DBMS(数据库管理系统),专门用于存储和处理多维数组数据,经常用作图像分析。除了这些系统之外,为存储图像数据而开发的大多数其他工作主要针对基于关键字或相似性搜索的图像存储和检索。
除此之外,现如今许多数据流作业都是计算密集型和数据密集型的。例如,天文数据流应用程序产生大量的数据,并且需要巨大的计算能力来处理数据。传统上,高性能计算(HPC)设施针对处理这种计算密集型科学应用进行了优化。但是,它们不适合处理数据密集型工作负载。天文数据流管线的一个重要特征是管线既是数据密集型又是计算密集型。例如,对于SKA low,需要超过1TB/s的I/O和3PFLOPS/s的计算能力,这对计算架构和执行框架构成了巨大挑战。为了应对SDP(科学数据处理)数据流管道的巨大挑战并确其正确功能,主要研究当前成熟的SKA-SDP管道商用系统。
对于目前已有的一些大数据框架例如Spark,Flink或者Storm等等,他们普遍针对的是一些数据密集型的场景,对于科学界特别是天文界这种计算密集型的任务并不能完全契合。他们普遍的一个特点就是所有的任务的调度都是完全流水线化的,即每个任务每个阶段的触发顺序都是相同的,完全不需要针对任务的调度顺序有任何规划。对于一个通用框架来说这样做可以简化整个程序的任务调度,并且有较不错的性能,是可以接受的。但是这种方案因为其固定的调度顺序,没有考虑到不同场景下不同任务的特性,做到因地制宜,所以其并不是一个最优解。对于天文界的海量数据,即使是微小的性能差异也能产生巨大的影响。而如果对于每个任务我们都穷尽每一种调度方式从中找到最优解,那这个计算量也是目前的算力所不能承受的。所以当前的环境下,我们需要的是一个能够自动化找到并行任务调度方案的启发式算法,这个算法不一定需要找到最优的调度方案,只要能够在可以接受的时间内找到一个次优方案即可。于是我们的基于遗传算法和计算拓扑模型的任务调度算法应运而生。
专利文献CN102508708A(申请号:201110386958.5)公开了一种基于改进遗传算法的异构多核节能任务调度方法,它由用来确定任务优先级的改进遗传算法以及基于缩放优先级的节能调度算法组成,其流程为:(1)进行种群信息初始化;(2)进入循环体通过遗传算法确定任务优先级;(3)根据任务DAG图和划分策略,确定任务在处理器上的调度顺序;(4)根据任务节省能量与延长时间之间的关系,在可行的任务调度基础上进行动态电压缩放;(5)计算当前群体适应度并排序;(6)采用改进的遗传算法对种群进行更新,确定新的任务优先级,如果满足终止条件则退出,否则继续迭代。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于遗传算法和计算拓扑模型的SKA任务调度系统及方法。
根据本发明提供的一种基于遗传算法和计算拓扑模型的SKA任务调度系统,包括:
模块M1:服务器根据并行任务各个子任务所需要的处理时间构成向量X,根据CPU核心数得到每个节点的数据处理能力,将每个节点的数据处理能力组成向量Y,根据向量X、向量Y以及并行任务分配方案A,构建计算拓扑模型;
模块M2:服务器将并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间通过遗传算法得到次优调度方案;
模块M3:服务器将得到的次优调度方案通过计算拓扑模型得到任务调度方案,根据任务调度方案得到各个任务所需要的完成时间,重复触发模块M2至模块M3执行,直至迭代次数达到预设次数,得到最优SKA任务调度方案,根据最优SKA任务调度方案对并行任务进行调度。
优选地,所述模块M1中计算拓扑模型包括:
Y≈AX (1)
Ymax≥AX (2)
其中,Y表示每个节点的数据处理能力组成的向量Y;A表示并行任务分配方案用0-1矩阵表示;X表示每个任务需要的处理时间所构成的向量。
优选地,所述模块M2中并行任务各个子任务之间的依赖关系包括:将SKA天文计算管线任务按照依赖关系拆分成DAG图,SKA天文计算管线子任务是DAG图每个任务节点,并对DAG图以预设格式进行描述,输入遗传算法。
优选地,所述模块M2包括:
模块M2.1:将SKA天文计算任务的每个子任务根据各自的高度划分到不同的集合G(h),令NG(h)表示为G(h)的元素个数,生成一个介于0到NG(h)中的随机数r,从集合G(h)中随机挑选出r个子任务,将挑选出的r个子任务移出集合,并将r个子任务分配给当前的节点执行,获得合法的SKA管线计算任务的任务调度方案;重复触发模块M2.1执行,直至得到预设量的任务调度方案的SKA管线任务的次优调度方案。
优选地,所述模块M3包括:
模块M3.1:将SKA管线任务的次优调度方案,通过通过计算拓扑模型,基于Ymax≥AX约束,得到SKA计算任务调度方案;
模块M3.2:根据SKA计算任务调度方案和任务的执行顺序拓扑图,将同一个处理器上的SKA任务压缩为一个点,并且去除重复边。
根据本发明提供的一种基于遗传算法和计算拓扑模型的SKA任务调度方法,包括:
步骤M1:服务器根据并行任务各个子任务所需要的处理时间构成向量X,根据CPU核心数得到每个节点的数据处理能力,将每个节点的数据处理能力组成向量Y,根据向量X、向量Y以及并行任务分配方案A,构建计算拓扑模型;
步骤M2:服务器将并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间通过遗传算法得到次优调度方案;
步骤M3:服务器将得到的次优调度方案通过计算拓扑模型得到任务调度方案,根据任务调度方案得到各个任务所需要的完成时间,重复触发模块M2至模块M3执行,直至迭代次数达到预设次数,得到最优SKA任务调度方案,根据最优SKA任务调度方案对并行任务进行调度。
优选地,所述步骤M1中计算拓扑模型包括:
Y≈AX (1)
Ymax≥AX (2)
其中,Y表示每个节点的数据处理能力组成的向量Y;A表示并行任务分配方案用0-1矩阵表示;X表示每个任务需要的处理时间所构成的向量。
优选地,所述步骤M2中并行任务各个子任务之间的依赖关系包括:将SKA天文计算管线任务按照依赖关系拆分成DAG图,SKA天文计算管线子任务是DAG图每个任务节点,并对DAG图以预设格式进行描述,输入遗传算法。
优选地,所述步骤M2包括:
步骤M2.1:将SKA天文计算任务的每个子任务根据各自的高度划分到不同的集合G(h),令NG(h)表示为G(h)的元素个数,生成一个介于0到NG(h)中的随机数r,从集合G(h)中随机挑选出r个子任务,将挑选出的r个子任务移出集合,并将r个子任务分配给当前的节点执行,获得合法的SKA管线计算任务的任务调度方案;重复执行步骤M2.1,直至得到预设量的任务调度方案的SKA管线任务的次优调度方案。
优选地,所述步骤M3包括:
步骤M3.1:将SKA管线任务的次优调度方案,通过通过计算拓扑模型,基于Ymax≥AX约束,得到SKA计算任务调度方案;
步骤M3.2:根据SKA计算任务调度方案和任务的执行顺序拓扑图,将同一个处理器上的SKA任务压缩为一个点,并且去除重复边。
与现有技术相比,本发明具有如下的有益效果:
1、本发明不同于市面上已有的Spark和Flink等大数据框架的任务调度算法,该算法会针对不同任务本身的特点,对任务进行定制化调度,而不是简单地按顺序调度每个任务,在大部分情况下该算法理论上可以获得更高的吞吐量;
2、任务调度系统输入简单,用户可以方便快捷地构造任务依赖拓扑图文件,然后将其作为算法的输入,等待算法输出调度方案即可。得到任务调度方案以后,用户可以进一步开发任务执行框架,将任务调度方案作为输入,构造一个端到端的大数据计算框架。
3、本发明通过DAG结合遗传算法,能够对几乎所有的分布式计算任务进行最优调度方案的求解,从而拥有较短的任务完成时间和较高的吞吐率。
该方案拥有较短的任务完成时间和较高的吞吐率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本算法所用示例的计算拓扑图;
图2为简化后的处理器数据传输的拓扑图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明的目的是提出一个能够自动化找到并行任务调度方案的启发式算法,该算法通过遗传算法和拓扑模型能够在可以接受的时间内找到一个次优的并行任务调度方案。
一个并行任务分配案可以用0-1矩阵A表示。然后,我们可以根据每个任务需要的处理时间所构成的向量X,每个节点的数据处理能力组成的向量Y之间的关系近似建立一个线性方程组:Y≈AX。当X,Y已知时,根据线性方程的解可以得到某些调度方案A。同时,每个节点具有数据处理能力的上限Ymax,任何解决方案A都应满足不等式Ymax≥AX。
但是,可能存在满足上述方程式的多个矩阵A。尽管矩阵A的数量是有限的,但是对矩阵A进行穷举运算仍然是不可行。我们无法通过穷举方法找到A的最优解,此处,最优解是一个任务调度计划,可以让计算集群以最短的时间完成任务。在该算法中,我们将首先用遗传算法来寻找矩阵A的局部最优解,然后根据获得的局部最优解来分析方程Y≈AX,以探索是否可以对矩阵A进行优化。
本文的发明是通过以下技术手段来实现。本发明主要包括两个模块,模块一是一个遗传算法模块,该模块接受一个描述了并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间作的文件为输入,然后通过遗传算法得到一个初步的次优调度方案。因为遗传算法本身的特性,该方案一般情况下不会是最优的,但已经初步具有较高的性能。随后把得到的调度方案作为模块二的输入,通过模块二进一步得到更优的调度方案。
模块二是一个计算拓扑模型。该模型接受前面遗传算法模块计算得到的方案作为输入,由于之前模块一得到的方案是一个局部最优方案,我们需要在此基础上进行进一步的优化。通过模块二的计算拓扑模型,我们能够进行迭代,不断地朝最优解前进直到该解已经为最优或者满足我们的预期为止。
通过以上两个模块的结合,我们便可以得到一个并行任务调度方案的自动化启发式算法。
实施例1
根据本发明提供的一种基于遗传算法和计算拓扑模型的SKA任务调度系统,包括:
模块M1:服务器根据并行任务各个子任务所需要的处理时间构成向量X,根据CPU核心数得到每个节点的数据处理能力,将每个节点的数据处理能力组成向量Y,根据向量X、向量Y以及并行任务分配方案A,构建计算拓扑模型;
模块M2:服务器将并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间通过遗传算法得到次优调度方案;
模块M3:服务器将得到的次优调度方案通过计算拓扑模型得到任务调度方案,根据任务调度方案得到各个任务所需要的完成时间,重复触发模块M2至模块M3执行,直至迭代次数达到预设次数,得到最优SKA任务调度方案,根据最优SKA任务调度方案对并行任务进行调度。
具体地,所述模块M1中计算拓扑模型包括:
Y≈AX (1)
Ymax≥AX (2)
其中,Y表示每个节点的数据处理能力组成的向量Y;A表示并行任务分配方案用0-1矩阵表示;X表示每个任务需要的处理时间所构成的向量。
具体地,所述模块M2中并行任务各个子任务之间的依赖关系包括:将SKA天文计算管线任务按照依赖关系拆分成DAG图,SKA天文计算管线子任务是DAG图每个任务节点,并对DAG图以预设格式进行描述,输入遗传算法。
具体地,所述模块M2包括:
模块M2.1:将SKA天文计算任务的每个子任务根据各自的高度划分到不同的集合G(h),令NG(h)表示为G(h)的元素个数,生成一个介于0到NG(h)中的随机数r,从集合G(h)中随机挑选出r个子任务,将挑选出的r个子任务移出集合,并将r个子任务分配给当前的节点执行,获得合法的SKA管线计算任务的任务调度方案;重复触发模块M2.1执行,直至得到预设量的任务调度方案的SKA管线任务的次优调度方案。
具体地,所述模块M3包括:
模块M3.1:将SKA管线任务的次优调度方案,通过通过计算拓扑模型,基于Ymax≥AX约束,得到SKA计算任务调度方案;
模块M3.2:根据SKA计算任务调度方案和任务的执行顺序拓扑图,将同一个处理器上的SKA任务压缩为一个点,并且去除重复边。
根据本发明提供的一种基于遗传算法和计算拓扑模型的SKA任务调度方法,包括:
步骤M1:服务器根据并行任务各个子任务所需要的处理时间构成向量X,根据CPU核心数得到每个节点的数据处理能力,将每个节点的数据处理能力组成向量Y,根据向量X、向量Y以及并行任务分配方案A,构建计算拓扑模型;
步骤M2:服务器将并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间通过遗传算法得到次优调度方案;
步骤M3:服务器将得到的次优调度方案通过计算拓扑模型得到任务调度方案,根据任务调度方案得到各个任务所需要的完成时间,重复触发模块M2至模块M3执行,直至迭代次数达到预设次数,得到最优SKA任务调度方案,根据最优SKA任务调度方案对并行任务进行调度。
具体地,所述步骤M1中计算拓扑模型包括:
Y≈AX (1)
Ymax≥AX (2)
其中,Y表示每个节点的数据处理能力组成的向量Y;A表示并行任务分配方案用0-1矩阵表示;X表示每个任务需要的处理时间所构成的向量。
具体地,所述步骤M2中并行任务各个子任务之间的依赖关系包括:将SKA天文计算管线任务按照依赖关系拆分成DAG图,SKA天文计算管线子任务是DAG图每个任务节点,并对DAG图以预设格式进行描述,输入遗传算法。
具体地,所述步骤M2包括:
步骤M2.1:将SKA天文计算任务的每个子任务根据各自的高度划分到不同的集合G(h),令NG(h)表示为G(h)的元素个数,生成一个介于0到NG(h)中的随机数r,从集合G(h)中随机挑选出r个子任务,将挑选出的r个子任务移出集合,并将r个子任务分配给当前的节点执行,获得合法的SKA管线计算任务的任务调度方案;重复执行步骤M2.1,直至得到预设量的任务调度方案的SKA管线任务的次优调度方案。
具体地,所述步骤M3包括:
步骤M3.1:将SKA管线任务的次优调度方案,通过通过计算拓扑模型,基于Ymax≥AX约束,得到SKA计算任务调度方案;
步骤M3.2:根据SKA计算任务调度方案和任务的执行顺序拓扑图,将同一个处理器上的SKA任务压缩为一个点,并且去除重复边。
实施例2
实施例2是实施例1的变化例
下面结合具体实例,详细介绍。本实例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体操作过程。
首先我们使用一个并行任务作业作为我们的示例,该作业的计算拓扑图如图1所示。
我们将该作业的任务之间的依赖关系转化为一个输入文件,该输入文件的格式如下所示:
第一排有三个数字,分别代表总的任务数量(41),任务之间的依赖关系的个数(120),即图中边的个数和计算节点的个数(7)。第二排则是每个任务的运行所需时间,0号任务的运行时间位于第一个,1号任务的运行时间位于第二个,以此类推,中间用空格隔开。从第三排开始,每一行代表一个任务间的依赖关系。例如01就代表1号任务需要等待0号任务完成才能开始。所以对于该计算任务,将会有120行依赖关系。
将输入文件输入到我们的遗传算法模块中以后,算法将会开始执行。通常遗传算法由一下四个步骤组成:
1、初始化:随机生成搜索节点的初始种群。
2、目标函数的评估:根据目标函数计算每个节点的适应度值。
3、遗传操作:根据搜索节点的适应度挑选出较为优秀的种群,并将遗传操作应用于该种群来随机生成新的搜索节点。重复步骤2和3,直到算法收敛。
给定一个计算拓扑图TG=(V,E)
Ti是Tj的前任,Tj是Ti的后任,如果存在一条边ei,j∈E,令PRED(Ti)是所有Ti的前任组成的集合,SUCC(Ti)是所有Ti后任组成的集合,图中任意一个任务节点Ti的高度
首先在初始化阶段,我们需要使用算法一随机生成搜索节点的初始种群,该算法为任务拓扑随机生成一个在p个节点上的调度算法,算法一如下:
算法一
Step1:计算每一个任务的高度height
Step2:将任务根据各自的height划分到不同的集合G(h),G(h)为height为h的任务的集合。
Step3:为前p–1个节点每个结点进行Step4.
Step4:令NG(h)为G(h)中的元素个数,生成一个介于0到NG(h)中的随机数r,从集合G(h)中挑选出r个任务出来,将他们移出集合,并且将这r个任务分配给当前的结点执行。
Step5:经过p–1轮Step4以后,将每个G(h)集合中剩余的任务全部分配给第p个节点。
每次运行算法一我们都会得到一个初始化的合法的任务调度方案,通过多次执行,我们可以得到一个初始种群。
然后我们定义一个目标函数:
有了算法一和目标函数以后,我们就可以开始我们的整个遗传算法了,即为下面的算法二:
算法二
Step1:运行N次算法一,得到N个调度方案,将他们作为一个种群集合P
Step2:重复进行Step3到Step6直到算法收敛
Step3:对集合P进行繁殖操作,反复从集合P中随机挑选一个调度方案到一个新的集合NewP,其中目标函数越大的调度方案被随机挑选中的概率越大,最后将P中目标函数最大的调度方案也放入到NewP中。令NP为NewP中元素个数。
Step4:反复执行Step5NP/2次。
Step5:从NewP中随机挑选2个方案,以一定的概率Pcross对其进行方案的组合,此处保证组合后方案的合法性。如果没有组合,则将这两个方案均放入一个新的集合TMP中,否则将组合后得到的方案放入TMP中。
Step6:对TMP中每一个方案,以概率Pmutation对其中两个高度一样的任务所在的节点进行交换。无论若交换则将交换后的方案放入集合P中,否则将该方案直接放入P中。
该算法将会在收敛时终止。若种群中的最佳方案的目标函数值在多次迭代后未发生改变
即可看做已经收敛。
通过上述模型一,我们可以得到一个任务调度方案,最后的输出有P行,每行分别对应一个计算节点。每行有多个由逗号隔开的数字,如
[0,5,8,11,21,31]
他们代表的是每个任务的编号,如果输出的第一行是上述的数组,那么他的意思就是编号为0、5、8、11、21、31的任务分配给第一个计算节点进行计算。其他的计算节点以此类推。于是我们便可以由此构造出一个0-1调度方案矩阵A*。
随后我们进入模块二,模块二的输入就是模块一的输出:0-1矩阵A*。
通过模块二我们希望使用计算拓扑模型在A*的基础上得到一个更好的任务调度方案。
模型描述:假设有一个串行和混合任务处理系统N1,系统中总共有n个待处理任务,使用向量X=(X1,…,Xn)T表示每个任务所需要的运行时间。第k个任务的所需要的运行时间为Xk。系统共有m个处理器,每个任务在任一时刻可以分配给其中一个处理器进行处理,向量Y=(Y1,…,Yn)T用于表示处理器的数据处理能力,其中Yi表示第i个处理器的处理数据能力。
令A=(aij)m×n作为任务调度矩阵。则矩阵A,任务的运行时间向量X和处理器的数据处理能力向量Y之间的关系可以表示为Y=AX。需要说明的是,此处的数据处理能力是指一段时间内的处理能力,而不是某一时刻的数据处理能力。
每个处理器都有自己的数据处理能力上限,用Ymax=(y1max,…,yimax)T表示,其中yimax表示第i个处理器的数据处理能力的上限。每个处理器的数据处理能力不应超过其上限,因此我们有以下不等式:
Ymax≥AX
结合遗传算法的计算拓扑模型:
通常,每个任务的数据处理能力是已知的。当我们得到一个任务处理的调度计划时,则任务调度矩阵A便会相应确定,这意味着每个处理器的数据处理能力矩阵Y,可以通过上述公式计算。
如前面所述,任务调度方案A*可以通过遗传算法获得,该矩阵可以很容易地从4.1节中的表示进行转换得到。令Y*=A*X,这意味着Y*矩阵代表了每个任务处理器的数据处理能力。我们想要通过求解方程Y*=A*X得到所有任务调度方法A,同时使A满足不等式Ymax>AX,其中X,Y*,Ymax是已知的。然后对矩阵A进行分析以找出是否有比A*更好的任务计划。
假设我们现在已经计算出最佳任务调度矩阵A,如第4.1节中所述,我们便可以根据任务的调度矩阵(即A)和任务的执行顺序拓扑图(如图1所示)生成处理器数据传输模型。图1中每个节点的编号将被替换为分配给该任务的处理器的编号,并且在同一阶段由同一处理器处理的任务将合并为一个点,最后重复的有向边将被删除。根据以上步骤,我们可以得到处理器数据传输的拓扑图。由于图形过于复杂,因此我们使用图2表示该拓扑图。如果表中第i行,第j列的数字为1,则表示拓扑图中的第i点至第j点有一个有向边,每个点代表一个处理器。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于遗传算法和计算拓扑模型的SKA任务调度系统,其特征在于,包括:
模块M1:服务器根据并行任务各个子任务所需要的处理时间构成向量X,根据CPU核心数得到每个节点的数据处理能力,将每个节点的数据处理能力组成向量Y,根据向量X、向量Y以及并行任务分配方案A,构建计算拓扑模型;
模块M2:服务器将并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间通过遗传算法得到次优调度方案;
模块M3:服务器将得到的次优调度方案通过计算拓扑模型得到任务调度方案,根据任务调度方案得到各个任务所需要的完成时间,重复触发模块M2至模块M3执行,直至迭代次数达到预设次数,得到最优SKA任务调度方案,根据最优SKA任务调度方案对并行任务进行调度。
2.根据权利要求1所述的基于遗传算法和计算拓扑模型的SKA任务调度系统,其特征在于,所述模块M1中计算拓扑模型包括:
Y≈AX (1)
Ymax≥AX (2)
其中,Y表示每个节点的数据处理能力组成的向量Y;A表示并行任务分配方案用0-1矩阵表示;X表示每个任务需要的处理时间所构成的向量。
3.根据权利要求1所述的基于遗传算法和计算拓扑模型的SKA任务调度系统,其特征在于,所述模块M2中并行任务各个子任务之间的依赖关系包括:将SKA天文计算管线任务按照依赖关系拆分成DAG图,SKA天文计算管线子任务是DAG图每个任务节点,并对DAG图以预设格式进行描述,输入遗传算法。
4.根据权利要求3所述的基于遗传算法和计算拓扑模型的SKA任务调度系统,其特征在于,所述模块M2包括:
模块M2.1:将SKA天文计算任务的每个子任务根据各自的高度划分到不同的集合G(h),令NG(h)表示为G(h)的元素个数,生成一个介于0到NG(h)中的随机数r,从集合G(h)中随机挑选出r个子任务,将挑选出的r个子任务移出集合,并将r个子任务分配给当前的节点执行,获得合法的SKA管线计算任务的任务调度方案;重复触发模块M2.1执行,直至得到预设量的任务调度方案的SKA管线任务的次优调度方案。
5.根据权利要求3所述的基于遗传算法和计算拓扑模型的SKA任务调度系统,其特征在于,所述模块M3包括:
模块M3.1:将SKA管线任务的次优调度方案,通过通过计算拓扑模型,基于Ymax≥AX约束,得到SKA计算任务调度方案;
模块M3.2:根据SKA计算任务调度方案和任务的执行顺序拓扑图,将同一个处理器上的SKA任务压缩为一个点,并且去除重复边。
6.一种基于遗传算法和计算拓扑模型的SKA任务调度方法,其特征在于,包括:
步骤M1:服务器根据并行任务各个子任务所需要的处理时间构成向量X,根据CPU核心数得到每个节点的数据处理能力,将每个节点的数据处理能力组成向量Y,根据向量X、向量Y以及并行任务分配方案A,构建计算拓扑模型;
步骤M2:服务器将并行任务各个子任务之间的依赖关系以及各个任务所需要的完成时间通过遗传算法得到次优调度方案;
步骤M3:服务器将得到的次优调度方案通过计算拓扑模型得到任务调度方案,根据任务调度方案得到各个任务所需要的完成时间,重复触发模块M2至模块M3执行,直至迭代次数达到预设次数,得到最优SKA任务调度方案,根据最优SKA任务调度方案对并行任务进行调度。
7.根据权利要求6所述的基于遗传算法和计算拓扑模型的SKA任务调度方法,其特征在于,所述步骤M1中计算拓扑模型包括:
Y≈AX (1)
Ymax≥AX (2)
其中,Y表示每个节点的数据处理能力组成的向量Y;A表示并行任务分配方案用0-1矩阵表示;X表示每个任务需要的处理时间所构成的向量。
8.根据权利要求6所述的基于遗传算法和计算拓扑模型的SKA任务调度方法,其特征在于,所述步骤M2中并行任务各个子任务之间的依赖关系包括:将SKA天文计算管线任务按照依赖关系拆分成DAG图,SKA天文计算管线子任务是DAG图每个任务节点,并对DAG图以预设格式进行描述,输入遗传算法。
9.根据权利要求8所述的基于遗传算法和计算拓扑模型的SKA任务调度方法,其特征在于,所述步骤M2包括:
步骤M2.1:将SKA天文计算任务的每个子任务根据各自的高度划分到不同的集合G(h),令NG(h)表示为G(h)的元素个数,生成一个介于0到NG(h)中的随机数r,从集合G(h)中随机挑选出r个子任务,将挑选出的r个子任务移出集合,并将r个子任务分配给当前的节点执行,获得合法的SKA管线计算任务的任务调度方案;重复执行步骤M2.1,直至得到预设量的任务调度方案的SKA管线任务的次优调度方案。
10.根据权利要求8所述的基于遗传算法和计算拓扑模型的SKA任务调度方法,其特征在于,所述步骤M3包括:
步骤M3.1:将SKA管线任务的次优调度方案,通过通过计算拓扑模型,基于Ymax≥AX约束,得到SKA计算任务调度方案;
步骤M3.2:根据SKA计算任务调度方案和任务的执行顺序拓扑图,将同一个处理器上的SKA任务压缩为一个点,并且去除重复边。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011120020.4A CN112199177B (zh) | 2020-10-19 | 2020-10-19 | 基于遗传算法和计算拓扑模型的ska任务调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011120020.4A CN112199177B (zh) | 2020-10-19 | 2020-10-19 | 基于遗传算法和计算拓扑模型的ska任务调度系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199177A true CN112199177A (zh) | 2021-01-08 |
CN112199177B CN112199177B (zh) | 2023-03-31 |
Family
ID=74009391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011120020.4A Active CN112199177B (zh) | 2020-10-19 | 2020-10-19 | 基于遗传算法和计算拓扑模型的ska任务调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199177B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434283A (zh) * | 2021-08-26 | 2021-09-24 | 广州三七互娱科技有限公司 | 服务调度方法及装置、服务器、计算机可读存储介质 |
CN114138519A (zh) * | 2021-09-28 | 2022-03-04 | 天津大学 | 一种基于dag的并行程序的通信模式表示方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130139169A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Job scheduling to balance energy consumption and schedule performance |
CN103902375A (zh) * | 2014-04-11 | 2014-07-02 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
CN106155799A (zh) * | 2016-08-03 | 2016-11-23 | 上海理工大学 | 基于遗传算法的Codelet调度方法 |
CN106201701A (zh) * | 2016-07-14 | 2016-12-07 | 扬州大学 | 一种带任务重复的工作流调度算法 |
CN107688909A (zh) * | 2017-09-07 | 2018-02-13 | 上海振华重工(集团)股份有限公司 | 一种基于遗传算法的自动化堆场调度方法和系统 |
CN108009003A (zh) * | 2017-12-01 | 2018-05-08 | 湖南女子学院 | 一种多目标虚拟机自适应位置选择方法、分布式云系统 |
CN109344463A (zh) * | 2018-09-14 | 2019-02-15 | 北京航空航天大学 | 电子产品应力云仿真平台的两阶段调度方法 |
CN111445111A (zh) * | 2020-03-09 | 2020-07-24 | 国网江苏省电力有限公司南京供电分公司 | 一种基于边缘协同的电力物联网任务分配方法 |
-
2020
- 2020-10-19 CN CN202011120020.4A patent/CN112199177B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130139169A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Job scheduling to balance energy consumption and schedule performance |
CN103902375A (zh) * | 2014-04-11 | 2014-07-02 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
CN106201701A (zh) * | 2016-07-14 | 2016-12-07 | 扬州大学 | 一种带任务重复的工作流调度算法 |
CN106155799A (zh) * | 2016-08-03 | 2016-11-23 | 上海理工大学 | 基于遗传算法的Codelet调度方法 |
CN107688909A (zh) * | 2017-09-07 | 2018-02-13 | 上海振华重工(集团)股份有限公司 | 一种基于遗传算法的自动化堆场调度方法和系统 |
CN108009003A (zh) * | 2017-12-01 | 2018-05-08 | 湖南女子学院 | 一种多目标虚拟机自适应位置选择方法、分布式云系统 |
CN109344463A (zh) * | 2018-09-14 | 2019-02-15 | 北京航空航天大学 | 电子产品应力云仿真平台的两阶段调度方法 |
CN111445111A (zh) * | 2020-03-09 | 2020-07-24 | 国网江苏省电力有限公司南京供电分公司 | 一种基于边缘协同的电力物联网任务分配方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434283A (zh) * | 2021-08-26 | 2021-09-24 | 广州三七互娱科技有限公司 | 服务调度方法及装置、服务器、计算机可读存储介质 |
CN113434283B (zh) * | 2021-08-26 | 2021-11-26 | 广州三七互娱科技有限公司 | 服务调度方法及装置、服务器、计算机可读存储介质 |
CN114138519A (zh) * | 2021-09-28 | 2022-03-04 | 天津大学 | 一种基于dag的并行程序的通信模式表示方法及装置 |
CN114138519B (zh) * | 2021-09-28 | 2024-05-03 | 天津大学 | 一种基于dag的并行程序的通信模式表示方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112199177B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pearce et al. | Faster parallel traversal of scale free graphs at extreme scale with vertex delegates | |
JáJá | Parallel algorithms | |
Wah et al. | Multiprocessing of combinatorial search problems | |
Talbi et al. | Parallel approaches for multiobjective optimization | |
Grigori et al. | Parallel symbolic factorization for sparse LU with static pivoting | |
CN112199177B (zh) | 基于遗传算法和计算拓扑模型的ska任务调度系统及方法 | |
CN110362780B (zh) | 一种基于申威众核处理器的大数据张量典范分解计算方法 | |
US20130226966A1 (en) | Processing a hierarchical structure to respond to a query | |
Ohno et al. | Accelerating spark RDD operations with local and remote GPU devices | |
Zhao et al. | v pipe: A virtualized acceleration system for achieving efficient and scalable pipeline parallel dnn training | |
Jeon et al. | Parallel exact inference on a CPU-GPGPU heterogenous system | |
Campeanu et al. | Component allocation optimization for heterogeneous CPU-GPU embedded systems | |
Moustafa et al. | 3D cartesian transport sweep for massively parallel architectures with PARSEC | |
Bu et al. | An improved PSO algorithm and its application to grid scheduling problem | |
Herrera et al. | On a hybrid MPI-Pthread approach for simplicial branch-and-bound | |
CN113986816B (zh) | 可重构计算芯片 | |
CN106874215B (zh) | 一种基于Spark算子的序列化存储优化方法 | |
Boureima et al. | Distributed out-of-memory nmf of dense and sparse data on cpu/gpu architectures with automatic model selection for exascale data | |
Ozdal et al. | Graph analytics accelerators for cognitive systems | |
Searles et al. | Creating a portable, high-level graph analytics paradigm for compute and data-intensive applications | |
Bakhtizin et al. | The development of the agent-based demography and migration model of Eurasia and its supercomputer implementation | |
Dubey et al. | GPU computing for compute-intensive scientific calculation | |
US11734605B2 (en) | Allocating computations of a machine learning network in a machine learning accelerator | |
Savadi et al. | Multi-DaC programming model: A variant of multi-BSP model for divide-and-conquer algorithms | |
US20210342673A1 (en) | Inter-processor data transfer in a machine learning accelerator, using statically scheduled instructions |
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 |