JP2007528081A - 依存性グラフのパラメータのスコーピング - Google Patents

依存性グラフのパラメータのスコーピング Download PDF

Info

Publication number
JP2007528081A
JP2007528081A JP2007502997A JP2007502997A JP2007528081A JP 2007528081 A JP2007528081 A JP 2007528081A JP 2007502997 A JP2007502997 A JP 2007502997A JP 2007502997 A JP2007502997 A JP 2007502997A JP 2007528081 A JP2007528081 A JP 2007528081A
Authority
JP
Japan
Prior art keywords
task
parameter
identifying
value
context
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
Application number
JP2007502997A
Other languages
English (en)
Other versions
JP2007528081A5 (ja
JP4891225B2 (ja
Inventor
フランク インチンゴロ
クレイグ ダブリュ スタンフィル
Original Assignee
エービー イニティオ ソフトウェア コーポレーション
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 エービー イニティオ ソフトウェア コーポレーション filed Critical エービー イニティオ ソフトウェア コーポレーション
Publication of JP2007528081A publication Critical patent/JP2007528081A/ja
Publication of JP2007528081A5 publication Critical patent/JP2007528081A5/ja
Application granted granted Critical
Publication of JP4891225B2 publication Critical patent/JP4891225B2/ja
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

幾つかのタスクが依存性グラフに従って定義される。多数のパラメータコンテキストが保持され、それぞれはタスクの異なるスコープと関係付けられている。第1のタスク内で用いられるパラメータが、値にバインドされる。このバインドは、依存性グラフに従って第1のコンテキストを識別するステップと、識別したコンテキストからパラメータに対する値を検索するステップを含む。

Description

発明の詳細な説明
発明の背景
本発明は、依存性グラフのパラメータのスコーピングに関する。
コンピュータのジョブ管理システムはプログラムを実行すべき順序に関する制約に従って、コンピュータープログラム、または他の処理の実行をシーケンス化するために用いられている。順序制約を規定する一手法は、依存性グラフを用いる。プログラムは、ジョブがシステムに提示された時点で規定される引数を受け入れることができる。このようなジョブ管理システムの一例には、異なるコンピュータまたは異なる種類のコンピュータ(例えば、スーパーコンピュータ)上で異なるジョブを実行するよう規定でき、異なるジョブ間の依存性を、ジョブを実行する前に明示的に識別する分散型バッチシステムがある。ジョブ間の情報交信の一手法は、ファイルシステム内のファイルを介する等の共通データ格納を介して行う。このようなジョブ管理の別の例は、分散型パーソナルコンピュータ環境におけるジョブスケジュール、例えば、特定シーケンス内の異なるコンピュータ上で実行する必要があるスケジュールメンテナンスタスクに関する。
概要
一般的な局面では、本発明は、パラメータの値をバインドするための方法を特長とする。幾つかのタスクが、依存性グラフに従って定義される。多数のパラメータコンテキストが保持され、それぞれはタスクの異なるスコープと関係付けられている。第1のタスクに用いるパラメータは値とバインドされる。このバインドは、依存性グラフに従って第1のコンテキストを識別することと、識別したコンテキストからパラメータに対する値を引き出すことが含まれる。
この局面は、以下の特長の内の一つ以上を含むことができる:
パラメータに割り当てるための値は、第2のタスクを実行中に決定される。パラメータに対する値は、第2のタスクと関係付けられる第1のパラメータコンテキストに格納される。
依存性グラフは、タスクに対する実行順序を規定する。第1のコンテキストの識別には、第1のタスクの前に実行する必要があるタスクを識別することが含まれる。第1のコンテキストの識別には、第1のパラメータに値を割り当てるタスクを識別することと、依存性グラフに従って最後に実行するタスクを識別することも含まれる。
別の局面では、一般的に、本発明は、少なくとも幾つかのタスクが互いに順序付けられていない複数のタスクに対する順序制約の仕様を受け入れることを含むパラメーターアクセスをチェックするための方法を特長とする。このチェックには、一つ以上のパラメータのそれぞれに対して、これらパラメータにアクセスするタスクを識別することと、順序制約の仕様に従って、識別したタスクによるパラメータへのアクセスにおける潜在的なコンフリクトをチェックすることが含まれる。
本発明の局面には、以下の長所の内の一つ以上が含まれる:
タスク間で渡される明示的なパラメータを用いることにより、パラメータ値のコンフリクトおよび曖昧さをチェックできる。例えば、このようなチェックにより、タスク計画の繰り返される実行においてパラメータが同一値をとることが確実になる。
依存性グラフの手順に従うスコーピングは、ネスティングまたは計画およびサブ計画に従ってスコーピングすることが好ましいことがある。なぜなら、パラメータは、計画内のピアタスク間で渡すことができるからである。
多数のパラメータコンテキストの使用により、スコーピング規則に従ったコンフリクトまたは曖昧さを招くことのない多重使用の影響を受ける依存性グラフの異なる部分で、同一パラメータ名を用いることが可能になるので、名前コンフリクトを低減できる。これにより、異なる開発者が名前コンフリクトを招かずに、異なる名前領域を明示的に識別しなくても、計画の異なる部分を書くことが可能になる。
本発明の他の特長または利点は、以下の説明およびクレームから明らかである。
説明
概略
図1を参照すると、タスク管理システム100は、計画のどのタスクを他のタスクが実行される前に完了しなければならないかを規定する依存性制約に従って、全体計画を作り上げるタスクの実行を制御する。有向の依存性グラフ132を用いて従属性制約が表され、各ノード134が計画の異なるタスクに対応し、あるノードから別のノードへの有向の弧136のそれぞれが、第1の「上流」ノードに対応するタスクは第2の「下流」ノードと対応するタスクが実行される前に完了しなければならないという順序制約を示す。更に一般的には、ノードと対応するタスクは、グラフ内の全ての上流タスクが完了した後だけ実行できる。依存性グラフはタスクの部分的な順序付けを確立する。従って、タスクは、グラフベースの依存性制約を含む制約を受けて同時に実行できる。また、タスクを異なるコンピュータ上で実行して、計画の全体実行における並列処理による速度向上を達成してもよい。
タスク管理システム100には、計画仕様120を読み込むタスクマネージャ110が含まれる。計画仕様は、依存性グラフ132を定義するグラフ仕様122、およびそれぞれのタスクの特性を定義するタスク仕様124を含む。グラフ仕様122は、ノード134のリスト、およびそれぞれがグラフのソースノードおよび宛先ノードを識別する弧136のリストにより、依存性グラフを定義する。各ノードはタスク定義と関係付けられていて、これはタスク仕様124で規定され、タスクで実行される特定操作を規定する。
タスクは、タスクテンプレートを用いて定義でき、計画は計画テンプレートを用いて定義できる。タスクまたは計画のためのテンプレートは、シンボル的に表され、タスクが実行されるまで必ずしも値にバインドされるとは限らないパラメータへの参照を含むことができる。例えば、タスクテンプレートは、FILENAMEと命名されたパラメータへの参照を含むとともに、「ドル記号」構文の$FILENAMEを用いて表現するそのパラメータへの参照を含むことができ、タスクの実行前または実行中に、タスクマネージャ110により特定の値にバインドされる。
幾つかのパラメータは、全体計画に対してグローバルであり、全体計画が最初に実行される時に値を割り当てられる。このようなパラメータは全体として、計画の正式なパラメータとすることができ、例えば、全体計画を呼び出すコマンド内で規定することができるか、または計画を呼び出すユーザからインタラクティブに引き出すことができる。
他のパラメータは、計画が最初に実行される時に規定される値を持っているとは限らない。このような動的パラメータは、一つ以上のタスクの実行中またはその実行の結果として、値を割り当てることができ、次いで、他のタスクのテンプレートにより参照される。例えば、図2では、パラメータAは、タスク1によりある値に設定することができ、次いで、その値をタスク2が用いることができる。
タスク管理システム100は、以下に説明に関連する幾つかの追加の特長をサポートする。第1の特長は、ノード134が単一タスクではなく、全体の「サブ計画」と関係付けることができることである。サブ計画は、部分的に順序付けしたタスクの下位レベルの計画である。サブ計画は、トップレベルの計画仕様と同一または類似の構造の計画仕様120を有する。
第2の特長は、タスクがその実行を通じて計画仕様120を修正できることである。詳細には、タスクは、グラフ132に追加のノード134および弧136を加え、タスクマネージャ110が提供するサービスを用いて追加ノードと関係付けられるタスクに対する特性を定義することができる。例えば、第1タスクは、実行すべき未知数(ランタイム前には)のタスクを有する計画に対するテンプレートを用いてサブ計画を生成できる。テンプレート内のタスクの数は、動的パラメータを用いてランタイム時にバインドする。生成したサブ計画は、タスクマネージャ110により第1タスクの高次レベルの計画に組み込まれる。
バインド手法
タスクマネージャ110は、以下に説明するようにパラメーターバインドの幾つかの選択的な手法の内の一つを用いる。あるいは、タスクマネージャ110は、例えば、パラメータの宣言に従って異なるパラメータには異なる手法を用いる組合せバインド手法を用いる。幾つか(または全て)の手法が異なる一局面は、パラメータ定義の適用範囲にある。
手法1
図3を参照すると、第1バインド手法では、タスクマネージャ110は、全てのパラメータに対して単一のグローバルコンテキスト310を保持する。タスクマネージャ110は、任意のパラメータの単一コピーを保持する。すなわち、タスクマネージャ110は、幾つかの異なるパラメータ名322のそれぞれを、そのパラメータの現在値324と関係付けるデータ構造320を保持する(対応するパラメータに値が割り当てられていない場合、値324は空のことがある)。このデータ構造320を用いて、グローバルパラメータの値および実行する際にタスクが動的に割り当てる値を保持することができる。
図2および図3を参照すると、この第1手法の実施例では、タスク1は、割当てA=FOOにより示されるように値FOOをパラメータAに割り当てる。タスクマネージャ110は、割り当てられた値FOOをタスク1から受け取り(タスク1からパラメータAの値セル324への矢印により示される)、値セル324にその値を格納する。タスクマネージャ110は後で、タスク2に対するテンプレート内のパラメータAへの参照をバインドするために、値FOOをタスク2に提供する。本実施例では、タスク2は、割当てB=$A/BAZを含み、パラメータBには値FOO/BAZが割り当てられることになる。タスクマネージャ110は、Bに対して割り当てられた値を受け取り、グローバルコンテキスト310に格納する。グラフ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の値を割り当てるのではなく、使用するのであり、従って、コンフリクトまたは曖昧さを表すことはない。
依存性グラフの静的チェックは、計画実行の前に、タスクマネージャ110が実行するか、または代替として、計画仕様の妥当性評価をする別のモジュールが、処理前に実行してもよい。グラフがタスクの実行により修正される状況では、静的チェックを再度実行するか、または強化してグラフ修正にあたる。
サブ計画を含む計画では、本手法の2つの変形を用いることができる。第1の変形では、タスクマネージャ110は、サブ計画の全てのレベルについての全パラメータに対して単一のコンテキストを保持する。サブ計画をもつノードを含む計画の静的チェックでは、そのサブ計画の任意のタスクによるパラメータ割り当ては、そのパラメータの値を用いる高位レベルの計画内の、任意の順序不定(そのサブ計画をもつノードに関する)タスクとコンフリクトする。
サブ計画と関わる第2の変形では、タスクマネージャ110は、各サブ計画のパラメータに対して別々のコンテキストを保持し、サブ計画が完了した時に、サブ計画から次に高位レベルの計画にどのパラメータがエクスポートされるかを、サブ計画の仕様が明示的に識別する。そのような変形では、静的チェックが、サブ計画のエクスポートされたパラメータと、サブ計画実行と順序付けられていない次に高位レベルの計画内のタスクのそのパラメータへのアクセスとの間のコンフリクトと関わる。
本手法の別のバージョンでは、タスクマネージャ110は、任意の特定のグローバル動的パラメータへの値の繰り返し割り当てを禁止する。
手法2
図4Aを参照すると、第2手法で、タスクマネージャ110は、全体として計画に設定されるパラメータに対するグローバルコンテキスト310、および依存性グラフの異なるノードとそれぞれが関係付けられる多数の動的コンテキスト410を保持する。パラメータを割り当てる各タスクは、そのパラメータの新規「インスタンス」を生成し、割り当てられた値を(タスクマネージャ110を介して)そのタスクと対応するノードと関係付けられる動的コンテキスト410内に格納する。従って、タスクマネージャ110は、パラメータと関係付けられる多数の値を格納でき、それぞれの値は、パラメータの異なるインスタンスと関係付けられる。任意の特定パラメータに対しては(例えば、A)、タスクマネージャ110は、パラメータが割り当てられている各タスクと関係付けられたパラメータの別々の値を保持する(各タスクは別々のノードおよび別々の動的コンテキスト410と対応しているからである)。
図4Bおよび図4Cを参照すると、パラメータの各インスタンスおよびその関係する動的コンテキスト410は、どのタスクがそのインスタンスに割り当てられた値を「見る」かを決定するタスクのスコープを有する。各動的コンテキスト410は、依存性グラフ132に従ってパターン420に付随する動的コンテキスト410間の関連性に基づいて、タスクの異なるスコープと関係付けられる。例えば、タスク1でA=FOOを割り当てられたパラメータAのインスタンス(動的コンテキスト410に格納されている)は、タスク3でA=BARを割り当てられているパラメータAのインスタンスと関係付けられるタスクスコープ432とは異なるタスクスコープ430を有する。タスク2でB=$A/BAZを割り当てられているパラメータBのインスタンスと関係付けられるタスクスコープ434は、タスク4を含むが、タスク5は含まない。本手法では、タスクスコープまたはパラメータのインスタンス(および関係するその動的コンテキスト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は、値FOO/BAZをBに割り当て、タスク2と関係付けられる動的コンテキスト410内に格納するためにタスクマネージャ110に提供する。
一般に、実行中は、タスクマネージャ110は、パラメータに値を割り当てるタスクで終了するグラフを通る上流パス(すなわち、単一弧を通る直接パス、または既に実行されたタスクを通る間接的なパス)を考慮することにより、タスク内のパラメータへの参照に値をバインドする。本実施例では、タスク2でパラメータAをバインドする場合、タスクマネージャ110は、パラメータがセットされているタスク1まで上流パスをたどる。
図2の実施例では、タスク4は、タスク1のパラメータAのインスタンス、およびタスク3のそれの両方のスコープ内にある可能性をもつ。すなわち、タスク4からタスク1(タスク2を通じて間接的に)およびタスク3(直接的に)までの上流パスがあり、それぞれ値をAに割り当てている。しかしながら、本実施例では、タスク3はタスク1の後に実行するという制約があるので曖昧さはない。多数の上流のパラメータ割り当てがあり、他の全ての後に順序付けられている一つのタスクがある場合、曖昧さはなく、最後のタスクの動的コンテキスト410のパラメータのインスタンスに割り当てられた値が用いられる。
第1の手法と同様に、潜在的な曖昧さは、依存性グラフから静的にチェックできる。詳細には、グラフ内のノード(タスク)でのパラメータへの各参照に対して、パラメータへの値を割り当てることができる上流タスクは、最初に識別される。そのようなタスクがない場合、パラメータは、定義されていない値をもつことになるか、または計画に対するグローバルコンテキストから提供される。正確に一つの上流タスクがある場合、曖昧さはない。パラメータに値を割り当てる多数の上流タスクがある場合、これらのタスク(すなわち、依存性グラフにより他のものの後に実行する制約がある)の内の唯一つが他のものの後に順序付けられない限り、曖昧さが存在する。
実装手法
図5を参照すると、タスク仕様500(図1のタスク仕様124に含まれている)は、宣言部510および命令部520を含む。宣言部510は、対応するタスクの実行を通じて割り当てられる動的パラメータを識別する(例えば、一つ、または複数の宣言命令文を用いて)。図5に示すタスク仕様は、図2のタスク1と対応する。パラメータAは、宣言「動的A」512として示すように、タスクにより動的に割り当てられるとして宣言する。宣言部510はまた、利用可能なパラメータのスコープに従って、タスクマネージャ110がバインドするよう要求されるパラメータへの参照も識別する。
命令部520は、タスクが実行する操作のためのコンピュータ命令(例えば、プログラム言語または他の手続き命令文)、および命令「A=FOO」522等の動的パラメータに値を割り当てるための命令を含む。例えば、このようなコンピュータ命令は、ユーザが規定するか、またはコンピュータ処理により自動的に生成できる。
タスクマネージャ110は、計画に対するタスク仕様の宣言部を処理して、対応するタスクの実行中に、どのパラメータを割り当てるか、または参照するか、またはその両方をすべきか決定できる。タスクマネージャ110は、タスク仕様の命令部を追加して処理することにより、または代替として、動的パラメータ割り当てまたは参照に対する別の種類の宣言文を用いることにより、割り当てまたは参照を区別できる。例えば、図2に示す実施例では、タスクマネージャ110は、タスク仕様を構文解析して、タスク2がパラメータAを参照する一方、タスク3がAに値を割り当てることを決定できる。これにより、タスクマネージャ110は、タスク2での参照およびタスク3での割り当てがコンフリクトする第1手法(図3参照)に対する静的チェックのような静的チェックを実行できる。
宣言部が、参照されるべきパラメータを識別できる場合、タスクマネージャ110は、パラメータ環境と命令部520の命令を実行する前にバインドした値とをアセンブルできる。タスクの環境をアセンブルすると、タスクマネージャ110は、タスク仕様の命令部の命令を実行する処理を呼び出す。次いで、その処理は、それに対して作成された環境からのパラメータ値にアクセスする。実行中は、動的パラメータに対する割り当て命令処理の結果、タスク実行の出力である動的パラメータ割り当て部530に(パラメータ、値)の対が記録される。例えば、対(A,FOO)532が割り当て部530に記録されることになる。タスクマネージャ110は、命令部520の命令実行の後、割り当て部530を受け取り、その内容を用いてパラメータ値を更新する。
本手法の一特定の実装では、命令部520には、「ksh」等のシェルスクリプト言語の命令文が含まれる。命令を解釈するシェルスクリプトを呼び出す前に、タスクマネージャ110は、宣言部510を用いてシェル命令を処理するのに用いるパラメータ値の環境をアセンブルする。この実装では、割り当て命令文は、スクリプトのテキスト出力への出力命令文の形式をとる。すなわち、割り当て「A=FOO」を用いるのではなく、スクリプト命令は「PRINT A=FOO」等の命令文を含み、その結果「A=FOO」の行が出力される。スクリプトのテキスト出力は、動的パラメータ割り当て部530を形成する。タスクマネージャ110は、テキスト出力を受け取り、適切な動的コンテキスト410に値を格納する割り当て命令文を解釈する。
別の実装では、命令部520の命令を解釈する処理は、タスクマネージャ110と通信し、タスクマネージャ110は、動的パラメータの値を格納、またはアクセスするリクエストのサービスを行う。パラメータ参照を値にバインドして命令を実行する必要がある場合、処理は、そのパラメータに対する適切な動的コンテキスト410を決定し、その動的コンテキスト410の値を戻すタスクマネージャ110にリクエストを送る。同様に、パラメータを値に割り当てる場合、処理は、適切な動的コンテキスト410の値を格納するリクエストを送る。
代替の実装では、タスク仕様500の宣言部510は、実行中にタスクが必要とするパラメータを識別せず、タスクの命令が実行されている間、パラメータ値をリクエストするのに適した交信メカニズムを利用することができない。この実装では、そのタスクマネージャ110は、スコープがタスクを含む全てのパラメーターインスタンスの完全なリストをアセンブルする。バインドが曖昧さを招く可能性があるパラメータに対しては(例えば、多数の上流の順序不定タスクによりパラメータに値が割り当てられたため)、パラメータ値がambiguous-Value(曖昧な値)等のインジケータで置換されて、パラメータがタスク内で参照されたというエラーが発生する。
宣言部510が、動的に割り当てられるか、および/または各タスク内で参照されるパラメータの宣言を含まない場合、依存性グラフの静的チェックが不可能になることもある。しかしながら、タスクマネージャ110は、計画実行中に発生するかもしれない幾つかの潜在的コンフリクトを依然として識別できる。例えば、単一のグローバルコンテキスト(図3参照)をもつスコーピング手法を用いると、タスクマネージャ110が計画の実行中に、多数の順序不定タスクが一つのパラメータに値を割り当てたことを検出した場合、タスクマネージャ110は、潜在的なコンフリクトを識別できる。次いで、タスク管理システム100は、タスクマネージャが識別したコンフリクトを扱うことができる。
実施例
図6Aを参照すると、動的に割り当てたパラメータを用いる実施例が、幾つかのデータファイル641〜643の処理に関わっていて、そのそれぞれは全体計画の異なるタスク631〜633により処理される。データファイル641〜643のファイル名は計画を最初に実行する時には未知である。正確には、ファイル名はテキストファイル622にリストアップされ、その名称は全体計画に対してグローバルパラメータLIST_FILEとして提供される。
計画は、LIST_FILEのファイル622を開いて、その内容を読み出すのを受け持つ第1タスク620を含む。このタスク620は、ファイルを開いて内容を読み取り、リストにされた別々のデータファイルの数を決定する。本実施例では、リストファイル622は3つのファイル名、FNAME1.DAT、FNAME2.DAT、およびFNAME3.DATを有する。タスクはリストにされたファイル641〜643を、例えば、データネットワークにわたるファイル転送プロトコルを用いて検索する。タスク1は、幾つかの動的パラメータ、NUM_INPUTおよびDATA_FILE_1〜DATA_FILE_3に値を割り当て、適切なコンテキスト610にそれを記録するタスクマネージャ110に、この割り当て情報を渡す(例えば、使用するスコーピング手法に依存するグローバルコンテキストまたはタスク1と関係付けられる動的コンテキスト)。
本実施例のこの第1バージョンでは、開始時に規定した計画は、入力ファイルを処理するための、タスク2〜4(631〜633)の3つのインスタンスのタスクを有する。各タスクは、タスク1が割り当てた動的パラメータを参照することにより、その対応する入力データファイルの名称を検索する。
本実施例の変形は、タスクが計画仕様を修正することができるという利点がある。計画は、開始時には、単一タスク、GET NAMESタスク1(620)だけを有する。GET NAMESタスクが、処理するデータファイルが3つあるということを決定した後、タスクは、タスクマネージャ110のサービスを利用して、3つの処理タスク631〜633を作成し、それらを自身に接続する(タスク1)。タスク1が完了した後、タスクマネージャ110は、上記のように新規に作成したタスク631〜633を実行する。
代替として、本実施例の別の変形では、タスクマネージャ110は、修正可能な幾つかのタスクを有する計画テンプレートを用いることができる。図6Bを参照すると、計画は、開始時には、二つのタスク、GET NAMESタスク1(620)、およびPROCESSタスク2(650)を有する。GET NAMESタスクが、処理するデータファイルが3つあるということを決定した後、PROCESSタスクは、修正可能な幾つかのタスクを有する計画テンプレートを用いてサブ計画を作成する。PROCESSタスクは、動的パラメータNUM_INPUTを参照して、3つの(順序付けられていない)処理タスク631〜633をもつサブ計画を作成する。タスクマネージャ110は、上記のように、新規に作成したサブ計画内のタスク631〜633を実行する。
上記のパラメータースコーピング手法は、コンピュータ上で実行するためのソフトウエアを用いて実装できる。例えば、ソフトウエアは、一台以上のプログラムされるか、またはプログラム可能な(分散型、クライアント/サーバ、またはグリッド型等の各種のアーキテクチャからなってもよい)コンピューターシステム上で実行される一つ以上のコンピュータープログラム内に手順を形成する。コンピューターシステムそれぞれは、少なくとも一つのプロセッサ、少なくとも一つのデータ格納システム(揮発性または不揮発性メモリおよび/または格納素子を含む)、少なくとも一つの入力装置またはポート、および少なくとも一つの出力装置またはポートを含む。ソフトウエアは、例えば、計算グラフの設計および構成と関連する他のサービスを提供する長いプログラムの一つ以上のモジュールを形成する。
ソフトウエアは、汎用または特殊用途のプログラマブルコンピュータにより可読なCD−ROM等の媒体上に提供するか、またはそれを実行するコンピュータにネットワークを越えて配信する(伝搬信号で符号化する)。全ての機能は、特殊用途のコンピュータ上で、またはコプロセッサ等の特殊用途ハードウエアを用いて実行できる。ソフトウエアは、ソフトウエアが規定する計算の異なる部分を異なるコンピュータで実行する分散形式で実装してもよい。かかるコンピュータープログラムはそれぞれ、汎用または特殊用途プログラマブルコンピュータにより可読な格納媒体または装置(例えば、固体メモリまたは媒体、または磁気式または光式媒体)に格納するかまたはダウンロードし、その格納媒体、または装置をコンピューターシステムが読み取って、本明細書で説明した手順を実行する場合に、コンピュータを構成、および動作させるのが好ましい。発明性のある本システムは、コンピュータープログラムにより構成したコンピュータ可読格納媒体として実装されると考えてもよく、そのように構成した格納媒体は、コンピューターシステムに規定の、かつ所定の方法で本明細書で説明した機能を実行するよう動作させる。
言うまでもなく、上記説明は、説明を意図したものであり、添付クレームの適用範囲により定義される本発明の適用範囲を制限する意図はない。他の実施の形態は、以下のクレームの適用範囲内にある。
タスク管理システムである。 依存性グラフである。 タスクマネージャ内の単一グローバルコンテキストを含む図である。 タスクマネージャ内の多数のタスク特定の動的コンテキストを含む図である。 図2の依存性グラフに従って、動的コンテキスト間の関連性を示す図である。 図2の依存性グラフ内のタスクのスコープを示す図である。 タスク仕様である。 動的パラメータを用いるアプリケーションの実施例である。 動的パラメータを用いるアプリケーションの実施例である。

Claims (44)

  1. パラメータの値をバインドするための方法であって、
    依存性グラフに従って複数のタスクを定義するステップと、
    それぞれが前記タスクの異なるスコープと関係付けられている複数のパラメータコンテキストを保持するステップと、
    第1の前記タスクで用いられる第1のパラメータに値をバインドするステップであって、前記依存性グラフに従って第1の前記パラメータコンテキストを識別するステップおよび前記識別したコンテキストから前記パラメータに対する前記値を引き出すステップを含むステップと、
    を含む方法。
  2. 更に、
    第2の前記タスクの実行中に前記第1のパラメータに割り当てるための値を決定するステップと、
    前記第1のパラメータコンテキスト内の前記第1のパラメータに対する前記値を格納するステップと、
    を含む請求項1の方法。
  3. 前記第1のパラメータコンテキストが、前記第2のタスクと関係付けられる請求項2の方法。
  4. 前記依存性グラフが前記タスクの実行順序を規定し、前記第1のコンテキストを識別するステップが、前記第1のタスクの前に実行する必要があるタスクを識別するステップを含む請求項1の方法。
  5. 前記第1のコンテキストを識別するステップが、前記第1のパラメータに値を割り当てるタスクを識別するステップを含む請求項4の方法。
  6. 前記第1のパラメータに値を割り当てるタスクを識別するステップは、前記依存性グラフに従って最後に実行するタスクを識別するステップを含む請求項5の方法。
  7. パラメーターアクセスをチェックするための方法であって、
    少なくとも幾つかのタスクが互いに順序付けられていない複数の前記タスクに対する順序制約の仕様を受け入れるステップと、
    一つ以上のパラメータのそれぞれに対して、これらのパラメータにアクセスする前記タスクを識別するステップと、
    前記順序制約の仕様に従って、前記識別したタスクによる前記パラメータへのアクセスにおける潜在的なコンフリクトをチェックするステップと、
    を含む方法。
  8. 前記順序制約の仕様を受け入れるステップが、依存性グラフの仕様を受け入れるステップを含む請求項7の方法。
  9. パラメータにアクセスする前記タスクを識別するステップが、前記タスクに対する宣言を処理するステップを含む請求項7の方法。
  10. 前記パラメータへのアクセスにおける潜在的なコンフリクトをチェックするステップが、前記パラメータの内の一つにおけるインスタンスのスコープ、及び複数の前記スコープが前記パラメータを参照するタスクを含むかどうか、を決定するステップを含む請求項7の方法。
  11. 更に、複数の前記スコープが、前記パラメータを参照する前記タスクを含む場合、前記参照されるパラメータを曖昧なパラメータとして識別するステップを含む請求項10の方法。
  12. コンピューターシステムに、以下のステップを実行させるための命令を含むコンピュータ可読媒体上に格納されるソフトウエアであって、
    依存性グラフに従って複数のタスクを定義するステップと、
    前記タスクの異なるスコープとそれぞれが関係付けられる複数のパラメータコンテキストを保持するステップと、
    第1の前記タスクで用いられる第1のパラメータに値をバインドするステップであって、前記依存性グラフに従って第1の前記パラメータコンテキストを識別するステップおよび前記識別したコンテキストから前記パラメータに対する値を引き出すステップを含むステップと、
    を実行させるためのソフトウエア。
  13. 更に、前記コンピューターシステムに以下のステップを実行させるための命令を含む請求項12のソフトウエアであって、
    第2の前記タスクの実行中に、前記第1のパラメータに割り当てるための値を決定するステップと、
    前記第1のパラメータコンテキスト内の前記第1のパラメータに対する前記値を格納するステップと、
    を実行させるためのソフトウエア。
  14. 前記第1のパラメータコンテキストを前記第2タスクと関係付ける請求項13のソフトウエア。
  15. 前記依存性グラフが前記タスクの実行順序を規定し、前記第1のコンテキストを識別するステップが、前記第1のタスクの前に実行する必要があるタスクを識別するステップを含む請求項12のソフトウエア。
  16. 前記第1のコンテキストを識別するステップが、前記第1のパラメータに値を割り当てるタスクを識別するステップを含む請求項15のソフトウエア。
  17. 前記第1のパラメータに値を割り当てるタスクを識別するステップは、前記依存性グラフに従って最後に実行するタスクを識別するステップを含む請求項16のソフトウエア。
  18. タスク管理システムであって、
    依存性グラフに従って複数のタスクを定義するよう構成されるタスクマネージャ定義モジュールと、
    それぞれが前記タスクの異なるスコープと関係付けられている複数のパラメータコンテキストを保持する格納空間を有するタスクマネージャ動的コンテキストモジュールと、
    前記パラメータコンテキストへのアクセスを有し、第1の前記タスク内で用いられる第1のパラメータに値をバインドするよう構成され、前記依存性グラフに従って第1の前記パラメータコンテキストを識別するステップおよび前記識別したコンテキストから前記パラメータに対する値を引き出すステップを含むタスクマネージャーパラメーターバインドモジュールと、
    を含むシステム。
  19. 前記タスクマネージャーパラメーターバインドモジュールが更に、
    第2の前記タスクの実行中に前記第1のパラメータに割り当てるための値を決定するステップと、
    前記第1のパラメータコンテキスト内の前記第1のパラメータに対する前記値を格納するステップと、
    を実行するよう構成される請求項18のシステム。
  20. 前記第1のパラメータコンテキストが、前記第2タスクと関係付けられる請求項19のシステム。
  21. 前記依存性グラフが前記タスクの実行順序を規定し、前記第1コンテキストを識別するステップが、前記第1のタスクの前に実行する必要があるタスクを識別するステップを含む請求項18のシステム。
  22. 前記第1コンテキストを識別するステップが、前記第1のパラメータに値を割り当てるタスクを識別するステップを含む請求項21のシステム。
  23. 前記第1のパラメータに値を割り当てるタスクを識別するステップは、前記依存性グラフに従って最後に実行するタスクを識別するステップを含む請求項22のシステム。
  24. タスク管理システムであって、
    依存性グラフに従って複数のタスクを定義するための手段と、
    それぞれが前記タスクの異なるスコープと関係付けられている複数のパラメータコンテキストを保持するための手段と、
    第1の前記タスク内で用いられる第1のパラメータに値をバインドするための手段であって、前記依存性グラフに従って第1の前記パラメータコンテキストを識別するステップおよび前記識別したコンテキストから前記パラメータに対する値を引き出すステップを含む手段と、
    を含むシステム。
  25. 更に、
    第2の前記タスクの実行中に前記第1のパラメータに割り当てるための値を決定するための手段と、
    前記第1のパラメータコンテキスト内の前記第1のパラメータに対する前記値を格納するための手段と、
    を含む請求項24のシステム。
  26. 前記第1のパラメータコンテキストが、前記第2のタスクと関係付けられる請求項25のシステム。
  27. 前記依存性グラフが前記タスクの実行順序を規定し、前記第1コンテキストを識別するステップが、前記第1タスクの前に実行する必要があるタスクを識別するステップを含む請求項24のシステム。
  28. 前記第1コンテキストを識別するステップが、前記第1のパラメータに値を割り当てるタスクを識別するステップを含む請求項27のシステム。
  29. 前記第1のパラメータに値を割り当てるタスクを識別するステップは、前記依存性グラフに従って最後に実行するタスクを識別するステップを含む請求項28のシステム。
  30. コンピューターシステムに、以下のステップを実行させるための命令を含むコンピュータ可読媒体上に格納されたソフトウエアであって、
    少なくとも幾つかのタスクが互いに順序付けられていない複数の前記タスクに対する順序制約の仕様を受け入れるステップと、
    一つ以上のパラメータのそれぞれに対して、これらパラメータにアクセスする前記タスクを識別するステップと、
    前記順序制約の仕様に従って、前記識別したタスクによる前記パラメータへのアクセスにおける潜在的なコンフリクトをチェックするステップと、
    を実行させるためのソフトウエア。
  31. 前記順序制約の仕様を受け入れるステップが、依存性グラフの仕様を受け入れるステップを含む請求項30のソフトウエア。
  32. パラメータにアクセスする前記タスクを識別するステップが、前記タスクに対する宣言を処理するステップを含む請求項30のソフトウエア。
  33. 前記パラメータへのアクセスにおける潜在的なコンフリクトをチェックするステップが、前記パラメータの内の一つにおけるインスタンスのスコープ、及び複数の前記スコープが前記パラメータを参照するタスクを含むかどうか、を決定するステップを含む請求項30のソフトウエア。
  34. 更に、複数の前記スコープが、前記パラメータを参照する前記タスクを含む場合、前記参照されるパラメータを曖昧なパラメータとして前記コンピューターシステムに識別させるための命令を含む請求項33のソフトウエア。
  35. タスク管理システムであって、
    少なくとも幾つかのタスクが互いに順序付けられていない複数の前記タスクに対する順序制約の仕様を受け入れるよう構成されるタスクマネージャ定義モジュールと、
    前記仕様にアクセスを有し、一つ以上のパラメータのそれぞれに対して、これらパラメータにアクセスする前記タスクを識別し、且つ、前記順序制約の仕様に従って、前記識別したタスクによる前記パラメータへのアクセスにおける潜在的なコンフリクトをチェックするように構成された、タスクマネージャ静的チェックモジュールと、
    を含むシステム。
  36. 前記順序制約の仕様の受け入れが、依存性グラフの仕様を受け入れを含む請求項35のシステム。
  37. パラメータにアクセスする前記タスクの識別が、前記タスクに対する宣言の処理を含む請求項35のシステム。
  38. 前記パラメータへのアクセスにおける潜在的なコンフリクトのチェックが、前記パラメータの内の一つにおけるインスタンスのスコープ、及び複数の前記スコープが前記パラメータを参照するタスクを含むかどうか、を決定することを含む請求項35のシステム。
  39. 更に、複数の前記スコープが、前記パラメータを参照する前記タスクを含む場合、前記タスクマネージャ静的チェックモジュールが、前記参照されるパラメータを曖昧なパラメータとして識別するよう構成される請求項38のシステム。
  40. タスク管理システムであって、
    少なくとも幾つかのタスクが互いに順序付けられていない複数の前記タスクに対する順序制約の仕様を受け入れるための手段と、
    一つ以上のパラメータのそれぞれに対して、これらパラメータにアクセスする前記タスクを識別するための手段と、
    前記順序制約の仕様に従って、前記識別したタスクによる前記パラメータへのアクセスにおける潜在的なコンフリクトをチェックするための手段と、
    を含むシステム。
  41. 前記順序制約の仕様を受け入れるステップが、依存性グラフの仕様を受け入れるステップを含む請求項40のシステム。
  42. パラメータにアクセスする前記タスクを識別するステップが、前記タスクに対する宣言を処理するステップを含む請求項40のシステム。
  43. 前記パラメータへのアクセスにおける潜在的なコンフリクトをチェックするステップが、前記パラメータの内の一つにおけるインスタンスのスコープ、及び複数の前記スコープが前記パラメータを参照するタスクを含むかどうか、を決定するステップを含む請求項40のシステム。
  44. 更に、複数の前記スコープが、前記パラメータを参照する前記タスクを含む場合、前記参照されるパラメータを曖昧なパラメータとして識別するための手段を含む請求項43のシステム。
JP2007502997A 2004-03-08 2005-03-08 依存性グラフのパラメータのスコーピング Active JP4891225B2 (ja)

Applications Claiming Priority (3)

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
PCT/US2005/007923 WO2005086906A2 (en) 2004-03-08 2005-03-08 Dependency graph parameter scoping

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011095066A Division JP5897816B2 (ja) 2004-03-08 2011-04-21 依存性グラフのパラメータのスコーピング

Publications (3)

Publication Number Publication Date
JP2007528081A true JP2007528081A (ja) 2007-10-04
JP2007528081A5 JP2007528081A5 (ja) 2008-03-06
JP4891225B2 JP4891225B2 (ja) 2012-03-07

Family

ID=34976229

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007502997A Active JP4891225B2 (ja) 2004-03-08 2005-03-08 依存性グラフのパラメータのスコーピング
JP2011095066A Active JP5897816B2 (ja) 2004-03-08 2011-04-21 依存性グラフのパラメータのスコーピング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011095066A Active JP5897816B2 (ja) 2004-03-08 2011-04-21 依存性グラフのパラメータのスコーピング

Country Status (8)

Country Link
US (2) US7594227B2 (ja)
EP (2) EP1735704A4 (ja)
JP (2) JP4891225B2 (ja)
CN (2) CN100426239C (ja)
AU (1) AU2005221142B2 (ja)
CA (2) CA2880884C (ja)
EA (1) EA012057B1 (ja)
WO (1) WO2005086906A2 (ja)

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
CA2744463C (en) 2008-12-02 2019-05-28 Erik Bator 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
WO2010093879A1 (en) 2009-02-13 2010-08-19 Ab Initio Technology Llc Managing task execution
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
EP2583168B1 (en) 2010-06-15 2017-11-08 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
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
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
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
US8707326B2 (en) 2012-07-17 2014-04-22 Concurix Corporation Pattern matching process scheduler in message passing environment
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
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
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
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
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
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships 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
EP3092557B1 (en) 2013-12-05 2024-03-27 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
CN108475189B (zh) 2015-12-21 2021-07-09 起元技术有限责任公司 子图接口生成的方法、系统及计算机可读介质
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
CA3045810A1 (en) 2016-12-01 2018-06-07 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 中国工商银行股份有限公司 作业调度中的数据展示方法、装置、设备及存储介质

Family Cites Families (18)

* 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
CA2297935A1 (en) * 1997-07-25 1999-02-04 British Telecommunications Public Limited Company Scheduler for a software system
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
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
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

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200401853016, 大塚ほか, "タスク並列スクリプト言語MegaScriptによるタスク動作モデル記述", 情報処理学会研究報告, 200308, 第2003巻,第83号, P.113−118, JP, 社団法人情報処理学会 Information Processing Socie *
CSNG200401853017, 西里ほか, "タスク並列スクリプト言語MegaScriptのランタイムシステムの設計と実装", 情報処理学会研究報告, 200308, 第2003巻,第83号, P.119−124, JP, 社団法人情報処理学会 Information Processing Socie *
JPN6010063530, 大塚ほか, "タスク並列スクリプト言語MegaScriptによるタスク動作モデル記述", 情報処理学会研究報告, 200308, 第2003巻,第83号, P.113−118, JP, 社団法人情報処理学会 Information Processing Socie *
JPN6010063532, 西里ほか, "タスク並列スクリプト言語MegaScriptのランタイムシステムの設計と実装", 情報処理学会研究報告, 200308, 第2003巻,第83号, P.119−124, JP, 社団法人情報処理学会 Information Processing Socie *

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4891225B2 (ja) 依存性グラフのパラメータのスコーピング
US6922827B2 (en) Iterative software development environment with prioritized build rules
CN106796522B (zh) 用于更新源代码文件的系统和方法
US6708331B1 (en) Method for automatic parallelization of software
CN105723341B (zh) 用于布局引擎和脚本引擎的存储器模型的实现方法及系统
US20090193444A1 (en) Techniques for creating and managing extensions
US20040226005A1 (en) Method and system for register allocation
JP2004220583A (ja) アセンブラにおいて大域的プロセッサ資源割当てを実行するための方法およびシステム
US10268461B2 (en) Global data flow optimization for machine learning programs
US11915056B2 (en) Combination of multiple data processing and machine learning frameworks for a target hardware
Fortier et al. Dyninka: a FaaS framework for distributed dataflow applications
US11262986B2 (en) Automatic software generation for computer systems
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
US11513841B2 (en) Method and system for scheduling tasks in a computing system
JP3241214B2 (ja) 分散処理装置及びプロセス実行方法
AU2011204916B2 (en) Managing parameter access in a task managing system
Henrio et al. Active objects with deterministic behaviour
Chow Redundancy Elimination
US20200348917A1 (en) Assessment of the benefit of post-inlining program transformation in inlining decisions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080115

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110301

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110401

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111215

R150 Certificate of patent or registration of utility model

Ref document number: 4891225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250