JP6626497B2 - タスクの呼び出しの管理 - Google Patents
タスクの呼び出しの管理 Download PDFInfo
- Publication number
- JP6626497B2 JP6626497B2 JP2017510837A JP2017510837A JP6626497B2 JP 6626497 B2 JP6626497 B2 JP 6626497B2 JP 2017510837 A JP2017510837 A JP 2017510837A JP 2017510837 A JP2017510837 A JP 2017510837A JP 6626497 B2 JP6626497 B2 JP 6626497B2
- Authority
- JP
- Japan
- Prior art keywords
- component
- collection
- data elements
- data
- scalar
- 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
- 238000012545 processing Methods 0.000 claims description 211
- 238000000034 method Methods 0.000 claims description 119
- 238000003860 storage Methods 0.000 claims description 37
- 238000013500 data storage Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 230000011664 signaling Effects 0.000 claims 2
- 238000004422 calculation algorithm Methods 0.000 description 75
- 238000011144 upstream manufacturing Methods 0.000 description 73
- 230000008569 process Effects 0.000 description 54
- 230000007704 transition Effects 0.000 description 49
- 239000000872 buffer Substances 0.000 description 31
- 238000013507 mapping Methods 0.000 description 28
- 238000013459 approach Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 13
- 239000013641 positive control Substances 0.000 description 12
- 230000006399 behavior Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000001629 suppression Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000003442 weekly effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 5
- 230000000644 propagated effect Effects 0.000 description 5
- 230000026676 system process Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000013642 negative control Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000005381 magnetic domain Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- User Interface Of Digital Computer (AREA)
Description
本出願は、2014年9月2日に出願した米国特許出願第62/044,665号明細書及び2015年5月20日に出願した米国特許出願第62/164,175号明細書の優先権を主張するものである。
一部の実施形態において、高レベルのプログラムの仕様110は、データに対して実行されるデータ処理の計算の全体の一部をそれぞれが規定する「構成要素」のセットを含む「データ処理グラフ」と呼ばれるある種のグラフに基づくプログラムの仕様である。構成要素は、例えば、プログラミングユーザインターフェース及び/又は計算のデータ表現においてグラフ内のノードとして表される。上の背景技術において説明されたデータフローグラフなどの一部のグラフに基づくプログラムの仕様とは異なり、データ処理グラフは、データの転送、又は制御の転送、又はこれら両方のいずれかを表すノード間のリンクを含み得る。リンクの特徴を示す1つの方法は、構成要素に異なる種類のポートを設けることによる。リンクは、上流の構成要素の出力ポートから下流の構成要素の入力ポートに接続される有向リンクである。ポートは、データ要素がどのようにして書き込まれ、リンクから読まれるのか及び/又は構成要素がデータを処理するためにどのようにして制御されるのかの特徴を表すインジケータを有する。
・構成要素のインスタンスがポートに接続されたリンクを通り越すコレクションのすべてのデータ要素をそれぞれ読むか又は書くことを意味するコレクション入力ポート又はコレクション出力ポート。構成要素のコレクションポート間の単一のリンクを有する構成要素の対に関して、下流の構成要素は、概して、データ要素が上流の構成要素によって書かれるときにそれらのデータ要素を読むことを可能にされ、上流の構成要素と下流の構成要素との間のパイプライン並列処理を可能にする。下でより詳細に説明されるように、データ要素は、並べ替えられる可能性もあり、それが、並列処理の効率的な働きを可能にする。例えば、プログラミンググラフィカルインターフェース内の一部のグラフィカルな表現において、そのようなコレクションポートは、概して、構成要素の四角いコネクタ記号によって示される。
・構成要素のインスタンスが、それぞれ、ポートに接続されたリンクから最大で1つのデータ要素を読むか又はポートに接続されたリンクに最大で1つのデータ要素を書くことを意味するスカラ入力ポート又はスカラ出力ポート。構成要素のスカラポート間の単一のリンクを有する構成要素の対に関して、上流の構成要素が実行を終えた後の下流の構成要素の直列実行が、単一のデータ要素の転送を制御の転送として使用することによって強制される。例えば、プログラミンググラフィカルインターフェース内の一部のグラフィカルな表現において、そのようなスカラポートは、概して、構成要素の三角のコネクタ記号によって示される。
・スカラ入力又はスカラ出力と同様であるが、いかなるデータ要素も送信される必要がない制御入力ポート又は制御出力ポートであって、構成要素間の制御の転送を伝達するために使用される、制御入力ポート又は制御出力ポート。構成要素の制御ポート間のリンクを有する構成要素の対に関して、上流の構成要素が実行を終えた後の下流の構成要素の直列実行が(たとえそれらの構成要素がコレクションポート間のリンクも有するとしても)強制される。例えば、プログラミンググラフィカルインターフェース内の一部のグラフィカルな表現において、そのような制御ポートは、概して、構成要素の丸いコネクタ記号によって示される。
図1に関連して上で説明されているように、コンパイラ/インタープリタ120は、実行するためにデータ処理グラフを準備するためにデータ処理グラフに実行セット発見前処理手順を実行する。通常の意味で、本明細書において使用されるとき、用語「実行セット」は、一体として呼び出され、出力コレクションポートのデータ要素の一部などのデータの一部に適用され得る1又は2以上の構成要素のセットを指す。したがって、それぞれの入力データ要素(又は実行セットの1若しくは2以上の入力ポートに与えられる複数の入力データ要素のタプル)のために、実行セット内の各構成要素の最大で1つのインスタンスが実行される。実行セット内で、スカラポート及び制御ポートへのリンクによって、順番に並べる制約が課され、実行セット内の構成要素の並列実行は、順番に並べる制約が破られない限りにおいて容認される。コンパイラ/インタープリタ120によって実行セットのために準備されるコードは、コードが実行されるときに構成要素に対応するタスクがどのようにして実行されるべきか(例えば、並列処理の度合い)を示す埋め込まれた情報(例えば、アノテーション又は修飾子(modifier))を含み得る。受け取られたコレクション内の複数のデータ要素のタプルのために実行セットの1つのインスタンスが実行される例において、タプルは、例えば、決まった数のデータ要素、又は何らかの特徴(例えば、共通のキー値)を共有するいくつかのデータ要素からなる可能性がある。並列に実行されることを可能にされる少なくともいくつかの構成要素が存在する例において、実行セットは、複数のタスク、例えば、実行セットまるごとのためのタスクと、構成要素のうちの1又は2以上のインスタンスの同時実行のための1又は2以上のサブタスクとを使用して実施される可能性がある。したがって、実行セットの異なるインスタンスを表すタスクは、それら自体、例えば、同時に実行され得るサブタスクによってさらに細分化されたタスクに分解される可能性がある。異なる実行セットのためのタスクは、概して、独立して並列に実行され得る。したがって、例えば、大きなデータセットが百万個のレコードを有する場合、百万個の独立したタスクが存在する可能性がある。タスクの一部は、コンピューティングプラットフォーム150の異なるノード152上で実行される可能性がある。タスクは、単一のノード152上でさえも同時に効率的に実行され得る軽量スレッドを使用して実行される可能性がある。
例示を目的として、第1の例において、データ処理グラフは、単純な1次元のグラフ構造を有し、比較的簡単な割り当てアルゴリズムが、スタックに基づくアルゴリズムを使用して示される。スタックに基づく割り当てアルゴリズムにおいて、データ処理グラフ内の各構成要素は、分割文字「/」によって分けられた整数からなる1又は2以上の「ID文字列」によってラベル付けされる。所与の構成要素のID文字列内に分割文字「/」が現れる回数は、実行セットの階層内の構成要素のレベルを決定する。一部の例において、構成要素は、複数の入力リンクを有する可能性があり、したがって、複数のID文字列を有する可能性がある。そのような場合、アルゴリズムは、どのID文字列を使用すべきかを決定するための下でより詳細に説明される規則を有する。
一部の例において、より普通のデータ処理グラフに関して、スタックに基づく割り当てアルゴリズムは、実行セットの階層を正しく決定するのに十分でない可能性がある。例えば、普通のデータ処理グラフにおいては、任意の所与の構成要素が、複数の入力ポート及び/又は複数の出力ポートを有し、スタックに基づく手法に適合しない普通のデータ処理グラフを実行することができる。そのような例においては、実行セットの階層を決定するためにグローバルなマッピングに基づく割り当てアルゴリズムが使用される。
L ←ソートされた要素を含むことになる空のリスト
S ←入ってくる辺を持たないすべてのノードのセット
while Sが空ではない do
Sからノードnを削除する
nをLの末尾に加える
for each nからmへの辺eを有するノードm do
グラフから辺eを削除する
if mがいかなるその他の入ってくる辺も持たない then
mをSに挿入する
if グラフが辺を有する then
エラーを返す(グラフが少なくとも1つの閉路を有する)
else
L(トポロジカルソートされた順序)を返す
上述の例においては、(1又は2以上の)割り当てアルゴリズムが、いかなるユーザの介入もなしにデータ処理グラフ内に存在する実行セットを自動的に発見するために使用される。しかし、一部の例においては、ユーザが、(1又は2以上の)割り当てアルゴリズムによって提供される機能以外の機能を必要とする可能性がある。そのような場合、ユーザは、どこで実行セットが始まる及び/又は終わるのかを明示的に定義するために実行セットの入口点及び実行セットの出口点を明示的に追加することができる。図7を参照すると、データ処理グラフ776は、第1のデータセット774、第1の構成要素778、第2の構成要素780、及び第2のデータセット790を含む。上述の(1又は2以上の)割り当てアルゴリズムをデータ処理グラフ776に適用することは、第1の構成要素778及び第2の構成要素780を含む単一の実行セットを発見する結果となる。しかし、この場合、ユーザは、データ処理グラフ776に関して2つの実行セット(すなわち、第1の実行セット782及び第2の実行セット786)を明示的に定義した。特に、ユーザは、第1の構成要素778の出力ポートから出るリンクに実行セットの出口点構成要素784を挿入し、第2の構成要素780の入力ポートに入るリンクに実行セットの入口点788を挿入した。実行セットの出口点784及び実行セットの入口点788を第1の構成要素778と第2の構成要素780との間のリンクに追加することによって、ユーザは、単一の実行セットであったものを2つの別々の実行セット782、786に本質的に分割した。
一部の例において、ユーザは、所与の構成要素がどの実行セットに属するのかを明示的に指定したい可能性がある。例えば、図8Aを参照すると、データ処理グラフ892は、データ生成構成要素896及びテーブル読み取り構成要素898からデータ要素を受け取る第1の実行セット894を含む。これらの構成要素は、これらの構成要素が提供するデータ要素のコレクションの異なるソースを有することを除いて入力ファイル構成要素と同様である。データ生成構成要素896に関しては、ファイルの場所を規定するスカラ入力ポートの代わりに、生成されるレコードデータ要素の数を規定する(任意の)スカラ入力ポートが存在し、各データ要素がどのようにして生じさせられるべきであるかを規定するパラメータも存在する。テーブル読み取り構成要素898に関しては、ファイルの場所を規定するスカラ入力ポートの代わりに、データベース内のテーブルを規定する(任意の)スカラ入力ポートが存在する。第1の実行セット894は、データ生成構成要素896及びテーブル読み取り構成要素898からのデータ要素を一緒になって処理して、第1のデータセット899に提供される出力を生じさせる第1の構成要素891及び第2の構成要素893を含む。
一部の例においては、実行セット内の複数の構成要素が、それぞれ、実行セットの入口点を介して上流の構成要素の単一のコレクション出力ポートに接続されたスカラ入力ポートを有する可能性がある。同様に、実行セット内の複数の構成要素が、それぞれ、実行セットの下流の構成要素の単一のコレクション入力ポートに接続されたスカラ出力ポートを有する可能性がある。
一部の例において、所与の実行セット内の構成要素は、並列のインスタンスにおいて複数回実行される可能性がある。一部の例において、並列のインスタンスを実行する構成要素は、共有リソースにアクセスする必要がある可能性がある。競合状態、及び複数のプロセスが共有リソースにアクセスすることに関連するその他の問題を防止するために、ラッチメカニズムが使用され得る。概して、ラッチメカニズムは、実行セット内の構成要素の1つのインスタンスが実行を終えるのにかかる時間の間、そのインスタンスが共有リソースに対するランタイムロックを取得することを可能にする。インスタンスがラッチされた共有リソース有する間、インスタンスの構成要素のみが共有リソースにアクセスすることができ、その他のインスタンスの構成要素はラッチが解放されるのを待たなければならない。インスタンスは、完了した後、ランタイムロックを解放し、その他のインスタンスが共有リソースにアクセスすることを可能にする。ラッチメカニズムは、(例えば、上流の端の明示的なラッチ構成要素及び下流の端の明示的なラッチ解除構成要素を使用して)単一の実行セット内で共有リソースに対してラッチとラッチ解除との両方を行わなければならない。一部の実施形態において、そのような「ラッチされた実行セット」は、入れ子にされ得ず、互いに重なることもできない。
グローバルなマッピングに基づく割り当てアルゴリズムが2次元データ処理グラフに関連して説明されているが、グローバルなマッピングに基づく割り当てアルゴリズムは1次元データ処理グラフに関する実行セットを発見するために使用される可能性もあることが留意される。
・/1/2/3及び/1/2/3は適合性がある
・/1/2/3及び/1/2は適合性がある
・/1/2及び/1/2/3は適合性がある
・/1/2/3及び/1は適合性がある
・/1/2/3及び/1/4は適合性がない
・/1/2/3及び/1/4/5は適合性がない
・同時性(例えば、上述の並列、直列、キーによる直列)
・異なる実行セットの間の優先度(例えば、ある実行セットのすべてのタスクが別の実行セットのすべてのタスクの後に行われる)
・トランザクショナリティ(transactionality)(例えば、実行セットのタスクがデータベーストランザクションとして処理される)
・リソースのラッチ(例えば、実行セットのタスクが、共有変数などの特定のリソースがロックされるようにして実行され、タスクがアトミックな単位としてリソースにアクセスすることを可能にする)
・順序付け(例えば、データ要素の間の順序付けが維持される)
・タプルのサイズ(例えば、実行セットの各インスタンスによって操作されるデータ要素の数)
一部の例においては、ユーザインターフェースが、構成要素をキャンバスにドラッグし、構成要素のポートをリンクを使用して一緒に接続することによってユーザがデータ処理グラフを作成することを可能にする。一部の例において、ユーザインターフェースは、ユーザがデータ処理グラフを作成するときに上述の(1又は2以上の)割り当てアルゴリズムをデータ処理グラフに繰り返し適用する。例えば、ユーザが作成されているデータ処理グラフに構成要素を追加するとき、(1又は2以上の)割り当てアルゴリズムが、追加された構成要素を有するグラフに適用され得る。そして、(1又は2以上の)割り当てアルゴリズムによって発見された結果として得られる実行セットが、例えば、ユーザインターフェース内で構成要素の周りに描かれたボックスとして、又は同じ実行セット内の構成要素を含む領域をレンダリングするために使用される一意の色、濃淡、テクスチャ、又はラベルによって区別され得る構成要素を取り囲む任意の形状の領域として表示される可能性がある。一部の例において、それから、ユーザは、実行セットに構成要素を追加するか又は実行セットから構成要素を削除することによって、(1又は2以上の)割り当てアルゴリズムによって発見された実行セットを修正することができる。一部の例において、(1又は2以上の)割り当てアルゴリズムは、修正された実行セットが規則に則していることを検証する。例えば、さまざまな規則に則した方法のいずれかで潜在的に実行セットに分割される可能性がある構成要素及びさまざまなポートの間のリンクのいくつかの構成が存在し得る。そのような曖昧な場合、割り当てアルゴリズムは、デフォルトで実行セットのうちの1つの割り当てを選択する可能性があるが、ユーザは、実行セットの異なる割り当てを意図していた可能性があり、その場合、ユーザは、(例えば、終了点を挿入して前は構成要素の連鎖の中にあった実行セットを閉じることによって)割り当てを修正することができる。代替的に、割り当てアルゴリズムは、複数の規則に則した割り当てが可能である曖昧な構成を認識し、1つを選択するための入力を与えるようにユーザに促すように構成される可能性がある。
実行するためにデータ処理グラフを準備するプロセスにおいて、コンパイラ/インタープリタ120は、制御グラフ生成手順において制御グラフをさらに生じさせる。一部の実装形態において、制御グラフを生じさせることは、個々の構成要素に対応するタスクを実行するための実行可能コードと、それらのタスクの間のデータ及び制御のフローを決定する構成要素の間のさまざまなリンクに対応するコードとを生じさせることを含む。これは、コンパイラ/インタープリタ120によって発見された実行セットの階層の間のデータ及び制御の転送を含む。
再び図1を参照すると、データ処理グラフの構成要素のインスタンスが、データ処理グラフを実行する文脈でタスクとして生成され(spawned)、概して、コンピューティングプラットフォーム150の複数のコンピューティングノード152において実行される。以下でより詳細に検討されるように、コントローラ140は、例えば、計算負荷の割り振り、通信又は入力/出力のオーバーヘッドの削減、及びメモリリソースの使用に関連するシステムの性能目標を達成するために、それらのタスクの実行のスケジューリング及び位置(locus)の監視制御の態様を提供する。
上述の手法は、例えば、好適なソフトウェア命令を実行するプログラミング可能なコンピューティングシステムを用いて実装される可能性があり、又はフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)などの好適なハードウェアで、若しくは何らかの混成の形態で実装される可能性がある。例えば、プログラミングされる手法において、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピューティングシステム上で実行される1又は2以上のコンピュータプログラムのプロシージャを含み得る。ソフトウェアは、例えば、データ処理グラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データ処理グラフの構成要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
Claims (42)
- グラフに基づくプログラムの仕様を実行するための方法であって、
タスクに対応する複数の構成要素及び前記構成要素のポートの間のリンクを含むグラフに基づくプログラムの仕様を記憶するステップであって、前記複数の構成要素の少なくとも一部が、それぞれ、
(1)対応するタスクによって処理されるデータ要素のコレクションを受け取るための少なくとも1つの入力ポート、及び、
(2)コレクション型出力ポートにリンクされた構成要素に対応するタスクによって処理されるデータ要素のコレクションを提供するための少なくとも1つのコレクション型出力ポートのうちの少なくとも1つを有する、ステップと、
前記グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップであって、前記実行するステップが、
前記複数の構成要素の第1の構成要素のコレクション型出力ポート及び前記複数の構成要素の第2の構成要素の入力ポートに接続されたリンクを介してデータ要素の特定のコレクションの2又は3以上のデータ要素を第1の順序で受け取ること、並びに
前記データ要素の特定のコレクションの個々のデータ要素の処理のために、第2の順序で複数のインスタンスを呼び出すことを含めて、前記第2の構成要素に対応するタスクの前記複数のインスタンスを呼び出すことであって、それにより前記インスタンスの各々が、別のインスタンスによってブロックされることなく呼び出され、そのため任意のインスタンスの呼び出しには、他方のインスタンスが、該他方のインスタンスについてそれぞれの1又は2以上のデータ要素の処理を開始又は完了するのを待つ必要がない、呼び出すことを含み、
前記第2の順序が、前記第1の順序と異なる、ステップとを含む、前記方法。 - 第2の構成要素に対応するタスクの複数のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの複数の直列実行されるインスタンスを呼び出すことを含む請求項1に記載の方法。
- 第2の構成要素に対応するタスクの複数のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの複数の同時実行されるインスタンスを呼び出すことを含む請求項1に記載の方法。
- 第2の構成要素に対応するタスクの複数のインスタンスのタスクの各インスタンスが、データ要素の特定のコレクションの異なる重なり合わないサブセットに対応する請求項3に記載の方法。
- データの特定のコレクションのそれぞれの異なる重なり合わないサブセットが、単一のデータ要素を含む請求項4に記載の方法。
- 第2の構成要素の入力ポートが、前記第2の構成要素に対応するタスクによって処理されるデータ要素のコレクションを受け取るためのコレクション型入力ポートであり、前記第2の構成要素に対応する前記タスクの1又は2以上のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの単一のインスタンスを呼び出すことを含む請求項1に記載の方法。
- 第2の構成要素に対応するタスクの単一のインスタンスが、データ要素の特定のコレクションのデータ要素を繰り返し処理する請求項6に記載の方法。
- 実行するステップが、特定のコレクション内のデータ要素の第2の数と同じ第1の数のデータ要素を含む出力を生じさせることをさらに含む請求項1〜7のいずれかに記載の方法。
- データ要素の特定のコレクションの2又は3以上のデータ要素が、第1のストレージに受け取られ、実行するステップが、前記データ要素の特定のコレクションの第1の順序とは無関係の第3の順序で第2のストレージに出力を与えることをさらに含む請求項8に記載の方法。
- 実行するステップが、特定のコレクション内のデータ要素の第2の数と異なる第1の数のデータ要素を含む出力を生じさせることをさらに含む請求項1〜7のいずれかに記載の方法。
- 複数の構成要素の少なくとも一部が、それぞれ、
対応するタスクによって処理される単一のデータ要素を受け取るための少なくとも1つのスカラ型入力ポートと、
スカラ型出力ポートにリンクされた構成要素に対応するタスクによって処理される単一のデータ要素を提供するための少なくとも1つのスカラ型出力ポートとを有し、
グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、
前記スカラ型出力ポートを前記スカラ型入力ポートに接続するリンクを介して前記複数の構成要素の第4の構成要素のスカラ型出力ポートから前記複数の構成要素の第3の構成要素のスカラ型入力ポートにおいて単一のデータ要素を受け取ることと、
前記スカラ型入力ポートにおいて前記単一のデータ要素を受け取ることに応じて前記第3の構成要素に対応するタスクのインスタンスを呼び出すこととをさらに含む請求項1〜10のいずれかに記載の方法。 - グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、単一のデータ要素がスカラ型入力ポートにおいて受け取られる後まで第3の構成要素に対応するタスクの呼び出しを防止することをさらに含む請求項11に記載の方法。
- グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、単一のデータ要素がスカラ型入力ポートにおいて受け取られる後まで第3の構成要素に直接的にも間接的にも依存する構成要素に対応するタスクの呼び出しを防止することをさらに含む請求項11又は12に記載の方法。
- 第1の構成要素のコレクション型出力ポート及び第2の構成要素の入力ポートに接続されたリンクの存在を決定するステップをさらに含み、前記リンクの前記存在が、特定のコレクション内のデータ要素が並べ替えられ得ることを合図する請求項1〜13のいずれかに記載の方法。
- グラフに基づくプログラムの仕様を実行するための、コンピュータ可読媒体に非一時的形態で記憶されたソフトウェアであって、コンピューティングシステムに、
タスクに対応する複数の構成要素及び前記構成要素のポートの間のリンクを含むグラフに基づくプログラムの仕様を記憶することであって、前記複数の構成要素の少なくとも一部が、それぞれ、
(1)対応するタスクによって処理されるデータ要素のコレクションを受け取るための少なくとも1つの入力ポート、及び、
(2)コレクション出力ポートにリンクされた構成要素に対応するタスクによって処理されるデータ要素のコレクションを提供するための少なくとも1つのコレクション出力ポートのうちの少なくとも1つを有する、記憶することと、
前記グラフに基づくプログラムの仕様によって規定されたプログラムを実行することであって、
前記複数の構成要素の第1の構成要素のコレクション出力ポート及び前記複数の構成要素の第2の構成要素の入力ポートに接続されたリンクを介してデータ要素の特定のコレクションの2又は3以上のデータ要素を第1の順序で受け取ること、並びに
前記データ要素の特定のコレクションの個々のデータ要素の処理のために、第2の順序で複数のインスタンスを呼び出すことを含めて、前記第2の構成要素に対応するタスクの前記複数のインスタンスを呼び出すことであって、それにより前記インスタンスの各々が、別のインスタンスによってブロックされることなく呼び出され、そのため任意のインスタンスの呼び出しには、他方のインスタンスが、該他方のインスタンスについてそれぞれの1又は2以上のデータ要素の処理を開始又は完了するのを待つ必要がない、呼び出すことを含み、
前記第2の順序が、前記第1の順序と異なる、実行することとを行わせるための命令を含む、前記ソフトウェア。 - グラフに基づくプログラムの仕様を実行するためのコンピューティングシステムであって、
タスクに対応する複数の構成要素及び前記構成要素のポートの間のリンクを含むグラフに基づくプログラムの仕様を記憶するためのデータストレージシステムであって、前記複数の構成要素の少なくとも一部が、それぞれ、
(1)対応するタスクによって処理されるデータ要素のコレクションを受け取るための少なくとも1つの入力ポート、及び、
(2)コレクション出力ポートにリンクされた構成要素に対応するタスクによって処理されるデータ要素のコレクションを提供するための少なくとも1つのコレクション出力ポートのうちの少なくとも1つを有する、データストレージシステムと、
前記グラフに基づくプログラムの仕様によって規定されたプログラムを実行するように構成された少なくとも1つのプロセッサであって、実行することが、
前記複数の構成要素の第1の構成要素のコレクション出力ポート及び前記複数の構成要素の第2の構成要素の入力ポートに接続されたリンクを介してデータ要素の特定のコレクションの2又は3以上のデータ要素を第1の順序で受け取ること、並びに
前記データ要素の特定のコレクションの個々のデータ要素の処理のために、第2の順序で複数のインスタンスを呼び出すことを含めて、前記第2の構成要素に対応するタスクの前記複数のインスタンスを呼び出すことであって、それにより前記インスタンスの各々が、別のインスタンスによってブロックされることなく呼び出され、そのため任意のインスタンスの呼び出しには、他方のインスタンスが、該他方のインスタンスについてそれぞれの1又は2以上のデータ要素の処理を開始又は完了するのを待つ必要がない、呼び出すことを含み、
前記第2の順序が、前記第1の順序と異なる、少なくとも1つのプロセッサとを含む、前記コンピューティングシステム。 - 第2の構成要素に対応するタスクの複数のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの複数の直列実行されるインスタンスを呼び出すことを含む請求項15に記載のソフトウェア。
- 第2の構成要素に対応するタスクの複数のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの複数の同時実行されるインスタンスを呼び出すことを含む請求項15に記載のソフトウェア。
- 第2の構成要素に対応するタスクの複数のインスタンスのタスクの各インスタンスが、データ要素の特定のコレクションの異なる重なり合わないサブセットに対応する請求項18に記載のソフトウェア。
- データの特定のコレクションのそれぞれの異なる重なり合わないサブセットが、単一のデータ要素を含む請求項19に記載のソフトウェア。
- 第2の構成要素の入力ポートが、前記第2の構成要素に対応するタスクによって処理されるデータ要素のコレクションを受け取るためのコレクション型入力ポートであり、前記第2の構成要素に対応する前記タスクの1又は2以上のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの単一のインスタンスを呼び出すことを含む請求項15に記載のソフトウェア。
- 第2の構成要素に対応するタスクの単一のインスタンスが、データ要素の特定のコレクションのデータ要素を繰り返し処理する請求項21に記載のソフトウェア。
- 実行するステップが、特定のコレクション内のデータ要素の第2の数と同じ第1の数のデータ要素を含む出力を生じさせることをさらに含む請求項15又は17〜22のいずれかに記載のソフトウェア。
- データ要素の特定のコレクションの2又は3以上のデータ要素が、第1のストレージに受け取られ、実行するステップが、前記データ要素の特定のコレクションの第1の順序とは無関係の第3の順序で第2のストレージに出力を与えることをさらに含む請求項23に記載のソフトウェア。
- 実行するステップが、特定のコレクション内のデータ要素の第2の数と異なる第1の数のデータ要素を含む出力を生じさせることをさらに含む請求項15又は17〜22のいずれかに記載のソフトウェア。
- 複数の構成要素の少なくとも一部が、それぞれ、
対応するタスクによって処理される単一のデータ要素を受け取るための少なくとも1つのスカラ型入力ポートと、
スカラ型出力ポートにリンクされた構成要素に対応するタスクによって処理される単一のデータ要素を提供するための少なくとも1つのスカラ型出力ポートとを有し、
グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、
前記スカラ型出力ポートを前記スカラ型入力ポートに接続するリンクを介して前記複数の構成要素の第4の構成要素のスカラ型出力ポートから前記複数の構成要素の第3の構成要素のスカラ型入力ポートにおいて単一のデータ要素を受け取ることと、
前記スカラ型入力ポートにおいて前記単一のデータ要素を受け取ることに応じて前記第3の構成要素に対応するタスクのインスタンスを呼び出すこととをさらに含む請求項15又は17〜25のいずれかに記載のソフトウェア。 - グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、単一のデータ要素がスカラ型入力ポートにおいて受け取られる後まで第3の構成要素に対応するタスクの呼び出しを防止することをさらに含む請求項26に記載のソフトウェア。
- グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、単一のデータ要素がスカラ型入力ポートにおいて受け取られる後まで第3の構成要素に直接的にも間接的にも依存する構成要素に対応するタスクの呼び出しを防止することをさらに含む請求項26又は27に記載のソフトウェア。
- 第1の構成要素のコレクション型出力ポート及び第2の構成要素の入力ポートに接続されたリンクの存在を決定するステップをさらに含み、前記リンクの前記存在が、特定のコレクション内のデータ要素が並べ替えられ得ることを合図する請求項15又は17〜28のいずれかに記載のソフトウェア。
- 第2の構成要素に対応するタスクの複数のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの複数の直列実行されるインスタンスを呼び出すことを含む請求項16に記載のコンピューティングシステム。
- 第2の構成要素に対応するタスクの複数のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの複数の同時実行されるインスタンスを呼び出すことを含む請求項16に記載のコンピューティングシステム。
- 第2の構成要素に対応するタスクの複数のインスタンスのタスクの各インスタンスが、データ要素の特定のコレクションの異なる重なり合わないサブセットに対応する請求項31に記載のコンピューティングシステム。
- データの特定のコレクションのそれぞれの異なる重なり合わないサブセットが、単一のデータ要素を含む請求項32に記載のコンピューティングシステム。
- 第2の構成要素の入力ポートが、前記第2の構成要素に対応するタスクによって処理されるデータ要素のコレクションを受け取るためのコレクション型入力ポートであり、前記第2の構成要素に対応する前記タスクの1又は2以上のインスタンスを呼び出すことが、前記第2の構成要素に対応する前記タスクの単一のインスタンスを呼び出すことを含む請求項16に記載のコンピューティングシステム。
- 第2の構成要素に対応するタスクの単一のインスタンスが、データ要素の特定のコレクションのデータ要素を繰り返し処理する請求項34に記載のコンピューティングシステム。
- 実行するステップが、特定のコレクション内のデータ要素の第2の数と同じ第1の数のデータ要素を含む出力を生じさせることをさらに含む請求項16又は30〜35のいずれかに記載のコンピューティングシステム。
- データ要素の特定のコレクションの2又は3以上のデータ要素が、第1のストレージに受け取られ、実行するステップが、前記データ要素の特定のコレクションの第1の順序とは無関係の第3の順序で第2のストレージに出力を与えることをさらに含む請求項36に記載のコンピューティングシステム。
- 実行するステップが、特定のコレクション内のデータ要素の第2の数と異なる第1の数のデータ要素を含む出力を生じさせることをさらに含む請求項16又は30〜36のいずれかに記載のコンピューティングシステム。
- 複数の構成要素の少なくとも一部が、それぞれ、
対応するタスクによって処理される単一のデータ要素を受け取るための少なくとも1つのスカラ型入力ポートと、
スカラ型出力ポートにリンクされた構成要素に対応するタスクによって処理される単一のデータ要素を提供するための少なくとも1つのスカラ型出力ポートとを有し、
グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、
前記スカラ型出力ポートを前記スカラ型入力ポートに接続するリンクを介して前記複数の構成要素の第4の構成要素のスカラ型出力ポートから前記複数の構成要素の第3の構成要素のスカラ型入力ポートにおいて単一のデータ要素を受け取ることと、
前記スカラ型入力ポートにおいて前記単一のデータ要素を受け取ることに応じて前記第3の構成要素に対応するタスクのインスタンスを呼び出すこととをさらに含む請求項16又は30〜38のいずれかに記載のコンピューティングシステム。 - グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、単一のデータ要素がスカラ型入力ポートにおいて受け取られる後まで第3の構成要素に対応するタスクの呼び出しを防止することをさらに含む請求項39に記載のコンピューティングシステム。
- グラフに基づくプログラムの仕様によって規定されたプログラムを実行するステップが、単一のデータ要素がスカラ型入力ポートにおいて受け取られる後まで第3の構成要素に直接的にも間接的にも依存する構成要素に対応するタスクの呼び出しを防止することをさらに含む請求項39又は40に記載のコンピューティングシステム。
- 第1の構成要素のコレクション型出力ポート及び第2の構成要素の入力ポートに接続されたリンクの存在を決定するステップをさらに含み、前記リンクの前記存在が、特定のコレクション内のデータ要素が並べ替えられ得ることを合図する請求項16又は30〜41のいずれかに記載のコンピューティングシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462044665P | 2014-09-02 | 2014-09-02 | |
US62/044,665 | 2014-09-02 | ||
US201562164175P | 2015-05-20 | 2015-05-20 | |
US62/164,175 | 2015-05-20 | ||
PCT/US2015/048089 WO2016036820A1 (en) | 2014-09-02 | 2015-09-02 | Managing invocation of tasks |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017529605A JP2017529605A (ja) | 2017-10-05 |
JP6626497B2 true JP6626497B2 (ja) | 2019-12-25 |
Family
ID=54207678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017510837A Active JP6626497B2 (ja) | 2014-09-02 | 2015-09-02 | タスクの呼び出しの管理 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9747112B2 (ja) |
EP (1) | EP3189419B1 (ja) |
JP (1) | JP6626497B2 (ja) |
KR (1) | KR102364553B1 (ja) |
CN (1) | CN106687920B (ja) |
AU (1) | AU2015312006B2 (ja) |
CA (1) | CA2959392C (ja) |
SG (1) | SG11201701563TA (ja) |
WO (1) | WO2016036820A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11201701667WA (en) * | 2014-09-02 | 2017-04-27 | Ab Initio Technology Llc | Visually specifying subsets of components in graph-based programs through user interactions |
EP3189422A1 (en) * | 2014-09-02 | 2017-07-12 | AB Initio Technology LLC | Executing graph-based program specifications |
US10496619B2 (en) | 2014-09-02 | 2019-12-03 | Ab Initio Technology Llc | Compiling graph-based program specifications |
CN106687920B (zh) | 2014-09-02 | 2020-07-03 | 起元科技有限公司 | 管理任务的调用 |
US10108321B2 (en) * | 2015-08-31 | 2018-10-23 | Microsoft Technology Licensing, Llc | Interface for defining user directed partial graph execution |
US9870206B2 (en) * | 2015-11-10 | 2018-01-16 | National Instruments Corporation | Replication structure in a graphical programming language |
US10642580B1 (en) * | 2016-09-20 | 2020-05-05 | Amazon Technologies, Inc. | Simplifying and reusing visual programming graphs |
US10678515B1 (en) | 2016-09-20 | 2020-06-09 | Amazon Technologies, Inc. | Simplifying and reusing visual programming graphs |
US10261763B2 (en) * | 2016-12-13 | 2019-04-16 | Palantir Technologies Inc. | Extensible data transformation authoring and validation system |
CN109032704B (zh) * | 2017-06-12 | 2022-08-09 | 深圳市中兴微电子技术有限公司 | 一种数据处理的方法和设备 |
CN108459889B (zh) * | 2018-01-23 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 任务执行方法和装置、存储介质以及电子装置 |
CN110909305B (zh) * | 2018-09-17 | 2024-04-09 | 吕纪竹 | 一种实时判断数据流变化同向性及其程度的方法 |
CN111694616A (zh) * | 2019-03-12 | 2020-09-22 | 福建天晴在线互动科技有限公司 | 命令执行结果的获取方法及计算机可读存储介质 |
CN113326035B (zh) * | 2020-06-29 | 2024-08-06 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN112732979B (zh) * | 2020-12-29 | 2023-02-17 | 五八有限公司 | 信息写入方法、装置、电子设备和计算机可读介质 |
US11914613B2 (en) * | 2021-03-31 | 2024-02-27 | Microsoft Technology Licensing, Llc | Data visibility for nested transactions in distributed systems |
US11847491B1 (en) | 2021-04-22 | 2023-12-19 | Habana Labs Ltd. | Low latency execution of a machine learning model |
US11880709B2 (en) | 2022-01-04 | 2024-01-23 | The Toronto-Dominion Bank | System and method for handling real-time transactional events |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0347162A3 (en) | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Apparatus and methods for controlling data flow processes by generated instruction sequences |
US5357632A (en) * | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
US6584581B1 (en) * | 1999-12-06 | 2003-06-24 | Ab Initio Software Corporation | Continuous flow checkpointing data processing |
US7051189B2 (en) * | 2000-03-15 | 2006-05-23 | Arc International | Method and apparatus for processor code optimization using code compression |
US7343413B2 (en) | 2000-03-21 | 2008-03-11 | F5 Networks, Inc. | Method and system for optimizing a network by independently scaling control segments and data flow |
SG121719A1 (en) * | 2001-07-19 | 2006-05-26 | Oce Tech Bv | Method for creating a workflow |
CA2360712A1 (en) | 2001-10-31 | 2003-04-30 | Sicon Video Corporation | Method and apparatus for the data-driven synchronous parallel processing of digital data |
US7167850B2 (en) | 2002-10-10 | 2007-01-23 | Ab Initio Software Corporation | Startup and control of graph-based computation |
CA2529925C (en) * | 2003-06-25 | 2016-08-23 | Ab Initio Software Corporation | Computer-aided parallelizing of computation graphs |
US7506304B2 (en) | 2004-05-14 | 2009-03-17 | National Instruments Corporation | Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation |
US7523023B1 (en) | 2004-09-20 | 2009-04-21 | The Mathworks, Inc. | Automatic generation of component interfaces for computational hardware implementations generated from a block diagram model |
US8756044B2 (en) | 2005-05-31 | 2014-06-17 | The Mathworks, Inc. | Graphical partitioning for parallel execution of executable block diagram models |
WO2006136764A1 (en) | 2005-06-22 | 2006-12-28 | Arm Limited | A data processing apparatus and method for accelerating execution of subgraphs |
US7870556B2 (en) | 2006-05-16 | 2011-01-11 | Ab Initio Technology Llc | Managing computing resources in graph-based computations |
US8745557B1 (en) | 2006-09-11 | 2014-06-03 | The Mathworks, Inc. | Hardware definition language generation for data serialization from executable graphical models |
US7774189B2 (en) | 2006-12-01 | 2010-08-10 | International Business Machines Corporation | System and method for simulating data flow using dataflow computing system |
US8046751B1 (en) | 2007-01-11 | 2011-10-25 | The Mathworks, Inc. | Structuring unstructured regions in a control flow graph |
US20080244594A1 (en) * | 2007-03-29 | 2008-10-02 | International Business Machines Corporation | Visual scripting of web services for task automation |
US8069129B2 (en) | 2007-04-10 | 2011-11-29 | Ab Initio Technology Llc | Editing and compiling business rules |
US9110967B2 (en) * | 2007-08-29 | 2015-08-18 | International Business Machines Corporation | Data lineage in data warehousing environments |
US8601457B1 (en) | 2008-01-31 | 2013-12-03 | The Mathworks, Inc. | Checking for access problems with data stores |
US8667381B1 (en) | 2008-03-21 | 2014-03-04 | The Mathworks, Inc. | Block diagram change history |
US8869103B2 (en) | 2008-10-06 | 2014-10-21 | The Mathworks, Inc. | Using intermediate representations to verify computer-executable code generated from a model |
US8856726B2 (en) | 2009-09-14 | 2014-10-07 | The Mathworks, Inc. | Verification of computer-executable code generated from a slice of a model |
US8756562B2 (en) | 2008-12-11 | 2014-06-17 | The Mathworks, Inc. | Subgraph execution control in a graphical modeling environment |
CN102317911B (zh) * | 2009-02-13 | 2016-04-06 | 起元技术有限责任公司 | 管理任务执行 |
US8205113B2 (en) * | 2009-07-14 | 2012-06-19 | Ab Initio Technology Llc | Fault tolerant batch processing |
KR101631978B1 (ko) * | 2009-09-16 | 2016-06-20 | 아브 이니티오 테크놀로지 엘엘시 | 데이터세트 요소의 매핑 |
US9003360B1 (en) | 2009-12-10 | 2015-04-07 | The Mathworks, Inc. | Configuring attributes using configuration subgraphs |
US20110161917A1 (en) * | 2009-12-29 | 2011-06-30 | Microgen Plc | Processing collections of data items |
KR20150042297A (ko) | 2010-06-15 | 2015-04-20 | 아브 이니티오 테크놀로지 엘엘시 | 동적으로 로딩하는 그래프 기반 계산 |
WO2012089248A1 (en) | 2010-12-29 | 2012-07-05 | Telecom Italia S.P.A. | Magnetic-like user interface for combining objects |
US8321433B1 (en) * | 2011-05-06 | 2012-11-27 | Sap Ag | Systems and methods for business process logging |
US9607142B2 (en) * | 2011-09-09 | 2017-03-28 | International Business Machines Corporation | Context aware recertification |
US9189217B2 (en) | 2011-10-03 | 2015-11-17 | Telefonaktiebolaget L M Ericsson (Publ) | Method for exploiting massive parallelism |
US9626273B2 (en) | 2011-11-09 | 2017-04-18 | Nec Corporation | Analysis system including analysis engines executing predetermined analysis and analysis executing part controlling operation of analysis engines and causing analysis engines to execute analysis |
US8732359B2 (en) | 2011-12-07 | 2014-05-20 | The Mathworks, Inc. | Data sharing in high-fidelity simulation and real-time multi-core execution |
US20130339977A1 (en) | 2012-06-19 | 2013-12-19 | Jack B. Dennis | Managing task load in a multiprocessing environment |
US8893080B2 (en) | 2012-08-15 | 2014-11-18 | Telefonaktiebolaget L M Ericsson (Publ) | Parallelization of dataflow actors with local state |
US9058324B2 (en) | 2012-09-28 | 2015-06-16 | Intel Corporation | Predictive precaching of data based on context |
EP3189422A1 (en) | 2014-09-02 | 2017-07-12 | AB Initio Technology LLC | Executing graph-based program specifications |
CN106687920B (zh) | 2014-09-02 | 2020-07-03 | 起元科技有限公司 | 管理任务的调用 |
US9619601B1 (en) | 2015-01-22 | 2017-04-11 | Xilinx, Inc. | Control and data flow graph generation for hardware description languages |
US10042528B2 (en) | 2015-08-31 | 2018-08-07 | Getgo, Inc. | Systems and methods of dynamically rendering a set of diagram views based on a diagram model stored in memory |
-
2015
- 2015-09-02 CN CN201580047135.6A patent/CN106687920B/zh active Active
- 2015-09-02 KR KR1020177008713A patent/KR102364553B1/ko active IP Right Grant
- 2015-09-02 JP JP2017510837A patent/JP6626497B2/ja active Active
- 2015-09-02 US US14/843,001 patent/US9747112B2/en active Active
- 2015-09-02 CA CA2959392A patent/CA2959392C/en active Active
- 2015-09-02 AU AU2015312006A patent/AU2015312006B2/en active Active
- 2015-09-02 SG SG11201701563TA patent/SG11201701563TA/en unknown
- 2015-09-02 WO PCT/US2015/048089 patent/WO2016036820A1/en active Application Filing
- 2015-09-02 EP EP15771757.0A patent/EP3189419B1/en active Active
-
2017
- 2017-08-24 US US15/685,339 patent/US10310864B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
AU2015312006B2 (en) | 2020-03-19 |
KR20170046776A (ko) | 2017-05-02 |
US9747112B2 (en) | 2017-08-29 |
CN106687920B (zh) | 2020-07-03 |
WO2016036820A4 (en) | 2016-05-06 |
EP3189419A1 (en) | 2017-07-12 |
SG11201701563TA (en) | 2017-03-30 |
KR102364553B1 (ko) | 2022-02-17 |
EP3189419B1 (en) | 2023-01-25 |
JP2017529605A (ja) | 2017-10-05 |
CA2959392A1 (en) | 2016-03-10 |
US10310864B2 (en) | 2019-06-04 |
CN106687920A (zh) | 2017-05-17 |
AU2015312006A1 (en) | 2017-04-06 |
WO2016036820A1 (en) | 2016-03-10 |
CA2959392C (en) | 2021-08-10 |
US20170371677A1 (en) | 2017-12-28 |
US20160062799A1 (en) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6908682B2 (ja) | グラフに基づくプログラムの仕様の実行 | |
US11301445B2 (en) | Compiling graph-based program specifications | |
US10896025B2 (en) | Specifying components in graph-based programs | |
JP6626497B2 (ja) | タスクの呼び出しの管理 | |
JP6467500B2 (ja) | グラフに基づくプログラムの仕様内の構成要素の関連するタスクを制御するための、それらの構成要素の実行状態の管理 | |
JP6778193B2 (ja) | データ処理タスクの制御 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170425 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170801 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181220 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20190308 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20190510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190619 |
|
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: 20191121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191129 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6626497 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |