CN101276290B - 用于检查参数访问的方法及任务管理系统 - Google Patents
用于检查参数访问的方法及任务管理系统 Download PDFInfo
- Publication number
- CN101276290B CN101276290B CN200810097104.3A CN200810097104A CN101276290B CN 101276290 B CN101276290 B CN 101276290B CN 200810097104 A CN200810097104 A CN 200810097104A CN 101276290 B CN101276290 B CN 101276290B
- Authority
- CN
- China
- Prior art keywords
- task
- parameter
- sequencing
- assignment
- scope
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Abstract
本发明公开了一种用于检查参数访问的方法以及任务管理系统。其中,该用于检查参数访问的方法包括:接受用于多个任务的定序限制的描述内容,其中至少一些任务未彼此定序;对于一个参数或多个参数中的每个参数,识别访问所述参数的任务;以及根据所述定序限制的描述内容,检查通过识别的任务对所述参数的访问中潜在的冲突。
Description
本申请是申请日为2005年3月8日、申请号为200580007518.7、发明名称为“依赖关系图参数范围的划分”的中国发明专利申请的分案申请。
技术领域
本发明涉及依赖关系图中的参数范围的划分,尤其涉及用于检查参数访问的方法及任务管理系统。
背景技术
计算机作业控制系统已经被用于根据与待执行程序的定序相关的限制来顺序执行计算机程序或其它处理。一种指定定序限制的方法是使用依赖关系图。程序可接受在将作业提交给系统时所指定的变量。这类作业控制系统的一个示例是分布式批处理系统,其中可指定不同的作业在不同的计算机或不同类型的计算机(例如超级计算机)上执行,并且不同作业之间的依赖关系在作业被执行之前清楚地标识。一种在作业之间传送信息的方法是通过公用数据存储,例如通过文件系统中的文件进行。这类作业控制的另一示例涉及分布式个人计算机环境中的作业调度,例如,调度需要以特定顺序在不同计算机上执行的维护任务。
发明内容
作为概括方案,本发明提供一种用于绑定参数值的方法。根据依赖关系图定义多个任务。保持分别与不同的任务范围关联的多个参数范围。在第一任务中使用的参数与参数值绑定。这种绑定操作包括根据依赖关系图识别第一范围,并根据所识别的范围检索所述参数值。
这一方案可包括一个或多个以下特征:
在第二任务执行期间确定赋予参数的值。所述参数的值被存储在与第二任务相关的第一参数范围中。
所述依赖关系图指定任务的执行顺序。识别所述第一范围的操作包括识别必须在第一任务之前执行的任务。识别所述第一范围的操作还包括识别对所述第一参数赋值的任务,并且根据所述依赖关系图识别最后执行的任务。
作为另一概括方案,本发明还提供一种用于检查参数访问的方法,该方法包括接受对多个任务的定序限制的描述内容,其中至少一些任务未彼此定序。这种检查操作包括:对一个或多个参数中的每个参数,识别访问这些参数的任务;以及根据定序限制的描述内容,检查通过识别的任务对参数的访问中潜在的冲突。
本发明的方案可包含一个或多个下列优点:
利用在各任务之间传送的显式参数,能够检查参数值中的冲突和模糊性。例如,这种检查能够确保各参数在任务计划的重复执行中将取相同的值。
根据依赖关系图中的优先级的范围划分优选为根据嵌套或计划和子计划进行的范围划分,这是因为参数可在计划中的同级任务之间传送。
通过允许在依赖关系图的不同部分中使用的相同参数名能够根据范围划分规则被多重使用而不引入冲突或模糊性,多种参数范围的使用可减少名称冲突。这样就能够允许不同的开发者在不引入名称冲突并且不必清楚标识不同的命名域(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(63 1-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 (10)
1.一种用于检查参数访问的方法,包括:
接受用于多个任务的定序限制的描述内容,其中至少一些任务未彼此定序,所述定序限制识别必须在下游任务之前完成的上游任务,至少一些所述任务具有参数;以及
检查通过从所述多个任务中选择的下游任务对所述参数之一的访问中潜在的冲突,包括:
识别能给该参数赋值的、该下游任务的上游任务,所述上游任务根据所述定序限制的描述内容和与该参数相关的任务范围而识别出;以及
确定是否有多个所述上游任务给该参数赋值以检查模糊性。
2.根据权利要求1所述的方法,其中接受所述定序限制的描述内容的操作包括接受依赖关系图的描述内容。
3.根据权利要求1所述的方法,其中识别能给该参数赋值的上游任务的操作包括处理任务的声明。
4.根据权利要求1所述的方法,其中检查对所述参数之一的访问中潜在的冲突的操作包括确定所述参数之一的实例的范围,以及是否多个范围包含引用该参数的任务。
5.根据权利要求4所述的方法,还包括:如果多个范围包含引用该参数的任务,则将引用的参数识别为模糊参数。
6.一种用于检查参数访问的系统,包括:
接受用于多个任务的定序限制的描述内容的装置,其中至少一些任务未彼此定序,所述定序限制识别必须在下游任务之前完成的上游任务,至少一些所述任务具有参数;以及
检查通过从所述多个任务中选择的下游任务对所述参数之一的访问中潜在的冲突的装置,包括:
识别能给该参数赋值的、该下游任务的上游任务,所述上游任务根据所述定序限制的描述内容和与该参数相关的任务范围而识别出;以及
确定是否有多个所述上游任务给该参数赋值以检查模糊性。
7.根据权利要求6所述的系统,其中接受所述定序限制的描述内容的操作包括接受依赖关系图的描述内容。
8.根据权利要求6所述的系统,其中识别访问参数的任务的操作包括处理所述任务的声明。
9.根据权利要求6所述的系统,其中检查对所述参数之一的访问中潜在的冲突的操作包括确定所述参数之一的实例的范围,以及是否多个范围包含引用该参数的任务。
10.根据权利要求9所述的系统,其中还包括:如果多个范围包含引用所述参数的任务,则将引用的参数识别为模糊参数的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/795,374 | 2004-03-08 | ||
US10/795,374 US7594227B2 (en) | 2004-03-08 | 2004-03-08 | Dependency graph parameter scoping |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800075187A Division CN100426239C (zh) | 2004-03-08 | 2005-03-08 | 依赖关系图参数范围的划分 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101276290A CN101276290A (zh) | 2008-10-01 |
CN101276290B true CN101276290B (zh) | 2015-04-01 |
Family
ID=34976229
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800075187A Active CN100426239C (zh) | 2004-03-08 | 2005-03-08 | 依赖关系图参数范围的划分 |
CN200810097104.3A Active CN101276290B (zh) | 2004-03-08 | 2005-03-08 | 用于检查参数访问的方法及任务管理系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800075187A Active CN100426239C (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) | CN100426239C (zh) |
AU (1) | AU2005221142B2 (zh) |
CA (2) | CA2558826C (zh) |
EA (1) | EA012057B1 (zh) |
WO (1) | WO2005086906A2 (zh) |
Families Citing this family (59)
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 |
WO2007085121A1 (en) * | 2006-01-26 | 2007-08-02 | 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 |
KR101639292B1 (ko) * | 2008-12-02 | 2016-07-13 | 아브 이니티오 테크놀로지 엘엘시 | 데이터 요소 사이의 관계를 시각화하는 방법 |
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 |
CN107066241B (zh) * | 2010-06-15 | 2021-03-09 | 起元技术有限责任公司 | 用于动态加载基于图的计算的系统和方法 |
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 |
US8595743B2 (en) * | 2012-05-01 | 2013-11-26 | Concurix Corporation | Network aware process scheduling |
US8726255B2 (en) | 2012-05-01 | 2014-05-13 | Concurix Corporation | Recompiling with generic to specific replacement |
US20120222043A1 (en) * | 2012-05-01 | 2012-08-30 | Concurix Corporation | Process Scheduling Using Scheduling Graph to Minimize Managed Elements |
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 |
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 |
US10423424B2 (en) * | 2012-09-28 | 2019-09-24 | Nvidia Corporation | Replicated stateless copy engine |
US9852153B2 (en) | 2012-09-28 | 2017-12-26 | Ab Initio Technology Llc | Graphically representing programming attributes |
US8607018B2 (en) | 2012-11-08 | 2013-12-10 | Concurix Corporation | Memory usage configuration based on observations |
US8656134B2 (en) | 2012-11-08 | 2014-02-18 | Concurix Corporation | Optimized memory configuration deployed on executing code |
US8656135B2 (en) | 2012-11-08 | 2014-02-18 | Concurix Corporation | Optimized memory configuration deployed prior to execution |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph 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 |
US20130219372A1 (en) | 2013-03-15 | 2013-08-22 | Concurix Corporation | Runtime Settings Derived from Relationships Identified in Tracer 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 |
AU2014360308B2 (en) | 2013-12-05 | 2018-11-29 | 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 |
US10853149B2 (en) * | 2015-05-19 | 2020-12-01 | Micro Focus Llc | 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 |
US20180359340A1 (en) * | 2015-11-27 | 2018-12-13 | Cadens Medical Imaging Inc. | Method and system for executing a function for processing data using a server |
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 |
AU2017367772B2 (en) | 2016-12-01 | 2020-05-14 | Ab Initio Technology Llc | Generating, accessing, and displaying lineage metadata |
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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202987A (en) * | 1990-02-01 | 1993-04-13 | Nimrod Bayer | High flow-rate synchronizer/scheduler apparatus and method for multiprocessors |
Family Cites Families (17)
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 |
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 |
AU735024B2 (en) | 1997-07-25 | 2001-06-28 | British Telecommunications Public Limited Company | Scheduler for a software system |
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 |
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 |
US7155720B2 (en) | 2001-10-26 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Dynamic task assignment in workflows |
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 |
-
2004
- 2004-03-08 US US10/795,374 patent/US7594227B2/en active Active
-
2005
- 2005-03-08 AU AU2005221142A patent/AU2005221142B2/en active Active
- 2005-03-08 EP EP12181540.1A patent/EP2541411A3/en not_active Withdrawn
- 2005-03-08 CN CNB2005800075187A patent/CN100426239C/zh active Active
- 2005-03-08 JP JP2007502997A patent/JP4891225B2/ja active Active
- 2005-03-08 CA CA2558826A patent/CA2558826C/en active Active
- 2005-03-08 CN CN200810097104.3A patent/CN101276290B/zh active Active
- 2005-03-08 WO PCT/US2005/007923 patent/WO2005086906A2/en active Application Filing
- 2005-03-08 EP EP05725228.0A patent/EP1735704A4/en not_active Ceased
- 2005-03-08 EA EA200601657A patent/EA012057B1/ru unknown
- 2005-03-08 CA CA2880884A patent/CA2880884C/en active Active
-
2008
- 2008-12-04 US US12/328,413 patent/US8082544B2/en active Active
-
2011
- 2011-04-21 JP JP2011095066A patent/JP5897816B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202987A (en) * | 1990-02-01 | 1993-04-13 | Nimrod Bayer | High flow-rate synchronizer/scheduler apparatus and method for multiprocessors |
Non-Patent Citations (1)
Title |
---|
The function of FUNCTION in LISP or why the FUNARG problem should be called the environment problem;JOEL MOSES;《ACM COMMUNICATIONS IN COMPUTER ALGEBRA》;19700701(第15期);13-27 * |
Also Published As
Publication number | Publication date |
---|---|
WO2005086906A2 (en) | 2005-09-22 |
JP2007528081A (ja) | 2007-10-04 |
CA2558826A1 (en) | 2005-09-22 |
EP1735704A2 (en) | 2006-12-27 |
CN101276290A (zh) | 2008-10-01 |
CA2558826C (en) | 2015-05-12 |
AU2005221142B2 (en) | 2011-05-12 |
EA012057B1 (ru) | 2009-08-28 |
CA2880884C (en) | 2016-12-06 |
JP4891225B2 (ja) | 2012-03-07 |
EP2541411A2 (en) | 2013-01-02 |
JP5897816B2 (ja) | 2016-03-30 |
US7594227B2 (en) | 2009-09-22 |
EA200601657A1 (ru) | 2007-02-27 |
US8082544B2 (en) | 2011-12-20 |
AU2005221142A1 (en) | 2005-09-22 |
EP1735704A4 (en) | 2014-02-12 |
CA2880884A1 (en) | 2005-09-22 |
JP2011170879A (ja) | 2011-09-01 |
EP2541411A3 (en) | 2014-02-12 |
CN1965296A (zh) | 2007-05-16 |
WO2005086906A3 (en) | 2006-11-16 |
US20050257221A1 (en) | 2005-11-17 |
US20090089552A1 (en) | 2009-04-02 |
CN100426239C (zh) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101276290B (zh) | 用于检查参数访问的方法及任务管理系统 | |
US5381534A (en) | System for automatically generating efficient application - customized client/server operating environment for heterogeneous network computers and operating systems | |
WO2021114530A1 (en) | Hardware platform specific operator fusion in machine learning | |
US6438590B1 (en) | Computer system with preferential naming service | |
EP0428084B1 (en) | Method and apparatus for compiling computer programs with interprocedural register allocation | |
CN100498699C (zh) | 在运行时系统中共享对象 | |
CA1159151A (en) | Cellular network processors | |
US6708331B1 (en) | Method for automatic parallelization of software | |
US20080027965A1 (en) | Multiple source data management using a conflict rule | |
WO1997008634A1 (en) | Method and computer system for generating process management computer programs for process models | |
CN103069385A (zh) | 动态加载基于图的计算 | |
CN103218245A (zh) | 选择要在计算系统中执行的优化代码的方法和系统 | |
JPH06266683A (ja) | 並列処理装置 | |
CN1989489A (zh) | 在运行时系统中共享对象 | |
US5465319A (en) | Architecture for a computer system used for processing knowledge | |
CN1938683A (zh) | 数据处理设备中避免应用程序的不同功能对全局变量的访问之间的数据不一致性的方法 | |
CN103064955A (zh) | 查询规划方法及装置 | |
US7454749B2 (en) | Scalable parallel processing on shared memory computers | |
US5926635A (en) | Method for reducing complexities when communicating between tasks | |
KR19980079668A (ko) | 병렬 데이타 처리 시스템 및 그 제어 방법 | |
Samaddar et al. | Resource sharing and scheduling for cyclic production in a computer-integrated manufacturing cell | |
AU2011204916B2 (en) | Managing parameter access in a task managing system | |
Manning | A peek at Acore, an Actor core language | |
Schulze et al. | Service Migration and a Transparency Service | |
Glauert | Parallel Implementation through Object Graph Rewriting |
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 |