CN100426239C - 依赖关系图参数范围的划分 - Google Patents

依赖关系图参数范围的划分 Download PDF

Info

Publication number
CN100426239C
CN100426239C CNB2005800075187A CN200580007518A CN100426239C CN 100426239 C CN100426239 C CN 100426239C CN B2005800075187 A CNB2005800075187 A CN B2005800075187A CN 200580007518 A CN200580007518 A CN 200580007518A CN 100426239 C CN100426239 C CN 100426239C
Authority
CN
China
Prior art keywords
task
parameter
value
dependence graph
assignment
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
CNB2005800075187A
Other languages
English (en)
Other versions
CN1965296A (zh
Inventor
弗兰克·因金戈洛
克雷格·W.·斯坦菲尔
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.)
Archie Taco Ltd.
Qiyuan Software Co.,Ltd.
Ab Initio Technology LLC
Original Assignee
Ab Initio Software LLC
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 Ab Initio Software LLC filed Critical Ab Initio Software LLC
Publication of CN1965296A publication Critical patent/CN1965296A/zh
Application granted granted Critical
Publication of CN100426239C publication Critical patent/CN100426239C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Abstract

根据依赖关系图定义多个任务。保持分别与不同的任务范围相关的多个参数范围。在第一任务中使用的参数与参数值绑定。这种绑定操作包含根据依赖关系图识别第一范围,并根据识别的范围来检索所述参数值。

Description

