JP6467497B2 - 特定のデータポートの接続の特定に基づいてグラフの構成要素の自動化されたクラスタリングによるグラフに基づくプログラムの仕様のコンパイル - Google Patents
特定のデータポートの接続の特定に基づいてグラフの構成要素の自動化されたクラスタリングによるグラフに基づくプログラムの仕様のコンパイル Download PDFInfo
- Publication number
- JP6467497B2 JP6467497B2 JP2017510842A JP2017510842A JP6467497B2 JP 6467497 B2 JP6467497 B2 JP 6467497B2 JP 2017510842 A JP2017510842 A JP 2017510842A JP 2017510842 A JP2017510842 A JP 2017510842A JP 6467497 B2 JP6467497 B2 JP 6467497B2
- Authority
- JP
- Japan
- Prior art keywords
- component
- subset
- data
- port
- components
- 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 235
- 238000000034 method Methods 0.000 claims description 118
- 238000011144 upstream manufacturing Methods 0.000 claims description 83
- 230000008569 process Effects 0.000 claims description 50
- 230000001902 propagating effect Effects 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 75
- 230000007704 transition Effects 0.000 description 48
- 239000000872 buffer Substances 0.000 description 30
- 238000004364 calculation method Methods 0.000 description 28
- 238000013507 mapping Methods 0.000 description 28
- 238000003860 storage Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 238000013459 approach Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 230000001629 suppression Effects 0.000 description 16
- 239000013641 positive control Substances 0.000 description 12
- 238000012546 transfer Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000010200 validation analysis 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
- 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
- 230000008859 change Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000004590 computer program Methods 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
- 239000003607 modifier Substances 0.000 description 3
- 239000013642 negative control Substances 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012552 review Methods 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
- 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
- 230000004888 barrier function Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000005381 magnetic domain Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 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
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- 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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
本出願は、2014年9月2日に出願した米国特許出願第62/044,645号明細書及び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 (15)
- グラフに基づくプログラムの仕様を処理するための方法であって、
前記グラフに基づくプログラムの仕様を受け取るステップであって、前記グラフに基づくプログラムの仕様が、
それぞれが処理タスクに対応し、1又は2以上のポートを含む複数の構成要素であって、前記ポートが、単一のデータ要素を送信又は受信するためのスカラデータポート、及び複数のデータ要素のコレクションを送信又は受信するためのコレクションデータポートを含む、複数の構成要素、並びに
1又は2以上のリンクであって、前記1又は2以上のリンクのそれぞれのリンクが、前記複数の構成要素の上流の構成要素の出力ポートを前記複数の構成要素の下流の構成要素の入力ポートに接続する、1又は2以上のリンクを含む、ステップと、
前記グラフに基づくプログラムの仕様の前記複数の構成要素のサブセットを表す準備されたコードを生じさせるために前記グラフに基づくプログラムの仕様を処理するステップであって、
構成要素のコレクションデータポートを構成要素のスカラデータポートに接続する1又は2以上のリンクを特定することを含む、1又は2以上のサブセットの境界を特定すること、
前記特定されたサブセットの境界に基づいて前記サブセットを形成すること、及び
ランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の前記構成要素に対応する処理タスクを行わせる、それぞれの形成されたサブセットのための準備されたコードを生じさせることを含む、ステップとを含む、前記方法。 - 1又は2以上のサブセットの境界が、1又は2以上のサブセットの入口点を含む請求項1に記載の方法。
- 1又は2以上のサブセットの境界を特定することが、上流の構成要素のコレクションデータ出力ポートを下流の構成要素のスカラデータ入力ポートに接続する少なくとも1つのリンクを特定することを含む、1又は2以上のサブセットの入口点を特定することを含む請求項2に記載の方法。
- 1又は2以上のサブセットの境界が、1又は2以上のサブセットの出口点を含む請求項2又は3に記載の方法。
- 1又は2以上のサブセットの境界を特定することが、上流の構成要素のスカラデータ出力ポートを下流の構成要素のコレクションデータ入力ポートに接続する少なくとも1つのリンクを特定することを含む、1又は2以上のサブセットの出口点を特定することを含む請求項4に記載の方法。
- 形成されたそれぞれのサブセットが、1又は2以上の構成要素、1以下のサブセットの入口点、及び1又は2以上のサブセットの出口点を含む請求項4又は5に記載の方法。
- 特定されたサブセットの境界に基づいてサブセットを形成することが、特定されたサブセットの入口点及び特定されたサブセットの出口点に基づいて前記サブセットを形成することを含む請求項4〜6のいずれかに記載の方法。
- サブセットを形成することが、詳しく調べられたサブセットの入口点及びサブセットの出口点のレコードを保持しながらグラフに基づくプログラムの仕様の構成要素を詳しく調べ、前記グラフに基づくプログラムの仕様の各構成要素を、詳しく調べられたサブセットの入口点及びサブセットの出口点の前記レコードから決定された単一のサブセット識別子に関連付けることを含む請求項7に記載の方法。
- 複数の構成要素の特定されたサブセットに関連する各サブセット識別子が、一意である請求項8に記載の方法。
- 詳しく調べられたサブセットの入口点及びサブセットの出口点のレコードが、識別子の値のパスとして保持される請求項8又は9に記載の方法。
- 識別子の値のパスが、分割文字によって互いに分けられた識別子の値の文字列を含む請求項10に記載の方法。
- サブセットを形成することが、
グラフに基づくプログラムの仕様の第1の構成要素をサブセット識別子に関連付けることと、
前記サブセット識別子を前記第1の構成要素から下流の構成要素に伝搬させることと、
特定されたサブセットの入口点及び特定されたサブセットの出口点に基づいて前記サブセット識別子の伝搬中に前記サブセット識別子を修正することとを含む請求項7に記載の方法。 - サブセット識別子の伝搬中に前記サブセット識別子を修正することが、
サブセットの入口点を詳しく調べると、前記サブセット識別子の値を第1のサブセット識別子の値から前記サブセットの入口点に関連する第2のサブセット識別子の値に変更することと、
前記サブセットの入口点に関連するサブセットの出口点を詳しく調べると、前記サブセット識別子の前記値を前記第1のサブセット識別子の値に変更することと含む請求項12に記載の方法。 - グラフに基づくプログラムの仕様を処理するための、コンピュータ可読媒体に非一時的形態で記憶されたソフトウェアであって、コンピューティングシステムに、
前記グラフに基づくプログラムの仕様を受け取ることであって、前記グラフに基づくプログラムの仕様が、
それぞれが処理タスクに対応し、1又は2以上のポートを含む複数の構成要素であって、前記ポートが、単一のデータ要素を送信又は受信するためのスカラデータポート、及び複数のデータ要素のコレクションを送信又は受信するためのコレクションデータポートを含む、複数の構成要素、並びに
1又は2以上のリンクであって、前記1又は2以上のリンクのそれぞれのリンクが、前記複数の構成要素の上流の構成要素の出力ポートを前記複数の構成要素の下流の構成要素の入力ポートに接続する、1又は2以上のリンクを含む、受け取ることと、
前記グラフに基づくプログラムの仕様の前記複数の構成要素のサブセットを表す準備されたコードを生じさせるために前記グラフに基づくプログラムの仕様を処理することであって、
構成要素のコレクションデータポートを構成要素のスカラデータポートに接続する1又は2以上のリンクを特定することを含む、1又は2以上のサブセットの境界を特定すること、
前記特定されたサブセットの境界に基づいて前記サブセットを形成すること、及び
ランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の前記構成要素に対応する処理タスクを行わせる、それぞれの形成されたサブセットのための準備されたコードを生じさせることを含む、処理することとを行わせるための命令を含む、前記ソフトウェア。 - グラフに基づくプログラムの仕様を処理するためのコンピューティングシステムであって、
前記グラフに基づくプログラムの仕様を受け取るように構成された少なくとも1つの入力デバイス又はポートであって、前記グラフに基づくプログラムの仕様が、
それぞれが処理タスクに対応し、1又は2以上のポートを含む複数の構成要素であって、前記ポートが、単一のデータ要素を送信又は受信するためのスカラデータポート、及び複数のデータ要素のコレクションを送信又は受信するためのコレクションデータポートを含む、複数の構成要素、並びに
1又は2以上のリンクであって、前記1又は2以上のリンクのそれぞれのリンクが、前記複数の構成要素の上流の構成要素の出力ポートを前記複数の構成要素の下流の構成要素の入力ポートに接続する、1又は2以上のリンクを含む、少なくとも1つの入力デバイス又はポートと、
前記グラフに基づくプログラムの仕様の前記複数の構成要素のサブセットを表す準備されたコードを生じさせるために前記グラフに基づくプログラムの仕様を処理するように構成された少なくとも1つのプロセッサであって、処理することが、
構成要素のコレクションデータポートを構成要素のスカラデータポートに接続する1又は2以上のリンクを特定することを含む、1又は2以上のサブセットの境界を特定すること、
前記特定されたサブセットの境界に基づいて前記サブセットを形成すること、及び
ランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の前記構成要素に対応する処理タスクを行わせる、それぞれの形成されたサブセットのための準備されたコードを生じさせることを含む、少なくとも1つのプロセッサとを含む、前記コンピューティングシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462044645P | 2014-09-02 | 2014-09-02 | |
US62/044,645 | 2014-09-02 | ||
US201562164175P | 2015-05-20 | 2015-05-20 | |
US62/164,175 | 2015-05-20 | ||
PCT/US2015/048088 WO2016036819A1 (en) | 2014-09-02 | 2015-09-02 | Compilation of graph-based program specifications with automated clustering of graph components based on the identification of particular data port connections |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017529607A JP2017529607A (ja) | 2017-10-05 |
JP6467497B2 true JP6467497B2 (ja) | 2019-02-13 |
Family
ID=54207677
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017531465A Active JP6698656B2 (ja) | 2014-09-02 | 2015-09-02 | グラフに基づくプログラムの仕様のコンパイル |
JP2017510842A Active JP6467497B2 (ja) | 2014-09-02 | 2015-09-02 | 特定のデータポートの接続の特定に基づいてグラフの構成要素の自動化されたクラスタリングによるグラフに基づくプログラムの仕様のコンパイル |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017531465A Active JP6698656B2 (ja) | 2014-09-02 | 2015-09-02 | グラフに基づくプログラムの仕様のコンパイル |
Country Status (9)
Country | Link |
---|---|
US (4) | US9830343B2 (ja) |
EP (2) | EP3189428B1 (ja) |
JP (2) | JP6698656B2 (ja) |
KR (2) | KR102361155B1 (ja) |
CN (2) | CN106687918B (ja) |
AU (3) | AU2015312005B2 (ja) |
CA (2) | CA2959389A1 (ja) |
SG (2) | SG11201701584SA (ja) |
WO (2) | WO2016036826A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11201701584SA (en) | 2014-09-02 | 2017-03-30 | Ab Initio Technology Llc | Compiling graph-based program specifications |
EP3189418B1 (en) | 2014-09-02 | 2022-02-23 | AB Initio Technology LLC | Visually specifying subsets of components in graph-based programs through user interactions |
US9921814B2 (en) * | 2015-08-24 | 2018-03-20 | International Business Machines Corporation | Control flow graph analysis |
CA3005400C (en) | 2015-12-17 | 2020-10-27 | Ab Initio Technology Llc | Processing data using dynamic partitioning |
US10025566B1 (en) * | 2016-10-07 | 2018-07-17 | The Mathworks, Inc. | Scheduling technique to transform dataflow graph into efficient schedule |
USD844634S1 (en) | 2016-10-26 | 2019-04-02 | Ab Initio Technology Llc | Computer screen with visual programming icons |
USD876445S1 (en) | 2016-10-26 | 2020-02-25 | Ab Initio Technology Llc | Computer screen with contour group organization of visual programming icons |
US9660028B1 (en) | 2016-10-31 | 2017-05-23 | International Business Machines Corporation | Stacked transistors with different channel widths |
US10754815B2 (en) * | 2017-08-15 | 2020-08-25 | International Business Machines Corporation | Processing transactions using a multi-purpose callout processor |
CN107729118A (zh) * | 2017-09-25 | 2018-02-23 | 复旦大学 | 面向众核处理器的修改Java虚拟机的方法 |
US10437885B2 (en) * | 2018-01-03 | 2019-10-08 | Red Hat, Inc. | Graph modeling of applications for detection of duplicate modules |
CN110020529B (zh) * | 2018-01-08 | 2021-04-27 | 武汉斗鱼网络科技有限公司 | 一种用于检测用户信息的方法、装置及计算机设备 |
FR3077664A1 (fr) * | 2018-02-02 | 2019-08-09 | Alstom Transport Technologies | Systeme d'elaboration d'un programme de signalisation ferroviaire et procede d'elaboration associe |
FR3077663B1 (fr) * | 2018-02-02 | 2020-02-28 | Alstom Transport Technologies | Procede d'elaboration d'un programme informatique et dispositif d'elaboration correspondant |
CN109388405A (zh) * | 2018-10-25 | 2019-02-26 | 北京大米未来科技有限公司 | 一种任务处理方法、装置、电子设备及介质 |
CA3130468A1 (en) | 2019-03-14 | 2020-09-17 | Yadong Li | Distributed system generating rule compiler engine apparatuses, methods, systems and media |
CN110321210A (zh) * | 2019-06-28 | 2019-10-11 | 京东数字科技控股有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
US10826801B1 (en) | 2019-07-31 | 2020-11-03 | Bank Of America Corporation | Multi-level data channel and inspection architectures |
US11115310B2 (en) | 2019-08-06 | 2021-09-07 | Bank Of America Corporation | Multi-level data channel and inspection architectures having data pipes in parallel connections |
US11470046B2 (en) | 2019-08-26 | 2022-10-11 | Bank Of America Corporation | Multi-level data channel and inspection architecture including security-level-based filters for diverting network traffic |
US11480969B2 (en) | 2020-01-07 | 2022-10-25 | Argo AI, LLC | Method and system for constructing static directed acyclic graphs |
CN111580896B (zh) * | 2020-05-04 | 2023-07-07 | 武汉众邦银行股份有限公司 | 一种基于原子化服务的链路调用方法 |
US11366648B2 (en) * | 2020-05-28 | 2022-06-21 | Red Hat, Inc. | Compiling monoglot function compositions into a single entity |
CN113326035B (zh) * | 2020-06-29 | 2024-08-06 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN111930374B (zh) * | 2020-09-21 | 2024-01-26 | 北京易真学思教育科技有限公司 | 图形代码组件组合的格式化方法及相关设备 |
CN114519101B (zh) * | 2020-11-18 | 2023-06-06 | 易保网络技术(上海)有限公司 | 数据聚类方法和系统、数据存储方法和系统以及存储介质 |
US20230318926A1 (en) * | 2022-03-29 | 2023-10-05 | Oracle International Corporation | Semi-automated deployment for an intra-service communication infrastructure |
CN115048296B (zh) * | 2022-06-09 | 2024-05-31 | 中金金融认证中心有限公司 | 用于对内存屏障指令有效性进行验证的方法和相关产品 |
SE2350123A1 (en) * | 2023-02-10 | 2024-08-11 | Mtek Ind Ab | System integration platform |
Family Cites Families (111)
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 |
WO1994025917A1 (en) | 1993-04-26 | 1994-11-10 | Comdisco Systems, Inc. | Method for scheduling synchronous data flow graphs |
CA2165893C (en) | 1995-12-21 | 2001-03-13 | Richard Denison Mcdonald | Visual application partitioning for creating distributed object oriented applications |
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
KR100216368B1 (ko) * | 1997-06-11 | 1999-08-16 | 윤종용 | Atm 스위치에서 셀 손실율 개선을 위한 역방향압력 신호를 이용한 입력 버퍼 제어기 장치 및 논리버퍼 크기 결정알고리즘 |
US6784903B2 (en) | 1997-08-18 | 2004-08-31 | National Instruments Corporation | System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations |
DE19837871C2 (de) | 1998-08-20 | 2000-06-08 | Manfred Broy | Verfahren zum automatischen Erzeugen eines Programms |
US6700872B1 (en) * | 1998-12-11 | 2004-03-02 | Cisco Technology, Inc. | Method and system for testing a utopia network element |
JP2001154998A (ja) | 1999-11-25 | 2001-06-08 | Hitachi Ltd | 並列化解析指示方法と並列化汎用連成解析装置 |
US6584581B1 (en) | 1999-12-06 | 2003-06-24 | Ab Initio Software Corporation | Continuous flow checkpointing data processing |
JP2001243341A (ja) | 2000-03-01 | 2001-09-07 | Yamatake Corp | ファンクションブロックモデル作成方法及び装置 |
WO2001069376A2 (en) | 2000-03-15 | 2001-09-20 | Arc International Plc | 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 |
CZ300160B6 (cs) | 2000-03-31 | 2009-02-25 | Sanochemia Pharmazeutika Aktiengesellschaft | Deriváty galanthaminu, zpusob výroby techto derivátu, lécivo, které tyto deriváty obsahuje, použitítechto derivátu pro výrobu léciva, zpusob výroby tohoto léciva a zpusob separace (+)- a (-)-izomeruuvedených derivátu |
US7162534B2 (en) * | 2001-07-10 | 2007-01-09 | Fisher-Rosemount Systems, Inc. | Transactional data communications for process control systems |
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 |
US7234144B2 (en) | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
US7167850B2 (en) | 2002-10-10 | 2007-01-23 | Ab Initio Software Corporation | Startup and control of graph-based computation |
KR20050113194A (ko) * | 2003-02-27 | 2005-12-01 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 데이터 처리 시스템 및 그 제어 방법 |
WO2005001687A2 (en) | 2003-06-25 | 2005-01-06 | Ab Initio Software Corporation | Computer-aided parallelizing of computation graphs |
US7487076B2 (en) | 2003-10-31 | 2009-02-03 | The Mathworks, Inc. | Simplified data signal support for diagramming environment languages |
US8875039B2 (en) | 2003-11-18 | 2014-10-28 | The Mathworks, Inc. | Propagation of characteristics in a graphical model environment |
JP4165888B2 (ja) | 2004-01-30 | 2008-10-15 | キヤノン株式会社 | レイアウト制御方法、レイアウト制御装置及びレイアウト制御プログラム |
US7197502B2 (en) * | 2004-02-18 | 2007-03-27 | Friendly Polynomials, Inc. | Machine-implemented activity management system using asynchronously shared activity data objects and journal data items |
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 |
US7530052B2 (en) | 2004-05-14 | 2009-05-05 | National Instruments Corporation | Creating and executing a graphical program with first model of computation that includes a structure supporting second model of computation |
US8620629B1 (en) | 2004-09-20 | 2013-12-31 | The Mathworks, Inc. | Identification and simulation of multiple subgraphs in multi-domain graphical modeling environment |
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 |
US7974825B2 (en) | 2004-09-20 | 2011-07-05 | The Mathworks, Inc. | Generation of code from a graphical model |
US9766953B2 (en) | 2004-12-16 | 2017-09-19 | Openspan, Inc. | System and method for non-programmatically constructing software solutions |
US7509244B1 (en) | 2004-12-22 | 2009-03-24 | The Mathworks, Inc. | Distributed model compilation |
US7703027B2 (en) | 2005-01-13 | 2010-04-20 | National Instruments Corporation | Merging graphical programs |
US8756044B2 (en) | 2005-05-31 | 2014-06-17 | The Mathworks, Inc. | Graphical partitioning for parallel execution of executable block diagram models |
US7769982B2 (en) | 2005-06-22 | 2010-08-03 | Arm Limited | Data processing apparatus and method for accelerating execution of subgraphs |
US20070240080A1 (en) | 2006-04-11 | 2007-10-11 | Invensys Systems, Inc. | Strategy editor for process control supporting drag and drop connections to declarations |
US20070240069A1 (en) | 2006-04-11 | 2007-10-11 | Invensys Systems, Inc. | Appearance objects for configuring and graphically displaying programmed/configured process control |
US7729894B1 (en) | 2006-05-12 | 2010-06-01 | The Mathworks, Inc. | Test postcondition items for automated analysis and test generation |
US7870556B2 (en) | 2006-05-16 | 2011-01-11 | Ab Initio Technology Llc | Managing computing resources in graph-based computations |
JP2007328730A (ja) | 2006-06-09 | 2007-12-20 | Toshiba Corp | プロセスマッピング支援システム、方法およびプログラム |
JP5894724B2 (ja) * | 2006-08-10 | 2016-03-30 | アビニシオ テクノロジー エルエルシー | グラフ型計算の分散サービス |
US7882462B2 (en) | 2006-09-11 | 2011-02-01 | The Mathworks, Inc. | Hardware definition language generation for frame-based processing |
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 |
US8359586B1 (en) | 2007-08-20 | 2013-01-22 | The Mathworks, Inc. | Code generation |
EP2212777A1 (en) | 2007-10-16 | 2010-08-04 | The Mathworks, Inc. | Mode-switched variable signal attributes in block diagrams |
US8589925B2 (en) | 2007-10-25 | 2013-11-19 | Microsoft Corporation | Techniques for switching threads within routines |
TWI365302B (en) | 2007-12-31 | 2012-06-01 | Ind Tech Res Inst | Stereo image display with switch function between horizontal display and vertical display |
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 |
US8856726B2 (en) | 2009-09-14 | 2014-10-07 | The Mathworks, Inc. | Verification of computer-executable code generated from a slice of a model |
US8869103B2 (en) | 2008-10-06 | 2014-10-21 | The Mathworks, Inc. | Using intermediate representations to verify computer-executable code generated from a model |
US8819585B2 (en) | 2008-10-27 | 2014-08-26 | Microsoft Corporation | Child window surfacing and management |
JP4629768B2 (ja) | 2008-12-03 | 2011-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
US8756562B2 (en) * | 2008-12-11 | 2014-06-17 | The Mathworks, Inc. | Subgraph execution control in a graphical modeling environment |
US8528001B2 (en) | 2008-12-15 | 2013-09-03 | Oracle America, Inc. | Controlling and dynamically varying automatic parallelization |
KR101730513B1 (ko) | 2009-02-13 | 2017-04-26 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
US8448155B2 (en) | 2009-06-01 | 2013-05-21 | National Instruments Corporation | Automatically creating parallel iterative program code in a graphical data flow program |
US8478967B2 (en) | 2009-06-01 | 2013-07-02 | National Instruments Corporation | Automatically creating parallel iterative program code in a data flow program |
US8510709B2 (en) | 2009-06-01 | 2013-08-13 | National Instruments Corporation | Graphical indicator which specifies parallelization of iterative program code in a graphical data flow program |
US8205113B2 (en) | 2009-07-14 | 2012-06-19 | Ab Initio Technology Llc | Fault tolerant batch processing |
US20110055744A1 (en) * | 2009-08-28 | 2011-03-03 | Ryan Christopher N | Visual Linking of Elements to Model Attributes |
US8543974B2 (en) | 2009-08-31 | 2013-09-24 | International Business Machines Corporation | Plan-based program slicing |
US8667329B2 (en) | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
US8694947B1 (en) | 2009-12-09 | 2014-04-08 | The Mathworks, Inc. | Resource sharing workflows within executable graphical models |
US9003360B1 (en) | 2009-12-10 | 2015-04-07 | The Mathworks, Inc. | Configuring attributes using configuration subgraphs |
JP6084037B2 (ja) | 2009-12-14 | 2017-02-22 | アビニシオ テクノロジー エルエルシー | ユーザ・インターフェース要素の指定 |
US20110161917A1 (en) | 2009-12-29 | 2011-06-30 | Microgen Plc | Processing collections of data items |
US8438571B2 (en) | 2010-02-24 | 2013-05-07 | International Business Machines Corporation | Thread speculative execution and asynchronous conflict |
JP5454284B2 (ja) | 2010-03-26 | 2014-03-26 | セイコーエプソン株式会社 | インクジェット記録方法 |
US8555265B2 (en) | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
US8572618B2 (en) | 2010-05-07 | 2013-10-29 | Oracle International Corporation | Event driven change injection and dynamic extensions to a business process execution language process |
CN103069383B (zh) | 2010-06-02 | 2016-09-28 | 艾伦智能科技公司 | 具有图形用户界面的装置及开发多媒体计算机应用程序的方法 |
JP5898188B2 (ja) | 2010-06-15 | 2016-04-06 | アビニシオ テクノロジー エルエルシー | グラフに基づく計算の動的ロード |
EP2585949B1 (en) | 2010-06-22 | 2015-03-25 | Ab Initio Technology LLC | Processing related datasets |
US8566837B2 (en) | 2010-07-16 | 2013-10-22 | International Business Machines Corportion | Dynamic run time allocation of distributed jobs with application specific metrics |
US8726228B2 (en) | 2010-07-30 | 2014-05-13 | National Instruments Corporation | Developing programs in a graphical specification and constraint language |
US10740117B2 (en) | 2010-10-19 | 2020-08-11 | Apple Inc. | Grouping windows into clusters in one or more workspaces in a user interface |
KR101911793B1 (ko) | 2010-10-25 | 2018-10-25 | 아브 이니티오 테크놀로지 엘엘시 | 컴퓨터 프로그램을 나타내는 데이터플로우 그래프 내의 데이터세트 객체의 관리 |
US9436441B1 (en) | 2010-12-08 | 2016-09-06 | The Mathworks, Inc. | Systems and methods for hardware resource sharing |
US9513787B2 (en) | 2010-12-29 | 2016-12-06 | Telecom Italia S.P.A. | Magnetic-like user interface for combining objects |
US9335977B2 (en) | 2011-07-28 | 2016-05-10 | National Instruments Corporation | Optimization of a data flow program based on access pattern information |
CN102270137B (zh) | 2011-08-10 | 2014-01-01 | 清华大学 | 一种获取体系结构描述语言的方法和一种建模工具 |
US9189217B2 (en) | 2011-10-03 | 2015-11-17 | Telefonaktiebolaget L M Ericsson (Publ) | Method for exploiting massive parallelism |
CN102508639B (zh) * | 2011-10-10 | 2014-04-02 | 北京邮电大学 | 一种基于卫星遥感数据特征的分布式并行处理方法 |
US20130110576A1 (en) | 2011-10-28 | 2013-05-02 | Infosys Limited | System and method for checking the conformance of the behavior of a process |
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 |
US9130869B2 (en) * | 2012-02-09 | 2015-09-08 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of redirecting network forwarding elements and related forwarding elements and controllers |
JP6021342B2 (ja) | 2012-02-09 | 2016-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 並列化方法、システム、及びプログラム |
US9754357B2 (en) | 2012-03-23 | 2017-09-05 | Panasonic Intellectual Property Corporation Of America | Image processing device, stereoscoopic device, integrated circuit, and program for determining depth of object in real space generating histogram from image obtained by filming real space and performing smoothing of histogram |
JP2013225251A (ja) | 2012-04-23 | 2013-10-31 | Mitsubishi Electric Corp | 情報処理装置及び情報処理方法及びプログラム |
US8806464B2 (en) | 2012-04-26 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | Process flow optimized directed graph traversal |
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 |
US20150293994A1 (en) | 2012-11-06 | 2015-10-15 | Hewlett-Packard Development Company, L.P. | Enhanced graph traversal |
JP6469084B2 (ja) * | 2013-04-23 | 2019-02-13 | アビニシオ テクノロジー エルエルシー | コンピューティングシステムによって実行されるタスクの制御 |
US9348560B2 (en) * | 2013-06-04 | 2016-05-24 | Qualcomm Incorporated | Efficient execution of graph-based programs |
US9633131B2 (en) * | 2014-03-11 | 2017-04-25 | Cisco Technology, Inc. | HTML network service tags used with web browsers for controlling network elements |
US9462085B2 (en) * | 2014-03-21 | 2016-10-04 | Ptc Inc. | Chunk-based communication of binary dynamic rest messages |
SG11201701584SA (en) | 2014-09-02 | 2017-03-30 | Ab Initio Technology Llc | Compiling graph-based program specifications |
US9933918B2 (en) | 2014-09-02 | 2018-04-03 | Ab Initio Technology Llc | Specifying control and data connections in graph-based programs |
AU2015312006B2 (en) | 2014-09-02 | 2020-03-19 | Ab Initio Technology Llc | Managing invocation of tasks |
CA2959169C (en) | 2014-09-02 | 2021-03-09 | Ab Initio Technology Llc | Executing graph-based program specifications |
EP3189418B1 (en) | 2014-09-02 | 2022-02-23 | AB Initio Technology LLC | Visually specifying subsets of components in graph-based programs through user interactions |
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 |
US10423733B1 (en) | 2015-12-03 | 2019-09-24 | The Mathworks, Inc. | Systems and methods for sharing resources having different data types |
-
2015
- 2015-09-02 SG SG11201701584SA patent/SG11201701584SA/en unknown
- 2015-09-02 KR KR1020177008711A patent/KR102361155B1/ko active IP Right Grant
- 2015-09-02 CA CA2959389A patent/CA2959389A1/en not_active Abandoned
- 2015-09-02 US US14/842,985 patent/US9830343B2/en active Active
- 2015-09-02 WO PCT/US2015/048096 patent/WO2016036826A1/en active Application Filing
- 2015-09-02 EP EP15771756.2A patent/EP3189428B1/en active Active
- 2015-09-02 EP EP15771759.6A patent/EP3189421B1/en active Active
- 2015-09-02 JP JP2017531465A patent/JP6698656B2/ja active Active
- 2015-09-02 KR KR1020177008844A patent/KR102375350B1/ko active IP Right Grant
- 2015-09-02 AU AU2015312005A patent/AU2015312005B2/en active Active
- 2015-09-02 WO PCT/US2015/048088 patent/WO2016036819A1/en active Application Filing
- 2015-09-02 SG SG11201701652QA patent/SG11201701652QA/en unknown
- 2015-09-02 JP JP2017510842A patent/JP6467497B2/ja active Active
- 2015-09-02 AU AU2015312012A patent/AU2015312012B2/en active Active
- 2015-09-02 US US14/843,120 patent/US10496619B2/en active Active
- 2015-09-02 CN CN201580047113.XA patent/CN106687918B/zh active Active
- 2015-09-02 CA CA2959534A patent/CA2959534C/en active Active
- 2015-09-02 CN CN201580047201.XA patent/CN107077364B/zh active Active
-
2017
- 2017-11-17 US US15/815,772 patent/US10885003B2/en active Active
-
2019
- 2019-11-21 AU AU2019268140A patent/AU2019268140B2/en active Active
- 2019-12-03 US US16/701,193 patent/US11301445B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6908682B2 (ja) | グラフに基づくプログラムの仕様の実行 | |
JP6467497B2 (ja) | 特定のデータポートの接続の特定に基づいてグラフの構成要素の自動化されたクラスタリングによるグラフに基づくプログラムの仕様のコンパイル | |
US10896025B2 (en) | Specifying components in graph-based programs | |
JP6626497B2 (ja) | タスクの呼び出しの管理 | |
JP6467500B2 (ja) | グラフに基づくプログラムの仕様内の構成要素の関連するタスクを制御するための、それらの構成要素の実行状態の管理 | |
JP6778193B2 (ja) | データ処理タスクの制御 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |
|
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: 20181218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190111 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6467497 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |