CN103294535A - 最大化磁盘缓存效果的工作流作业调度装置及方法 - Google Patents
最大化磁盘缓存效果的工作流作业调度装置及方法 Download PDFInfo
- Publication number
- CN103294535A CN103294535A CN2012105166911A CN201210516691A CN103294535A CN 103294535 A CN103294535 A CN 103294535A CN 2012105166911 A CN2012105166911 A CN 2012105166911A CN 201210516691 A CN201210516691 A CN 201210516691A CN 103294535 A CN103294535 A CN 103294535A
- Authority
- CN
- China
- Prior art keywords
- resource
- workflow
- size
- computing node
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000000694 effects Effects 0.000 title abstract description 5
- 230000003139 buffering effect Effects 0.000 claims description 35
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000005259 measurement Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 239000012634 fragment Substances 0.000 description 7
- 238000013396 workstream Methods 0.000 description 7
- 238000012300 Sequence Analysis Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000003750 conditioning effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000012882 sequential analysis Methods 0.000 description 2
- 208000000659 Autoimmune lymphoproliferative syndrome Diseases 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 239000002773 nucleotide Substances 0.000 description 1
- 125000003729 nucleotide group Chemical group 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001932 seasonal effect Effects 0.000 description 1
- 238000002864 sequence alignment Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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/468—Specific access rights for resources, e.g. using capability register
Abstract
本发明涉及一种工作流作业调度装置和方法。本发明装载资源使用概况,从计算节点中选择任意一个,确定能够由所选计算节点同时执行的作业数目、以及无需在所选计算节点中进行磁盘缓存释放操作就能使用的可用磁盘缓存的大小,确定输入文件的数目和大小,使得同时进行的作业要在磁盘缓存中缓存的文件大小之和小于可用磁盘缓存的大小,以及通过基于输入文件的确定数目和确定大小而分组或划分作业,来确定作业要在其上执行的计算节点,由此划分作业以最大化磁盘缓存效果。
Description
相关申请的交叉引用
本申请要求2012年2月29日提交的韩国专利申请第10-2012-0020792号的权益,由此通过引用将其全部合并在本申请中。
技术领域
本发明涉及资源管理和作业调度方法,其在通过高性能局域网连接的高性能计算系统(或超级计算机)上自动执行以流水线方式实现的大规模数据并行/分布作业,并且随后获得执行结果。
背景技术
在例如现有的超级计算机和高性能集群(clusters)的各种类型的计算资源的环境中,工作流管理系统、资源管理系统、作业调度器等已经被利用,以便采用批处理的方式来执行与代替人处理大规模数据的科学计算相关的作业、或者在其中在作业的几个步骤之间存在依赖性的多个复杂作业。
通常,工作流管理系统是用于创建工作流的软件系统,其中一系列作业经由用户友好界面彼此关联,与例如高性能计算机、网格、和网络服务这样的各种类型的计算资源相结合来执行所创建的工作流,并且报告执行结果。传统的工作流管理系统包括Tavema、Galaxy、Kepler等。
资源管理系统是用于处理高性能计算机或集群的计算资源的管理以及作业的成批执行的软件系统,并且包括基于便携批处理系统(PBS)的OpenPBS、TORQUE和PBS pro,并附加包括用于资源管理的简单Linux工具(SLURM)、Oracle网格引擎等。典型地,这样的资源管理系统使用先来先服务(FCFS)作业调度。
作业调度器主要与资源管理系统结合使用,并且是用于当通过将在作业队列中的作业的优先级和请求的资源量与可用资源的类型和量进行比较来动态地改变作业的执行顺序时、执行作业的软件系统。传统的作业调度器包括Maui、应用程序级安置调度器(ALPS)、负载共享仪器(LSF)、Moab等。
进一步地,关于涉及工作流的传统技术,已经存在(在公开号为2010-0133418的韩国未审查专利申请中公开的)使用用于获得资源的当前信息并分配作业的技术、从所有资源的立场来考虑作业分配的方法。然而,还未设计出有效利用存在于设备中的磁盘高速缓存的方法,并因此存在其中设备的性能没有被充分利用的问题。
例如,在包括基因组序列分析在内的大多数科学应用领域的技术中,存在很多情况,其中想要的结果是通过组合先前开发的应用程序来获得的。因此,工作流(或流水线)被配置为具有基于时间序列的依赖性和数据依赖性的应用程序(作业)的序列流,并且随后基于这样的依赖性执行作业。这样的工作流可能具有各种大小,从包含一个或两个应用的简单形式的大小到其中组合有几十到几百个应用的组合形式的大小。
因此,为了将这样的工作流映射到合适的计算资源并有效地得到结果,需要关于构成工作流的作业所需的计算资源的精确的信息。然而,对于除了对应应用的开发者之外的人来说,找出关于实际执行作业的应用程序使用资源的信息(例如,指示每个应用程序所需的CPU的数目、内存的数量、盘的数量、以及网络带宽的数量的信息)是非常困难的。进一步地,用于从源代码获得资源使用概况(profile)的分析工具的开发已经相对停滞(inactive)。
因此,当想要使用传统工作流管理系统、资源管理系统、以及作业调度器时,向计算资源有效分配工作流的作业是非常困难的。因此,由于基因组分析应用的常规用户不具有关于用于分析基因组序列的作业所需的计算资源的数量的确切知识,所以出现的问题在于,他们请求比所需要的数量更大数量的资源并执行工作流,由此导致浪费了高性能计算资源。
发明内容
因此,紧记在现有技术中发生的上述问题,已经做出了本发明,并且本发明的目的是提供工作流作业调度方法和装置,其通过关联由工作流管理系统、资源管理系统、作业调度器等提供的功能,在想要执行由经由文件的输入/输出互相连接的作业的几个步骤组成的工作流时,能够最大化磁盘缓存效果,因此改善了物理计算资源的使用率。
本发明的另一个目的是提供工作流作业调度方法和装置,其通过主动监控在执行作业时计算资源的使用并且将监控使用信息更新为资源使用概况,并且随后在执行后继工作流时参考资源使用概况,来改善工作流执行的性能,所述方法和装置是考虑到以下事实而配置的:计算资源的有效使用以及资源的使用率必须被提高,以便减少由必须在高性能计算机(或集群)环境中处理大规模数据的多步骤作业组成的工作流的执行时间和成本。
根据要实现上述目的的本发明的一个方面,提供一种工作流作业调度装置,包括资源概况管理单元,用于存储包括关于计算节点实际使用的资源数量的使用信息的工作流的资源使用概况;计算资源监控单元,用于当预定作业正由计算资源执行时,测量关于计算资源的作业实际使用的计算资源的使用信息,并且向资源概况管理单元报告测量结果,以便更新资源使用概况;以及作业划分单元,用于装载资源概况管理单元的资源使用概况,从计算节点中选择任意一个,确定能够由所选计算节点同时执行的作业数目、以及无需进行在所选计算节点中的磁盘缓存释放操作就能使用的可用磁盘缓存的大小,确定输入文件的数目和大小,以便同时发生的作业在磁盘缓存中所要缓存的文件大小之和小于可用磁盘缓存的大小,并且通过基于输入文件的确定数目和确定大小而分组或划分作业,来确定作业要在其上执行的计算节点。
根据要实现上述目的的本发明的另一方面,提供由调度装置执行的工作流作业调度方法,包括由资源概况管理单元装载资源使用概况,从计算节点中选择任意一个,确定能够由所选计算节点同时执行的作业数目以及无需进行在所选计算节点中的磁盘缓存释放操作就能使用的可用磁盘缓存的大小,确定输入文件的数目和大小,使得同时发生的作业在磁盘缓存中所要缓存的文件大小之和小于可用磁盘缓存的大小,并且通过基于输入文件的确定数目和确定大小而分组或划分作业,来确定作业要在其上执行的计算节点。
附图说明
根据下面的结合附图进行的详细描述,本发明的上述及其他目的、特征和优点将被更清楚地理解,其中:
图1是示出了工作流的基本处理的图;
图2是示出了用于基因组序列分析的工作流的处理序列的图;
图3是示出了根据本发明的实施例的工作流作业调度装置的结构的框图;
图4是示出了根据本发明的实施例的工作流作业调度方法的流程图;
图5是详细示出了图4的作业划分步骤的流程图;以及
图6是示出了用于计算能够由图5的计算节点同时执行的作业的数目的方法的流程图。
具体实施方式
在下文中,将参考附图来详细描述本发明的各种实施例。进一步地,与以下描述中使用的部件相关的术语“单元”和“设备”仅仅是为了本说明书描述的简单而分派的,并且可以一起使用并利用硬件或软件来设计。
进一步地,将参考附图和图中描述的内容来详细描述本发明的实施例,但是本发明不限于或约束于那些实施例。
本发明提出了用于作为流水线实现的工作流的作业调度方法,其中每一步骤的输出文件作为输入被应用到后继步骤。在本发明中提出的调度方法被配置用来监控在执行工作流时实际计算资源中所使用的计算资源的数量,并且持续反馈监控结果到后继工作流的执行中。
图1是示出了工作流的基本处理的图。
根据实施例,工作流被这样实现,使得初始输入文件101的数据被存储并通过中间文件1102和中间文件2103的步骤,并然后生成结果文件104的数据。也就是说,工作流(或流水线)以这样的方式被处理,使得存储为单个作业结果的文件由后继作业作为输入来接收,并然后执行后继作业。
进一步地,工作流的输入文件101的数据以文件的形式被存储。输入数据的划分或合并不影响整个工作流的结果,并由此输入数据可以简单地被划分为多个文件,或者输入数据的多个片断可以被合并,以改善计算性能。
图2是示出了用于基因组序列分析的工作流的处理序列的图。
用于基因组序列分析的工作流或流水线对应于其中经由输入/输出文件来连接步骤的工作流的实施例。
进一步地,用于基因组序列分析的这个流水线执行作业,所述作业用于读取在其中存储基因组片段的输入文件,将输入文件与参考基因组相比较,并随后在对齐(align)片段的序列时完成整个基因组的序列(重排序方法)。特别地,图2对应于使用bwa和samtools(它们是基因组序列分析工具)的基因组序列分析的工作流的实施例。
在实施例中,在步骤S201,作为工作流的第一个作业的参考索引作业基于其序列分析已经完成的参考基因组,生成执行快速搜索所需要的索引。这个作业在预备(preliminary)步骤中进行,并且随后不再重复。
接下来,基因组片段映射(在步骤S202的基因组读取映射)作业被配置用来装载(FASTQ文件格式的)序列读取文件,搜索与单个基因组片段相似的参考基因组的部分,并且输出具有扩展名“sai”的文件,在该序列读取文件中,从诸如Illumina顺序分析仪(sequencer)这样的碱基序列(base sequence)分析器输出的基因组片段(在图中,假定采用单端读取)以文本的形式被存储。
接下来,序列对齐/映射(SAM)转换作业S203被配置用来读取被存储为扩展名“sai”的文件、参考索引文件、以及初始输入的基因组序列片段(序列读取)文件,并随后输出SAM格式的结果文件。
接下来,二进制对齐/映射(BAM)转换作业S204被配置用来转换SAM文件为二进制版本。
随后,BAM排序作业S205被配置用来将BAM格式文件排序,以改善后继作业的速度。
进一步地,在步骤S202到步骤S205处的作业在每个输入文件上执行。
接下来,BAM合并作业S206被配置用来合并在步骤S205处获得的BAM排序作业的全部结果,并将合并的结果存储为单个文件。其后,单核苷酸多态性(SNP)调用(calling)作业S207被配置用来找到基因组数据中不同于参考基因组的碱基。
基于所述步骤的基因组序列分析的流水线是用于基因组序列分析的各种流水线的示例。在用于基因组序列分析的流水线中,输入数据的大小扩展到几百吉字节(GB),并且包括中间生成文件和最终结果文件的总数据的大小扩展到几万亿字节(TB)。因此,为了方便,这些基因组片段(基因组读数)被划分并存储在几十到几百(或几千)个文件中,并且这些文件被指定为序列分析流水线的输入文件,并且随后执行分析作业。作为基因组读数的事实上的(a de fecto)标准数据格式,FASTQ格式被广泛使用。这些文件可以被简单地划分和合并。此后,将描述用于图2的基因组工作流的实施例的工作流作业调度。
特别地,在与磁盘缓存效果相关地执行基因组工作流时,参考索引输入文件、基因组序列读取输入文件(例如1.fastq)、基因组读取映射作业的输出文件(例如1.sai)、SAM转换作业的输出文件(例如1.sam)、BAM转换作业的输出文件(例如1.bam)、以及BAM排序作业的输出文件(例如1.sorted.bam)可以被考虑。
因此,如图2所示,当执行从基因组读取映射作业S202到BAM排序作业S205的范围内的流水线时,6个文件从磁盘读出或者写入磁盘。
也就是说,在基因组读取映射作业S202之后,参考索引文件、基因组序列读取输入文件、以及基因组读取映射S202的输出文件(sai)在磁盘缓存中存在。
进一步地,在SAM转换作业S203处,基因组读取映射作业S202的结果文件被从磁盘读取并且随后对应的作业被执行。基因组读取映射作业S202的输入文件和结果文件已经在磁盘缓存中存在,以便文件从内存中被读取而无需访问磁盘,因此使得作业能够被快速执行。以这种方式,由于在先前步骤中写入磁盘的文件在磁盘缓存中存在,所以如果在后继步骤中、先前步骤的文件在磁盘缓存中存在的话,可改善作业效率。
因此,本发明公开了能够通过有效管理磁盘缓存来改善作业效率的方案,如在前面的情况下那样。
图3是示出了根据本发明的实施例的工作流作业调度装置的结构的图。
当执行工作流时,工作流作业调度装置可得到关于作业使用资源的反馈信息,而当执行后继工作流时,工作流作业调度装置可使用该资源使用信息以用于调度。
工作流作业调度装置包括所有的工作流创建单元、工作流引擎单元、集体资源管理单元、集体作业调度器单元、以及计算资源作业管理单元,作为用于执行现有工作流管理系统、资源管理系统、和作业调度器的基础核心功能的部件。进一步地,工作流作业调度装置包括资源概况管理单元、作业划分单元、以及计算资源监控单元,作为用于实现本发明中新提出的手段的部件。
根据实施例,为了允许甚至那些不熟悉计算资源的操作系统(OS)的用户容易地使用计算资源,需要用户友好的界面。为了这个目的,工作流作业调度装置的单个部件执行下述操作。
工作流创建单元301提供接口,其允许用户经由图形用户界面(GUI)容易地定义和执行所需的工作流。
工作流引擎单元304使用各种计算资源来执行定义的工作流,并以GUI的形式提供执行结果给用户。
集体资源管理单元305位于服务(或登录)节点内,并被配置用于管理配置信息,所述配置信息是关于向用户提供计算服务的高性能(超级)计算机的所有计算资源(所有计算节点的连接体系结构)、单个节点的资源状态、对节点的分配或未分配资源等。
集体作业调度器单元306位于高性能计算机的服务节点内,并被配置用于取决于作业的优先权和可用资源的存在或缺失来向计算资源分配在作业队列中等待被分配资源的作业,并执行这些作业。
计算资源作业管理单元308位于计算节点内,并被配置来执行集体作业调度器单元306所要执行的详细计算作业,并报告执行结果。
上述五个部件的功能对应于已由传统技术提供的功能。
根据该实施例,本发明可附加执行传统技术未提供的各种功能,即,自动更新工作流的资源概况的功能、基于由资源概况提供的信息划分工作流作业的功能、以及监控当作业由计算资源执行时所使用的资源的数量的功能。下面描述为执行附加功能所需的单个部件的操作。
计算资源监控单元307监控当当前正在执行作业时、计算资源的关于作业实际使用的计算资源的使用的信息,例如CPU的利用率、内存的利用率、使用的磁盘缓存的数量、磁盘的利用率、使用的网络带宽的数量、以及网络的使用率,并周期性地或者在作业已结束后将监控结果报告给资源概况管理单元303。
资源概况管理单元303运行用来更新工作流的资源使用概况。工作流的资源使用概况的初始值可以从用户输入。根据实施例,用户可以输入资源使用概况的初始值作为比期望值足够高的值,以便阻止错误的发生。
用户执行工作流,使得关于当计算节点执行作业时实际使用的资源使用的信息被自动报告给资源概况管理单元303。资源概况管理单元303基于实际使用的资源的数量,来更新先前的资源使用概况。以这种方式,当执行工作流时,资源使用概况被持续更新,使得同样类型的作业可以被最优地处理。
由资源概况管理单元303管理的工作流资源使用概况可包括对于组成工作流的单个作业管理的信息、关于当同时执行多个作业时使用的每个计算节点的利用的信息、关于当在计算节点中组合并且执行各种作业时所使用的每个计算节点的利用的信息等。
当执行每个作业时由计算资源监控单元307监控的资源使用度量以及由资源概况管理单元303管理的性能度量可以包括CPU利用率(峰值、平均)、所用内存的数量(峰值、平均)、在内存中使用的磁盘缓存的数量、磁盘输入/输出(I/O)率(峰值、平均)、磁盘利用率(峰值、平均)/节点、所用网络带宽的数量(峰值、平均)、作业的I/O等待时间/速率信息等。
作业划分单元302参考资源使用概况,来将那些处理输入到工作流的数据的作业划分和调度为单个计算节点的作业。这样的作业的调度是在传统技术中由集体作业调度器单元305管理的功能,但在本发明中,作业划分单元302接收关于集体资源管理单元305的计算资源的信息,基于详细的计算资源信息来调度作业,并且经由工作流引擎单元304将要执行的作业传输到集体作业调度器单元306。
因此,所提出的本发明被配置来创建工作流,基于所获得的详细资源信息使用所述配置来划分工作流的作业以便最大化磁盘缓存的效果,在作业执行后更新使用概况,并随后使用更新后的概况来划分后继作业。
图4是示出了根据本发明的实施例的工作流作业调度方法的流程图。
根据该实施例,在步骤S401,工作流作业调度装置创建工作流(或打开先前定义的工作流),指定输入文件的位置和列表,并随后执行工作流。接下来,在步骤S402,工作流作业调度装置的作业划分单元检查输入文件的列表、大小和其它特征,获得详细的信息(例如可用计算资源的CPU的数目、内存大小、磁盘输入/输出(I/O)速度、以及网络带宽速度),并在步骤S403为单个可用计算资源划分和调度工作流的作业。后面将参考图5详细描述作业划分算法。
接下来,在步骤S404,执行为单个可用计算节点定制的作业,并且确定是否已经正常执行这些作业。在步骤S405,在由相应计算节点执行的作业已经结束之后,使用在作业执行期间已监控到的关于资源使用的信息,来更新工作流的资源使用概况。
因此,提出的本发明可以通过上述步骤来创建工作流,使用获得的详细资源信息划分和调度工作流的作业,以便可以使得磁盘缓存的效果最大化,并且在作业执行之后更新概况,使得可以使用概况用于后继作业划分。
图5是详细示出了图4中的作业划分步骤的流程图。
根据该实施例,工作流作业调度装置执行基于输入数据分组的作业划分调度,该调度通过将资源概况信息与计算资源相匹配,来使得计算资源能最佳地执行作业。
因此,在步骤S501,在已经获得关于可用计算节点的详细资源信息之后,工作流作业调度装置从可用计算节点的列表中选择单个计算节点。
在下面,所选单个计算节点的索引被称作‘i’。
进一步地,单个计算节点的选择可以用循环方式选择。
接下来,在步骤S502,计算可以由所选单个计算节点同时执行的作业的数量。
根据实施例,初始值被指定为由用户设置的值,因为实际作业所使用的资源的测量数量不存在。
进一步地,当执行工作流时,对于每个作业已经测量了CPU的利用率、磁盘的利用率、磁盘I/O速度、内存的利用率或者所用内存的数量、以及网络带宽的利用率或所用网络带宽的数量,计算可以同时执行的作业的数目。下面将参考图6来详细描述作业数目的计算顺序。
接下来,在所选单个计算节点中,使用以下公式(1)在步骤S503计算无需进行磁盘缓存释放操作(当物理内存的利用率等于或者大于预定利用率时,释放内存上最老的磁盘缓存的操作)就能使用的可用磁盘缓存的大小(节点i的可用磁盘缓存大小,此后称作‘uDCSi’):
uDCSi=PhyMemi×DCFSUi-sysMemi-MAX(jobsMem)(1)
在公式(1)中,PhyMemi表示计算节点i的物理内存的大小,以及DCFSUi表示计算节点i的磁盘缓存释放操作开始时所用内存的百分比。
根据实施例,磁盘缓存释放策略根据系统的实现而不同,但最近已使用的多数Linux系统在内存的80%被使用时确定内存不足,并在应用程序请求新内存时开始磁盘缓存释放操作。
进一步地,sysMemi表示紧靠在计算节点i已启动之后由系统使用的内存数量。根据实施例,所用内存的数量由工作流作业调度装置的计算资源监控单元紧靠在系统已启动之后检测。
进一步地,jobsMem表示由作业使用的物理内存的数量。根据实施例,初始值是由用户输入的值,并且存储由工作流作业调度装置的计算资源监控单元监控的值。当同时执行作业时,jobsMem可以通过将同时执行的作业的数目乘以当同时执行作业时作业所使用的内存的数量来获得。
术语“磁盘缓存效果”是指这样的效果:使用部分内存作为磁盘缓存以便阻止内存被浪费,以及当相同文件从磁盘读取或者写入磁盘时,从内存而不是从磁盘读取相同文件,因此获得了快速的响应时间。
接下来,为了防止磁盘缓存释放操作开始,在工作流执行期间要缓存在磁盘缓存中的I/O文件的大小之和不应该大于uDCSi。因此当同时执行作业时,计算与作业的数目相同的多个输入文件的大小以及从输入文件产生的中间文件的大小之和。随后确定输入文件的数目和大小,使得该大小之和小于uDCSi。在步骤S504,基于输入文件的数目和大小,对输入文件进行分组或者划分,并且处理所分组或划分的输入文件的作业被分配到对应的节点i并随后执行。
根据实施例,为了得到将要在磁盘缓存中缓存的所有文件的大小之和,必须知道所生成的中间文件的大小。然而,在执行处理这些文件的作业之前,不能知道这些文件的大小。
因此,在初始步骤,输入文件与所有文件的大小的比率由用户输入。输入文件与所有文件的大小的比率被持续更新,并且随后在工作流执行时在相关资源使用概况中被优化。
将要在磁盘缓存中缓存的文件的大小之和可以通过下列的公式(2)来计算:
将要在磁盘缓存中缓存的文件的大小之和=输入文件的大小之和×输入文件与所有文件的大小的比率+所有作业共同参考的文件的大小(2)
因此,使用公式(2)对作业分组,使得所期望的所有文件的大小之和小于uDCSi。当对满足这个条件的输入文件进行分组时,分析这些输入文件的作业被传送到对应节点i并随后执行。
接下来,在步骤S505,确定是否存在还没有分配的输入数据(输入文件)。如果剩余还没有执行其文件划分的输入文件,则处理返回到步骤S501,反之如果,作业已经被分配给所有的输入数据,则输入数据的划分结束。
因此,在前述步骤中划分的作业组经由工作流作业调度装置的工作流引擎单元被传送到单个对应的节点,并随后可以执行相应计算节点的作业。
图6是示出了用于计算可由图5中的计算节点同时执行的作业的数目的方法的流程图。
根据实施例,计算每个计算资源同时进行的作业的数目。
因此,在步骤S601计算基于CPU的数目和CPU的利用率的同时进行的作业的最大数目。接下来,在步骤S602计算基于磁盘的利用率的同时进行的作业的最大数目。接下来,在步骤S603计算基于所用内存的数量的同时进行的作业的最大数目,以及在步骤S604计算基于网络带宽的利用率的同时进行的作业的最大数目。
接下来,如果通过上述的步骤已经计算了每个计算资源的同时进行的作业的数目,那么在步骤S605,在相应计算资源的同时进行的作业的数目中的最小值被确定为对应节点的“同时进行的作业数i”。这样做的原因在于,相应计算资源的同时进行的作业的数目中的最小值是确定性能的瓶颈资源。
如上面所描述的那样,本发明的优点在于,它在实现为多步骤作业的流水线的工作流在高性能计算机或集群上执行的情况下、接收当由计算资源执行每个作业时所获得的反馈信息,并且利用该反馈信息用于后继作业的调度,因此使得执行作业的计算资源的使用最大化。
进一步地,本发明的优点在于,它划分和调度作业以便最大化磁盘缓存效果,使得执行工作流所需的时间被减少以更快速地获得结果,并且甚至不具有计算资源的深入知识以及对使用系统的方法不熟悉的普通用户也可以容易地优化他或她所创建的工作流。
尽管已为了说明的目的而公开了本发明的优选实施例,但是本领域技术人员将理解的是,各种修改和改变是可能的,而不脱离所附权利要求中公开的本发明的范围和精神。这些修改和改变不应与本发明的技术精神和前景分离地理解。
Claims (11)
1.一种工作流作业调度装置,包括:
资源概况管理单元,用于存储包括关于计算节点实际使用的资源数量的使用信息的、工作流的资源使用概况;
计算资源监控单元,用于当计算资源当前正执行预定作业时,测量关于计算资源的作业实际使用的计算资源的使用信息,并且向资源概况管理单元报告测量结果,以便更新资源使用概况;以及
作业划分单元,用于装载资源概况管理单元的资源使用概况,从计算节点中选择任意一个,确定能够由所选计算节点同时执行的作业的数目以及能够无需在所选计算节点中进行磁盘缓存释放操作就能使用的可用磁盘缓存的大小,确定输入文件的数目和大小,使得同时进行的作业要在磁盘缓存中缓存的文件大小之和小于可用磁盘缓存的大小,并且通过基于输入文件的确定数目和确定大小而分组或划分作业,来确定作业要在其上执行的计算节点。
2.如权利要求1所述的工作流作业调度装置,其中该计算资源监控单元周期性地或者在作业已结束后向该资源概况管理单元报告测量结果。
3.如权利要求1所述的工作流作业调度装置,其中该资源概况管理单元存储工作流的资源使用概况,所述资源使用概况包括对于构成工作流的单个作业管理的信息、关于当同时执行多个作业时使用的每个计算资源的数量的信息、以及关于当组合并且执行各个作业时所使用的每个计算资源的数量的信息中的一个或多个。
4.一种由调度装置执行的工作流作业调度方法,包括:
由资源概况管理单元装载资源使用概况;
从计算节点中选择任意一个;
确定能够由所选计算节点同时执行的作业数目、以及能够无需在所选计算节点中进行磁盘缓存释放操作就能使用的可用磁盘缓存的大小;
确定输入文件的数目和大小,使得同时进行的作业要在磁盘缓存中缓存的文件大小之和小于可用磁盘缓存的大小;以及
通过基于输入文件的确定数目和确定大小而分组或划分作业,来确定作业要在其上执行的计算节点。
5.如权利要求4所述的工作流作业调度方法,其中所述确定可用磁盘缓存的大小的步骤被配置为使用下列公式(1)确定可用磁盘缓存的大小(uDCSi):
uDCSi=PhyMemi×DCFSUi-sysMemi-MAX(jobsMem)(1)
其中PhyMemi表示所选计算节点的物理内存的大小,DCFSUi表示所选计算节点的磁盘缓存释放操作开始时所用内存的百分比,sysMemi表示紧靠在所选计算节点已启动后由系统使用的内存数量,以及jobsMem表示由任意作业使用的物理内存的大小。
6.如权利要求4所述的工作流作业调度方法,其中所述确定输入文件的数目和大小的步骤被配置为使用下列的公式(2)来计算同时进行的作业将要在磁盘缓存中缓存的文件的大小之和:
将要在磁盘缓存中缓存的文件的大小之和=输入文件的大小之和×输入文件与所有文件的大小的比率+所有作业共同参考的文件的大小(2)。
7.如权利要求6所述的工作流作业调度方法,其中所述确定输入文件的数目和大小的步骤被这样配置,使得当在资源使用概况中不存在关于输入文件与所有文件的大小的比率的信息时,由用户键入所述输入文件与所有文件的大小的比率。
8.如权利要求4所述的工作流作业调度方法,其中所述选择任意一个计算节点的步骤被配置为以循环方式从计算节点中选择任意一个。
9.如权利要求4所述的工作流作业调度方法,其中所述确定能够同时执行的作业的数目的步骤包括:
基于关于所选计算节点的中央处理单元(CPU)的数目和CPU的利用率的信息,来计算同时进行的作业的最大数目;
基于关于所选计算节点的磁盘的利用率的信息,来计算同时进行的作业的最大数目;
基于关于所选计算节点所用内存的信息,来计算同时进行的作业的最大数目;
基于关于所选计算节点的网络带宽的利用率的信息,来计算同时进行的作业的最大数目;
将所计算的同时进行的作业的最大数目中的最小值确定为能够由所选计算节点同时执行的作业的数目。
10.如权利要求4所述的工作流作业调度方法,进一步包括:
当计算资源当前正在执行预定作业时,测量关于计算资源的作业实际使用的计算资源的使用信息;以及
存储或更新测量的结果作为工作流的资源使用概况。
11.如权利要求10所述的工作流作业调度方法,其中所述存储或更新作为工作流的资源使用概况的步骤包括:存储或更新工作流的资源使用概况,所述资源使用概况包括对于组成工作流的单个作业管理的信息、关于当同时执行多个作业时使用的每个计算资源的数量的信息、以及关于当组合并且执行各个作业时所使用的每个计算资源的数量的信息中的一个或多个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0020792 | 2012-02-29 | ||
KR1020120020792A KR101694307B1 (ko) | 2012-02-29 | 2012-02-29 | 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103294535A true CN103294535A (zh) | 2013-09-11 |
Family
ID=49095468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105166911A Pending CN103294535A (zh) | 2012-02-29 | 2012-09-28 | 最大化磁盘缓存效果的工作流作业调度装置及方法 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101694307B1 (zh) |
CN (1) | CN103294535A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636397A (zh) * | 2013-11-15 | 2015-05-20 | 阿里巴巴集团控股有限公司 | 用于分布式计算的资源分配方法、计算加速方法以及装置 |
CN105260243A (zh) * | 2015-10-30 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种集群作业调度方法与系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201842A (zh) * | 2007-10-30 | 2008-06-18 | 北京航空航天大学 | 数字博物馆网格及其构造方法 |
US20090260012A1 (en) * | 2008-04-15 | 2009-10-15 | International Business Machines Corporation | Workload Scheduling |
CN101957800A (zh) * | 2010-06-12 | 2011-01-26 | 福建星网锐捷网络有限公司 | 多通道缓存分配方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009541851A (ja) * | 2006-06-19 | 2009-11-26 | ディスキーパー・コーポレイション | リソースに基づいたスケジューラ |
JP5187017B2 (ja) * | 2008-06-18 | 2013-04-24 | 富士通株式会社 | 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法 |
JP5343523B2 (ja) * | 2008-11-17 | 2013-11-13 | 富士通株式会社 | ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム |
CN102486739B (zh) * | 2009-11-30 | 2015-03-25 | 国际商业机器公司 | 高性能计算集群中分发数据的方法和系统 |
-
2012
- 2012-02-29 KR KR1020120020792A patent/KR101694307B1/ko active IP Right Grant
- 2012-09-28 CN CN2012105166911A patent/CN103294535A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201842A (zh) * | 2007-10-30 | 2008-06-18 | 北京航空航天大学 | 数字博物馆网格及其构造方法 |
US20090260012A1 (en) * | 2008-04-15 | 2009-10-15 | International Business Machines Corporation | Workload Scheduling |
CN101957800A (zh) * | 2010-06-12 | 2011-01-26 | 福建星网锐捷网络有限公司 | 多通道缓存分配方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636397A (zh) * | 2013-11-15 | 2015-05-20 | 阿里巴巴集团控股有限公司 | 用于分布式计算的资源分配方法、计算加速方法以及装置 |
CN104636397B (zh) * | 2013-11-15 | 2018-04-20 | 阿里巴巴集团控股有限公司 | 用于分布式计算的资源分配方法、计算加速方法以及装置 |
CN105260243A (zh) * | 2015-10-30 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种集群作业调度方法与系统 |
CN105260243B (zh) * | 2015-10-30 | 2018-10-12 | 浪潮(北京)电子信息产业有限公司 | 一种集群作业调度方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
KR101694307B1 (ko) | 2017-01-09 |
KR20130099351A (ko) | 2013-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9875135B2 (en) | Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment | |
US9727383B2 (en) | Predicting datacenter performance to improve provisioning | |
US9417926B2 (en) | Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs | |
US8205208B2 (en) | Scheduling grid jobs using dynamic grid scheduling policy | |
US9092266B2 (en) | Scalable scheduling for distributed data processing | |
US10108458B2 (en) | System and method for scheduling jobs in distributed datacenters | |
JP5343523B2 (ja) | ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム | |
US20090077235A1 (en) | Mechanism for profiling and estimating the runtime needed to execute a job | |
US10191779B2 (en) | Application execution controller and application execution method | |
US20070226743A1 (en) | Parallel-distributed-processing program and parallel-distributed-processing system | |
JP2012118669A (ja) | 負荷分散処理システム及び負荷分散処理方法 | |
US11716384B2 (en) | Distributed resource management by improving cluster diversity | |
KR101656706B1 (ko) | 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법 | |
Wang et al. | Dependency-aware network adaptive scheduling of data-intensive parallel jobs | |
Lawrance et al. | Efficient QoS based resource scheduling using PAPRIKA method for cloud computing | |
Cope et al. | Robust data placement in urgent computing environments | |
Simmhan et al. | Comparison of resource platform selection approaches for scientific workflows | |
CN103294535A (zh) | 最大化磁盘缓存效果的工作流作业调度装置及方法 | |
JP5043166B2 (ja) | 計算機システム、データ検索方法及びデータベース管理計算機 | |
KR101639947B1 (ko) | 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체 | |
JP2019082819A (ja) | アクセラレータ部の利用に対する課金を支援するシステム及び方法 | |
Salman et al. | Scheduling firm real-time applications on the edge with single-bit execution time prediction | |
JP4594877B2 (ja) | 計算機リソース割当管理方法および計算機リソース割当管理装置 | |
Zohrati et al. | Flexible approach to schedule tasks in cloud‐computing environments | |
JP2022110929A (ja) | 管理計算機、管理システム、及び管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130911 |