依赖关系图参数范围的划分
技术领域
本发明涉及依赖关系图中的参数范围的划分。
背景技术
计算机作业控制系统已经被用于根据与待执行程序的定序相关的限制来顺序执行计算机程序或其它处理。一种指定定序限制的方法是使用依赖关系图。程序可接受在将作业提交给系统时所指定的变量。这类作业控制系统的一个示例是分布式批处理系统,其中可指定不同的作业在不同的计算机或不同类型的计算机(例如超级计算机)上执行,并且不同作业之间的依赖关系在作业被执行之前清楚地标识。一种在作业之间传送信息的方法是通过公用数据存储,例如通过文件系统中的文件进行。这类作业控制的另一示例涉及分布式个人计算机环境中的作业调度,例如,调度需要以特定顺序在不同计算机上执行的维护任务。
发明内容
作为概括方案,本发明提供一种用于绑定参数值的方法。根据依赖关系图定义多个任务,其中所述依赖关系图表示所述任务的部分定序。保持分别与不同的任务范围关联的多个参数范围。在第一参数范围中存储一个或多个参数值。在第一任务中使用的参数与参数值绑定。这种绑定操作包括根据依赖关系图所表示的所述部分定序识别所述第一参数范围,并根据所识别的范围检索所述第一参数的值。
这一方案可包括一个或多个以下特征:
在第二任务执行期间确定赋予参数的值。所确定的赋予所述参数的值被存储在与第二任务相关的第一参数范围中。
所述依赖关系图指定任务的执行顺序。识别所述第一参数范围的操作包括识别必须在第一任务之前执行的任务。识别所述第一参数范围的操作还包括识别对所述第一参数赋值的任务,并且根据所述依赖关系图识别最后执行的任务。
作为另一概括方案,本发明还提供一种用于检查参数访问的方法,该方法包括接受对多个任务的定序限制的描述内容,其中至少一些任务未彼此定序。这种检查操作包括:对一个或多个参数中的每个参数,识别访问这些参数的任务;以及根据定序限制的描述内容,检查通过识别的任务对参数的访问中潜在的冲突。
本发明的方案可包含一个或多个下列优点:
利用在各任务之间传送的显式参数,能够检查参数值中的冲突和模糊性。例如,这种检查能够确保各参数在任务计划的重复执行中将取相同的值。
根据依赖关系图中的优先级的范围划分优选为根据嵌套或计划和子计划进行的范围划分,这是因为参数可在计划中的同级任务之间传送。
通过允许在依赖关系图的不同部分中使用的相同参数名能够根据范围划分规则被多重使用而不引入冲突或模糊性,多种参数范围的使用可减少名称冲突。这样就能够允许不同的开发者在不引入名称冲突并且不必清楚标识不同的命名域(naming domain)的情况下编写计划的不同部分。
根据以下描述和权利要求书,本发明的其它特征和优点是显而易见的。
附图说明
图1为任务管理系统。
图2为依赖关系图。
图3为包含任务管理器中的单个全局范围(global context)的示图。
图4A为包含任务管理器中的基于特定任务的多个动态范围的框图。
图4B为根据图2的依赖关系图展示各动态范围之间的关系的示图。
图4C为展示图2的依赖关系图中的任务范围的示图。
图5为任务描述内容。
图6A-B为使用动态参数的应用示例。
具体实施方式
概述
参照图1,任务管理系统100根据依赖性限制控制构成整个计划的任务的执行,所述依赖性限制指定计划中的哪些任务必须在执行其它任务之前完成。依赖性限制是用定向依赖关系图132来表示的,在依赖关系图132中该图的每一节点134对应于计划中的不同任务,而从一个节点到另一节点的每个定向弧136表示这样的定序限制:对应于第一个(“上游”)节点的任务必须在执行对应于第二个(“下游”)节点的任务之前完成。更一般地说,对应于节点的任务仅可以在所述图中其所有上游任务均已完成之后再执行。所述依赖关系图建立了任务的部分定序。因此,任务可按照限制而同时执行,这些限制包括基于图的依赖性限制。任务也可在不同的计算机上执行,以在整个计划执行中实现并行性加速。
任务管理系统100包括任务管理器110,该管理器读取计划描述内容120。上述计划描述内容包括定义依赖关系图132的依赖关系图描述内容122及定义每个任务特性的任务描述内容124。依赖关系图描述内容122通过一列节点134和一列弧136来定义依赖关系图,每个弧136标识该图中的源节点和目标节点。每一节点与任务定义相关,该任务定义被指定于任务描述内容124中,任务描述内容124指定该任务中所要执行的特定操作。
任务可用任务模板来定义,而计划可用计划模板来定义。任务或计划的模板可包括对参数的引用,所述对参数的引用是以符号表示的,并且在任务被执行前不必与值绑定。例如,任务模板可包括对被命名为FILENAME的参数的引用,并且对该参数的引用利用“美元符号”语法$FILENAME来表示并在执行任务之前或执行任务期间通过任务管理器110与特定值绑定。
有些参数对整个计划来说是全局性的,并且在整个计划第一次执行时被赋值。这类参数总体上可以是计划的形式参数,并可以,举例来说,在调用总体计划的命令中加以指定,或可由调用计划的用户以交互方式引出。
其它参数无需在计划第一次执行时指定值。这类动态参数可在一个或多个任务的执行期间或作为执行结果而被赋值,并随后为其它任务的模板所引用。例如在图2中,参数A可通过任务1而被设定成值,并且该值可随后由任务2使用。
任务管理系统100支持多个与以下讨论有关的附加特征。第一个特征是,节点134可与整个“子计划”相关,而非与单个任务相关。子计划是部分定序任务的较低级计划。子计划具有与上级计划描述内容相同或相似的结构的计划描述内容120。
第二个特征是任务能够通过其执行来修改计划描述内容120。特别是,任务能够将附加节点134和弧136添加到依赖关系图132,并且利用由任务管理器110所提供的服务来定义与所添加的节点相关的任务的特性。例如,对于具有未知(在运行之前)数目的待完成任务的计划,第一任务可利用模板产生子计划。使用动态参数在运行时绑定模板中任务的数目。所产生的子计划由任务管理器110合并到第一任务的较高级计划。
绑定方法
如下所述,任务管理器110利用多个可选方法之一进行参数绑定。或者,任务管理器110利用多种绑定方法的结合,例如,根据这些参数的声明而对不同的参数采用不同的方法。其中部分(或全部)方法不同的一个方面在于参数定义的范围。
方法1
参照图3,在第一绑定方法中,任务管理器110对所有参数保持单一全局范围310。任务管理器110保持任何参数的单一拷贝。也就是说,它保持数据结构320,该数据结构使得多个不同的参数名322均与该参数的当前值324相关联(其中若相应参数尚未被赋值则值324可以为空)。此相同数据结构320可被用来保存全局参数的值以及那些随着任务的执行通过任务而被动态赋予的值。
参照图2和图3,在上述第一方法的示例中,任务1对参数A赋予值FOO,如赋值语句A=FOO所示。任务管理器110从任务1接收所赋的值FOO(以从任务1到参数A的值单元324的箭头表示),并将该值存储于值单元324内。任务管理器110此后将值FOO提供给任务2,以便在任务2的模板中绑定对参数A的引用。在这一示例中,任务2包含赋值语句B=$A/BAZ,这能够使得参数B被赋值FOO/BAZ。任务管理器110接收存储在全局范围310中的B的赋值。根据依赖关系图132,任务2仅在任务1完成之后执行。因此,对参数A的赋值FOO保证在执行任务2之前即已执行。
通常,可同时执行计划的多项任务组。针对特定依赖关系图,如果在依赖关系图中未彼此定序的两个或更多个任务之间没有直接路径,则这些任务可能被同时执行,或者以不可预知的顺序执行。在图2中,任务2及3便是这样的未定序任务。在图2所示示例中,任务3对参数A赋值BAR。如果任务3在任务2之前执行,则参数B在任务2中被赋值BAR/BAZ,而如果任务3在任务2之后执行,参数B即被赋值FOO/BAZ。
在许多应用中,关于哪个值将被赋予B的不确定性是不希望的。避免这种情况的一种方法是执行依赖关系图的静态检查,并且禁止使用表现出这种不确定性的计划。所述检查包含识别未被依赖关系图定序的各任务组。如果特定参数是由该组中一个任务使用而由该组中另一任务赋值的,则产生潜在的模糊性。类似地,如果在这样的组中的两个任务对一特定参数赋予多个值,也会产生冲突。通常,在其中多个任务访问一特定参数的未定序任务的任何组中,没有任务能给该参数赋值。这种静态检查会根据任务2与3对参数A的引用识别它们之间的冲突。任务管理系统100处理由静态检查所识别的冲突(例如利用错误处理机制)。注意在本示例中,任务2及5也可能以不可预知的顺序执行,但二者均使用参数A的值而非给参数A赋值,因此并不表现出冲突或模糊性。
依赖关系图的静态检查是在计划执行之前由任务管理器110执行的,或可选择地由确认计划描述内容的另一模块以预处理的方式来执行。在通过任务的执行来修改依赖关系图的情况下,再次执行或增加静态检查,以用于依赖关系图的修改。
对于包括子计划的计划,可采用上述方法的两种变形。在第一种变形中,任务管理器110对于所有级别的子计划的所有参数保持单个范围。在对包含具有子计划的节点的计划进行的静态检查中,由该子计划的任何任务所进行的参数赋值与使用该参数值的较高级计划中的任何未定序任务(对于具有该子计划的节点而言)冲突。
在涉及子计划的第二种变形中,任务管理器110对每个子计划的参数保持单独的范围,并且子计划的描述内容明确地标识当子计划完成时从子计划输出到下一个较高级计划的参数。在这类变形中,静态检查涉及子计划的输出参数与在下一个较高级计划内的任务(该任务不依子计划的执行来定序)中对该参数的访问之间的冲突。
在这种方法的另一版式中,任务管理器110禁止对任何特定全局动态参数的重复赋值。
方法2
参照图4A,在第二方法中,任务管理器110对于为整个计划设置的参数保持一全局范围310,以及保持分别与依赖关系图的不同节点相关的多个动态范围410。对参数赋值的每个任务产生该参数的新“实例(instance)”并将赋值(通过任务管理器110)存储在与对应于该任务的节点相关的动态范围410中。任务管理器110因此可存储与参数相关的多个值,每个值与该参数的不同实例相关。对于任何特定参数(例如A),任务管理器110保持与其中参数被赋值的每个任务相关的参数的单独值(因为每个任务对应于单独节点和单独动态范围410)。
参照图4B及4C,参数的每个实例及其相关动态范围410具有确定哪个任务“得知”对该实例赋予的值的任务范围。根据依赖关系图132的图形420,每个动态范围410基于各动态范围410之间的关系与不同的任务范围相关。例如,在任务1中被赋值为A=FOO的参数A的实例(存储在动态范围410中)具有任务范围430,该任务范围不同于任务范围432,所述任务范围432与在任务3中被赋值为A=BAR的参数A的实例相关。与参数B的实例相关的任务范围434包含任务4但不包含任务5,所述参数B在任务2中被赋值为B=$A/BAZ。在这种方法中,任务范围或参数实例的“范围”(及其相关动态范围410)仅包含将该值赋予参数实例的任务以及在该任务之后(“下游的”)定序的任务。当任务引用参数时,任务管理器110将其范围包括该任务的参数实例的值绑定到该引用。
当任务1赋值FOO给参数A时,任务管理器110将该值存储在与任务1相关的动态范围410中。类似地,当任务3赋值BAR给参数A时,任务管理器110将该值存储在与任务3相关的动态范围410中。任务2处于在任务1中被赋值成A=FOO的参数A的实例的范围内,但不处于在任务3中被赋值成A=BAR的参数A的实例的范围内。因此,在这种范围划分方法下,对于任务2中的B值不存在不确定性或模糊性。任务管理器110将任务2中对参数A的引用与来自任务1的动态范围410的值绑定。任务2将B赋值为FOO/BAZ,该值提供给任务管理器110从而存储在与任务2相关的动态范围410中。
通常在执行期间,任务管理器110通过考虑经过依赖关系图的上游路径(即经过单个弧的直接路径或经过已执行任务的非直接路径),使值与对任务中参数的引用绑定,其中所述路径以对该参数赋值的任务终止。在此示例中,当绑定任务2中的参数A时,任务管理器110采用已设定参数的任务1的上游路径。
在图2的示例中,任务4潜在地处于任务1参数A的实例范围之内、以及处于任务3的参数A的实例范围之内。也就是说,存在从任务4到达任务1(非直接而是经任务2)和到达任务3(直接地)的上游路径,任务1和任务3各自给A赋值。然而在本示例中不存在模糊性,因为任务3被限制成在任务1之后执行。如果有多个上游参数赋值,且如果有一个任务被定序到所有其它任务之后,则不存在模糊性,并且使用赋予最后任务的动态范围410中参数实例的值。
与第一种方法相同,潜在的模糊性可根据依赖关系图静态地进行检查。具体地说,对于依赖关系图中节点(任务)处对参数的每个引用,首先识别可给该参数赋值的上游任务。如果没有这样的任务,则此参数将会具有未定义值或从计划的全局范围提供该参数。如果确实有一个上游任务,则不存在模糊性。如果有多个对该参数赋值的上游任务,则存在模糊性,除非这些任务中有单独一个被定序到其它任务之后(即通过依赖关系图被限制在其它任务之后执行)。
实施方法
参照图5,任务描述内容500(其包含在图1中的任务描述内容124内)包含声明部分510和指令部分520。声明部分510标识(例如用一个或多个声明语句)通过相应任务的执行而被赋值的动态参数。图5中所示任务描述内容对应于图2中的任务1。参数A被声明为由任务来动态赋值,表示成声明“dynamicA”512。声明部分510还标识对需要由任务管理器110根据可用参数的范围来绑定的参数的引用。
指令部分520包含待由任务来执行的操作的计算机指令(例如编程语言或其它过程语句),以及对动态参数赋值的指令,例如指令“A=FOO”522。这类计算机指令,举例来说,可由用户指定或通过计算机处理而自动产生。
任务管理器110能够处理计划的任务描述内容的声明部分,以确定在相应任务的执行期间要被赋值、或引用、或者既赋值又引用的参数。任务管理器110可通过额外地处理任务描述内容的指令部分,或可选择地通过使用单独类型的用于动态参数赋值的声明语句或用于引用的声明语句,在赋值或引用之间进行区分。例如,对于图2中所示的示例,任务管理器110可解析任务描述内容,从而确定任务2引用参数A而任务3对A赋值。这使得任务管理器110能够完成对第一种方法(见图3,其中任务2中的引用会与任务3中的赋值冲突)的静态检查。
当声明部分标识待引用的参数时,任务管理器110能够在执行指令部分520的各指令之前配置参数及其绑定值的环境。在配置了任务的环境后,任务管理器110调用执行任务描述内容的指令部分的指令的处理。该处理随后访问来自已为参数值创建的环境中的那些参数值。在执行期间,通过动态参数的赋值指令的处理,将(参数,值)对记录在任务执行的输出中,即动态参数赋值部分530中。例如,对(A,FOO)532将会记录在赋值部分530中。任务管理器110在指令部分520的指令执行之后接收赋值部分530,并使用其内容来更新参数值。
在此方法的一个特定实施方式中,指令部分包含SHELL脚本语言的语句,例如“ksh”。在调用SHELL处理以翻译指令之前,任务管理器110利用声明部分510来配置那些将在SHELL指令的处理中使用的参数值的环境。在这一实施方式中,赋值语句采用脚本的文本输出的输出语句的形式。也就是说,,脚本指令将会包括诸如“PRINT A=FOO”之类语句而不采用赋值“A=FOO”,从而输出行“A=FOO”。脚本的文本输出构成动态参数赋值部分530。任务管理器110接收该文本输出,并翻译将值存储在适当的动态范围410中的赋值语句。
在另一实施方式中,指令部分520中翻译指令的处理与任务管理器110通信,并且任务管理器110为存储或访问动态参数值的请求提供服务。当参数引用需要与值绑定以执行指令时,处理向任务管理器110发出请求,该管理器确定用于该参数的适当动态范围410并返回该动态范围410中的值。类似地,当参数被赋值时,处理发出请求以将该值存储在适当的动态范围410中。
在一可选的实施方式中,任务描述内容500的声明部分510不标识在执行期间任务将会需要的参数,并且在任务的指令正在执行时无法用适当的通信机制来请求参数值。在这一实施方式中,任务管理器110配置其范围包含该任务的所有参数实例的完整列表。对于其绑定会导致潜在的模糊性的参数(例如因为该参数是由多个上游未定序任务赋值的),以指示符如“ambiguous_value”来取代参数值,因此若在任务中引用该参数就会产生错误。
当声明部分510不包含将在每个任务中被动态赋值和/或被引用的参数的声明时,依赖关系图的静态检查将是不可能的。然而,任务管理器110仍然能够识别在计划的执行期间可能发生的某些潜在冲突。例如,使用对单个全局范围进行范围划分的方法(见图3),如果任务管理器110在计划执行期间检测到多个未定序任务已对参数赋值,则任务管理器110可识别潜在的冲突。任务管理系统100可随后处理任务管理器所识别的冲突。
示例
参照图6A,使用动态赋值参数的示例包括通过整个计划中的不同任务631-633分别对多个数据文件641-643的处理。数据文件641-643的文件名在计划被第一次执行时是未知的。更确切地说,文件名被列于文本文件622中,其名称是作为整个计划的全局参数LIST_FILE提供的。
计划包括第一任务620,该任务负责打开LIST_FILE文件622,并读取其内容。此任务620打开文件并读取内容,确定列出的单个数据文件的数目。在这一示例中,列表文件622有三个文件名:FNAME1.DAT、FNAME2.DAT、及FNAME3.DAT。任务例如利用数据网络上的文件传输协议来检索所列文件641-643。任务1对多个动态参数NUM_INPUT、及DATA_FILE_1到DATA_FILE_3赋值,并将这一赋值信息传送给任务管理器110,该管理器将其记录到适当的范围610(例如全局范围、或与任务1相关的动态范围,这取决于所用范围划分方法)中。
在示例的这个第一版本中,最初规定的计划确切地具有用于处理输入文件的任务的三个实例,即任务2-4(631-633)。每个任务通过引用由任务1赋值的动态参数来检索其相应的输入数据文件名。
这个示例的变形利用了能够修改计划描述内容的任务。计划最初仅有单一任务,“获取名称”任务1(620)。在“获取名称”任务已确定存在三个待处理数据文件之后,该任务利用任务管理器110的服务来创建三个处理任务631-633,并将它们连接到其自身(任务1)。然后在任务1完成之后,如上所述,任务管理器110执行新创建的任务631-633。
或者,在这个示例的另一变形中,任务管理器110可采用具有可修改数目任务的计划模板。参照图6B,计划最初有两个任务:“获取名称”任务1(620)、及“处理”任务2(650)。在“获取名称”任务已确定存在三个待处理数据文件之后,“处理”任务利用具有可修改数目任务的计划模板创建子计划。“处理”任务引用动态参数NUM_INPUT来创建具有三个(未定序)处理任务631-633的子计划。如上所述,任务管理器110执行新创建子计划中的任务631-633。
上述参数范围划分方法可用软件实施,以在计算机上执行。例如,所述软件产生一个或多个计算机程序中的过程,所述计算机程序在一个或多个编程或可编程计算机系统(其可具有多种结构,例如分布式、客户/服务器、或网格)上执行,每个计算机系统包括至少一个处理器、至少一个数据存储系统(包括易失和非易失性存储器和/或存储元件)、至少一个输入装置或端口、及至少一个输出装置或端口。所述软件可产生一较大程序的一个或多个模块,例如,其提供与计算图的设计和配置相关的其它服务。
所述软件可以设置在由通用或专用可编程计算机可读的介质(例如CD-ROM)上,或者可以通过网络传递(以传播信号编码)到执行该软件的计算机。所有功能可以在专用计算机上执行,或者使用诸如协处理器的专用硬件来执行。所述软件可以以分布式来实现,在该分布式中通过不同的计算机来执行由所述软件指定的计算的不同部分。每个这种计算机程序优选地存储或者下载到由通用或专用可编程计算机可读取的存储介质或装置(例如,固态存储器或介质、或者磁或光介质)中,用于在由计算机系统读取该存储介质或装置时对计算机进行配置和操作,以执行这里所述的过程。本发明系统还可以认为是作为由计算机程序配置的计算机可读存储介质来实现,其中这样配置的存储介质使得计算机系统以专用或者预定的方式来操作,以执行这里所述的功能。
应该理解以上的描述是示例的目的,而不是对由所附权利要求所限定的本发明范围的限制。其它实施例也落于以下权利要求书的范围中。

Claims (20)

1. 一种用于绑定参数的值的方法,包括:
根据依赖关系图定义多个任务,其中所述依赖关系图表示所述任务的部分定序;
保持分别与不同任务范围相关的多个参数范围;
在第一参数范围中存储一个或多个参数值;以及
将参数值与第一任务中使用的第一参数绑定,所述绑定操作包括根据所述依赖关系图所表示的所述部分定序识别所述第一参数范围,并根据所识别的范围检索所述第一参数的值。
2. 根据权利要求1所述的方法,其中在第一参数范围中存储一个或多个参数值包括:
在第二任务执行期间确定赋予所述第一参数的值;以及
将所确定的赋予所述第一参数的值存储到所述第一参数范围中。
3. 根据权利要求2所述的方法,其中所述第一参数范围与所述第二任务相关。
4. 根据权利要求1所述的方法,其中所述依赖关系图指定所述任务的执行顺序,并且其中识别第一参数范围的操作包括识别必须在所述第一任务之前执行的任务。
5. 根据权利要求4所述的方法,其中识别所述第一参数范围的操作包括识别对所述第一参数赋值的任务。
6. 根据权利要求5所述的方法,其中识别对所述第一参数赋值的任务的操作包括根据所述依赖关系图识别最后执行的任务。
7. 根据权利要求1所述的方法,其中给定参数的多个实例分别与各不同的参数范围相关。
8. 根据权利要求7所述的方法,其中所述给定参数的多个实例分别根据不同的任务来赋值。
9. 一种任务管理系统,包括:
任务管理器定义模块,其被配置为根据依赖关系图定义多个任务,其中所述依赖关系图表示所述任务的部分定序;以及
任务管理器动态范围模块,其具有存储空间,用以保持分别与不同任务范围相关的多个参数范围;以及
任务管理器参数绑定模块,其能够访问所述参数范围,并被配置为在第一参数范围中存储一个或多个参数值以及将参数值与第一任务中使用的第一参数绑定,所述绑定操作包括根据所述依赖关系图所表示的所述部分定序识别所述第一参数范围,并根据所识别的范围检索所述第一参数的值。
10. 根据权利要求9所述的系统,其中在第一参数范围中存储一个或多个参数值包括:
在第二任务执行期间确定赋予所述第一参数的值;以及
将所确定的赋予所述第一参数的值存储到所述第一参数范围中。
11. 根据权利要求10所述的系统,其中所述第一参数范围与所述第二任务相关。
12. 根据权利要求9所述的系统,其中所述依赖关系图指定所述任务的执行顺序,并且其中识别第一参数范围的操作包括识别必须在所述第一任务之前执行的任务。
13. 根据权利要求12所述的系统,其中识别所述第一参数范围的操作包括识别对所述第一参数赋值的任务。
14. 根据权利要求13所述的系统,其中识别对所述第一参数赋值的任务的操作包括根据所述依赖关系图识别最后执行的任务。
15. 一种任务管理系统,包括:
用于根据依赖关系图定义多个任务的装置,其中所述依赖关系图表示所述任务的部分定序;
用于保持分别与不同任务范围相关的多个参数范围的装置;
用于在第一参数范围中存储一个或多个参数值的装置;以及
用于将参数值与第一任务中使用的第一参数绑定的装置,所述绑定操作包括根据所述依赖关系图所表示的所述部分定序识别所述第一参数范围,并根据所识别的范围检索所述第一参数的值。
16. 根据权利要求15所述的系统,其中在第一参数范围中存储一个或多个参数值包括:
在第二任务执行期间确定赋予所述第一参数的值;以及
将所确定的赋予所述第一参数的值存储到所述第一参数范围中。
17. 根据权利要求16所述的系统,其中所述第一参数范围与所述第二任务相关。
18. 根据权利要求15所述的系统,其中所述依赖关系图指定所述任务的执行顺序,并且其中识别第一参数范围的操作包括识别必须在所述第一任务之前执行的任务。
19. 根据权利要求18所述的系统,其中识别所述第一参数范围的操作包括识别对所述第一参数赋值的任务。
20. 根据权利要求19所述的系统,其中识别对所述第一参数赋值的任务的操作包括根据所述依赖关系图识别最后执行的任务。
CNB2005800075187A 2004-03-08 2005-03-08 依赖关系图参数范围的划分 Active CN100426239C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/795,374 US7594227B2 (en) 2004-03-08 2004-03-08 Dependency graph parameter scoping
US10/795,374 2004-03-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN200810097104.3A Division CN101276290B (zh) 2004-03-08 2005-03-08 用于检查参数访问的方法及任务管理系统

Publications (2)

Publication Number Publication Date
CN1965296A CN1965296A (zh) 2007-05-16
CN100426239C true CN100426239C (zh) 2008-10-15

Family

ID=34976229

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200810097104.3A Active CN101276290B (zh) 2004-03-08 2005-03-08 用于检查参数访问的方法及任务管理系统
CNB2005800075187A Active CN100426239C (zh) 2004-03-08 2005-03-08 依赖关系图参数范围的划分

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN200810097104.3A Active CN101276290B (zh) 2004-03-08 2005-03-08 用于检查参数访问的方法及任务管理系统

Country Status (8)

Country Link
US (2) US7594227B2 (zh)
EP (2) EP2541411A3 (zh)
JP (2) JP4891225B2 (zh)
CN (2) CN101276290B (zh)
AU (1) AU2005221142B2 (zh)
CA (2) CA2880884C (zh)
EA (1) EA012057B1 (zh)
WO (1) WO2005086906A2 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594227B2 (en) * 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
US7650347B2 (en) * 2004-10-01 2010-01-19 Computer Associates Think, Inc. System and method for job scheduling and distributing job scheduling
US8171474B2 (en) 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US7756801B2 (en) * 2004-11-15 2010-07-13 Palo Alto Research Center Incorporated Systems and methods for architecture independent programming and synthesis of network applications
US7877748B2 (en) * 2004-11-19 2011-01-25 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for timing information flow in a distributed system
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070006070A1 (en) * 2005-06-30 2007-01-04 International Business Machines Corporation Joining units of work based on complexity metrics
US8612957B2 (en) * 2006-01-26 2013-12-17 Intel Corporation Scheduling multithreaded programming instructions based on dependency graph
US20080040725A1 (en) * 2006-08-11 2008-02-14 Barrie Jon Moss Method and apparatus for a parallel model of tasks including abstracted execution and software development
US8037466B2 (en) 2006-12-29 2011-10-11 Intel Corporation Method and apparatus for merging critical sections
US8225326B2 (en) * 2008-03-17 2012-07-17 Intel Corporation Future scheduling by direct representation of possible dependencies
US8276165B2 (en) * 2008-05-29 2012-09-25 Microsoft Corporation Continuation-based runtime callback invocation
AU2009322441B2 (en) 2008-12-02 2016-07-28 Ab Initio Technology Llc Visualizing relationships between data elements
US8266477B2 (en) 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
KR20150038758A (ko) 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 태스크 실행 관리
US8683432B2 (en) * 2009-03-20 2014-03-25 Microsoft Corporation Providing execution context in continuation based runtimes
US20100293538A1 (en) * 2009-05-15 2010-11-18 Microsoft Corporation Dynamic program updating in a continuation based runtime
CA2801573C (en) * 2010-06-15 2018-08-14 Ab Initio Technology Llc Dynamically loading graph-based computations
US8874457B2 (en) * 2010-11-17 2014-10-28 International Business Machines Corporation Concurrent scheduling of plan operations in a virtualized computing environment
US8935705B2 (en) * 2011-05-13 2015-01-13 Benefitfocus.Com, Inc. Execution of highly concurrent processing tasks based on the updated dependency data structure at run-time
US9417935B2 (en) * 2012-05-01 2016-08-16 Microsoft Technology Licensing, Llc Many-core process scheduling to maximize cache usage
US8650538B2 (en) 2012-05-01 2014-02-11 Concurix Corporation Meta garbage collection for functional code
US8595743B2 (en) * 2012-05-01 2013-11-26 Concurix Corporation Network aware process scheduling
US20120222043A1 (en) * 2012-05-01 2012-08-30 Concurix Corporation Process Scheduling Using Scheduling Graph to Minimize Managed Elements
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US8700838B2 (en) 2012-06-19 2014-04-15 Concurix Corporation Allocating heaps in NUMA systems
US9047196B2 (en) 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
FI20125700A (fi) * 2012-06-21 2013-12-22 Tekla Corp Yhteisdata suhdetiedolla
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8707326B2 (en) 2012-07-17 2014-04-22 Concurix Corporation Pattern matching process scheduler in message passing environment
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
FR2995106B1 (fr) * 2012-09-03 2015-08-14 Bull Sas Procede et dispositif de traitement de commandes dans un ensemble d'elements informatiques
US9852153B2 (en) 2012-09-28 2017-12-26 Ab Initio Technology Llc Graphically representing programming attributes
US10423424B2 (en) * 2012-09-28 2019-09-24 Nvidia Corporation Replicated stateless copy engine
US8607018B2 (en) 2012-11-08 2013-12-10 Concurix Corporation Memory usage configuration based on observations
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9116603B2 (en) 2012-12-26 2015-08-25 Ab Initio Technology Llc Managing interactions with data having membership in multiple groupings
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US20130227529A1 (en) 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
US9207978B2 (en) * 2013-10-09 2015-12-08 Wipro Limited Method and system for efficient execution of ordered and unordered tasks in multi-threaded and networked computing
WO2015085152A1 (en) 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US20160034258A1 (en) * 2014-07-31 2016-02-04 Lexmark International Technology S.A. System and Methods of Generating Build Dependencies Radiator
WO2016186651A1 (en) * 2015-05-19 2016-11-24 Hewlett Packard Enterprise Development Lp Updating inference graph absent node locking
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
JP6997096B2 (ja) * 2015-11-27 2022-01-17 カデンス イマジュリー メディカル インコーポレイテッド サーバを使用してデータを処理するための関数を実行する方法およびシステム
WO2017095384A1 (en) * 2015-11-30 2017-06-08 Hewlett-Packard Enterprise Development LP Task-based conflict resolution
EP3394739B1 (en) 2015-12-21 2020-11-11 AB Initio Technology LLC Sub-graph interface generation
US10228973B2 (en) * 2016-03-08 2019-03-12 Hulu, LLC Kernel policy optimization for computing workloads
US10769113B2 (en) 2016-03-25 2020-09-08 Microsoft Technology Licensing, Llc Attribute-based dependency identification for operation ordering
US10152349B1 (en) * 2016-09-27 2018-12-11 Juniper Networks, Inc. Kernel scheduling based on precedence constraints and/or artificial intelligence techniques
JP7170638B2 (ja) 2016-12-01 2022-11-14 アビニシオ テクノロジー エルエルシー 系統メタデータの生成、アクセス、及び表示
US10802945B2 (en) * 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs
US10552218B2 (en) * 2017-01-06 2020-02-04 Microsoft Technology Licensing, Llc Dynamic context of tasks
JP7267819B2 (ja) * 2019-04-11 2023-05-02 株式会社 日立産業制御ソリューションズ 並列タスクスケジューリング方法
CN110471754B (zh) * 2019-08-22 2022-04-05 中国工商银行股份有限公司 作业调度中的数据展示方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263358B1 (en) * 1997-07-25 2001-07-17 British Telecommunications Public Limited Company Scheduler for a software system having means for allocating tasks
US6480876B2 (en) * 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6490611B1 (en) * 1999-01-28 2002-12-03 Mitsubishi Electric Research Laboratories, Inc. User level scheduling of inter-communicating real-time tasks
US20030149714A1 (en) * 2001-10-26 2003-08-07 Fabio Casati Dynamic task assignment in workflows
US6675189B2 (en) * 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4893234A (en) * 1987-01-15 1990-01-09 United States Department Of Energy Multi-processor including data flow accelerator module
US5617510A (en) * 1989-06-13 1997-04-01 Schlumberger Technology Corporation Dependency graph solution for constraint systems
IL93239A (en) * 1990-02-01 1993-03-15 Technion Res & Dev Foundation High flow-rate synchronizer/schedular apparatus for multiprocessors
US6185516B1 (en) * 1990-03-06 2001-02-06 Lucent Technologies Inc. Automata-theoretic verification of systems
AU3944793A (en) * 1992-03-31 1993-11-08 Aggregate Computing, Inc. An integrated remote execution system for a heterogenous computer network environment
US5689711A (en) * 1995-04-21 1997-11-18 Bardasz; Theodore Method and apparatus for representing data dependencies in software modeling systems
US5808625A (en) * 1995-08-04 1998-09-15 Silicon Graphics Incorporated System and method for using dependency graphs for the control of a graphics creation process
US20030005407A1 (en) * 2000-06-23 2003-01-02 Hines Kenneth J. System and method for coordination-centric design of software systems
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6574788B1 (en) * 2000-11-13 2003-06-03 Reshape, Inc. Method and system for automatically generating low level program commands as dependency graphs from high level physical design stages
US7152157B2 (en) * 2003-03-05 2006-12-19 Sun Microsystems, Inc. System and method for dynamic resource configuration using a dependency graph
US7191329B2 (en) * 2003-03-05 2007-03-13 Sun Microsystems, Inc. Automated resource management using perceptron prediction
US7594227B2 (en) * 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263358B1 (en) * 1997-07-25 2001-07-17 British Telecommunications Public Limited Company Scheduler for a software system having means for allocating tasks
US6480876B2 (en) * 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6675189B2 (en) * 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
US6490611B1 (en) * 1999-01-28 2002-12-03 Mitsubishi Electric Research Laboratories, Inc. User level scheduling of inter-communicating real-time tasks
US20030149714A1 (en) * 2001-10-26 2003-08-07 Fabio Casati Dynamic task assignment in workflows

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JAPS中任务调度协议的设计与实现. 李晓明,陈道蓄,谢立.计算机科学,第27卷第12期. 2000
JAPS中任务调度协议的设计与实现. 李晓明,陈道蓄,谢立.计算机科学,第27卷第12期. 2000 *

Also Published As

Publication number Publication date
US7594227B2 (en) 2009-09-22
CN101276290A (zh) 2008-10-01
JP2007528081A (ja) 2007-10-04
AU2005221142A1 (en) 2005-09-22
EP1735704A4 (en) 2014-02-12
JP5897816B2 (ja) 2016-03-30
CA2880884A1 (en) 2005-09-22
JP4891225B2 (ja) 2012-03-07
EA200601657A1 (ru) 2007-02-27
EA012057B1 (ru) 2009-08-28
US20090089552A1 (en) 2009-04-02
US8082544B2 (en) 2011-12-20
CA2558826C (en) 2015-05-12
EP1735704A2 (en) 2006-12-27
CN101276290B (zh) 2015-04-01
CN1965296A (zh) 2007-05-16
CA2558826A1 (en) 2005-09-22
AU2005221142B2 (en) 2011-05-12
EP2541411A3 (en) 2014-02-12
EP2541411A2 (en) 2013-01-02
WO2005086906A2 (en) 2005-09-22
JP2011170879A (ja) 2011-09-01
CA2880884C (en) 2016-12-06
WO2005086906A3 (en) 2006-11-16
US20050257221A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
CN100426239C (zh) 依赖关系图参数范围的划分
US5381534A (en) System for automatically generating efficient application - customized client/server operating environment for heterogeneous network computers and operating systems
US6011917A (en) Method and computer system for generating process management computer programs from process models
CN103069385A (zh) 动态加载基于图的计算
KR20200023706A (ko) 스마트 계약을 지원하는 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 및 컴퓨팅 장치
CN100514294C (zh) 避免数据处理设备中的数据不一致性的方法和装置
CN1799059B (zh) 用于将提供商产品包自动转换成资源管理系统可执行的客户特定的服务环境定义的方法和系统
US5926635A (en) Method for reducing complexities when communicating between tasks
US11262986B2 (en) Automatic software generation for computer systems
JP3712984B2 (ja) 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体
CN116643854A (zh) 一种服务编排方法、装置、流程控制器及任务处理器
Samaddar et al. Resource sharing and scheduling for cyclic production in a computer-integrated manufacturing cell
Harvey et al. Comparing inter-tool communication in control-centred tool integration frameworks
JPH0877118A (ja) 分散処理装置及びプロセス実行方法
CN111459576B (zh) 一种数据分析处理系统和模型运行方法
Lancia et al. Scheduling
CN107609026B (zh) 一种数据密集型应用集成测试方法及系统
CN115525296A (zh) 一种多微信小程序多环境集成部署系统
Coulaud et al. Para++: A high level C++ interface for message passing
KR100650434B1 (ko) 외부화 가능 추론 구성 요소들을 위한 시스템 및 방법
KR20210099880A (ko) 컴파일러를 이용한 난독화 방법 및 시스템
AU2011204916B2 (en) Managing parameter access in a task managing system
CN114721664A (zh) 一种编译方法及装置
CN114625551A (zh) 车辆通信方法及装置
CN115525297A (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: AB INITIO SOFTWARE CORP.

Free format text: FORMER OWNER: ARCHITEKTEN CO., LTD.

Effective date: 20100412

Owner name: ARCHITEKTEN CO., LTD.

Free format text: FORMER OWNER: AB INITIO SOFTWARE CORP.

Effective date: 20100412

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: AB INITIO SOFTWARE CORP.

Free format text: FORMER NAME: AB KAIYUAN SOFTWARE CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: Massachusetts, USA

Patentee after: Qiyuan Software Co.,Ltd.

Address before: Massachusetts, USA

Patentee before: Ab Initio Technology LLC

TR01 Transfer of patent right

Effective date of registration: 20100412

Address after: Massachusetts, USA

Patentee after: AB INITIO TECHNOLOGY LLC

Address before: Massachusetts, USA

Patentee before: Archie Taco Ltd.

Effective date of registration: 20100412

Address after: Massachusetts, USA

Patentee after: Archie Taco Ltd.

Address before: Massachusetts, USA

Patentee before: Qiyuan Software Co.,Ltd.