JP6479885B2 - ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定 - Google Patents
ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定 Download PDFInfo
- Publication number
- JP6479885B2 JP6479885B2 JP2017089982A JP2017089982A JP6479885B2 JP 6479885 B2 JP6479885 B2 JP 6479885B2 JP 2017089982 A JP2017089982 A JP 2017089982A JP 2017089982 A JP2017089982 A JP 2017089982A JP 6479885 B2 JP6479885 B2 JP 6479885B2
- Authority
- JP
- Japan
- Prior art keywords
- component
- graph
- data
- port
- elements
- 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
- 230000000007 visual effect Effects 0.000 title claims description 150
- 230000003993 interaction Effects 0.000 title description 3
- 238000012545 processing Methods 0.000 claims description 254
- 238000000034 method Methods 0.000 claims description 179
- 238000004364 calculation method Methods 0.000 claims description 68
- 238000012512 characterization method Methods 0.000 claims description 18
- 230000036961 partial effect Effects 0.000 claims description 7
- 238000000926 separation method Methods 0.000 claims description 4
- 238000009499 grossing Methods 0.000 claims description 2
- 238000011144 upstream manufacturing Methods 0.000 description 83
- 238000004422 calculation algorithm Methods 0.000 description 77
- 230000008569 process Effects 0.000 description 61
- 230000007704 transition Effects 0.000 description 49
- 239000000872 buffer Substances 0.000 description 30
- 238000013507 mapping Methods 0.000 description 28
- 238000013459 approach Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 24
- 238000003860 storage Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 238000012546 transfer Methods 0.000 description 17
- 230000001629 suppression Effects 0.000 description 16
- 239000013641 positive control Substances 0.000 description 12
- 230000006399 behavior Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000010200 validation analysis Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000003442 weekly effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification 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
- 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
- 230000000694 effects Effects 0.000 description 3
- 239000000203 mixture Substances 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
- 230000001902 propagating effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 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
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000009877 rendering Methods 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
- 238000007792 addition Methods 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
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 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
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive 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
- 230000009467 reduction Effects 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
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 238000012795 verification 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/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/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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Devices For Executing Special Programs (AREA)
- Image Generation (AREA)
Description
本出願は、2014年9月2日に出願した米国特許出願第62/044,708号明細書及び2015年5月20日に出願した米国特許出願第62/164,175号明細書の優先権を主張するものである。
において並列に実行されることは本明細書においてパイプライン並列処理(pipeline parallelism)と呼ばれる。
トを再び形成するために合併される可能性がある。構成要素のインスタンスを実行するために使用されるコンピュータ又はプロセッサコアの数は、データフローグラフが作られるときに作成者によって指定される。
の出力は、区分され、再び分散型ファイルシステム内の中間部分に記憶される。それから、Reduce関数が、中間部分を処理し、計算全体の結果を与えるために分散された方法で実行される。MapReduceフレームワークにおいて表現可能であり、入力及び出力がmap−reduceフレームワークのファイルシステム内に記憶するために修正可能である計算は効率的に実行され得るが、多くの計算は、このフレームワークに合わない及び/又はすべてのそれらの計算の入力及び出力を分散型ファイルシステム内に持つように容易に適応されない。
である。
、National Instruments Corporation社のLabVIEW、及びThe Mathworks, Inc.社のSimulinkが、コンパイルされるか又は直接実行されるグラフに基づく計算をプログラマが規定することを可能にする視覚的プログラミング環境を提供する。
ックスによって)明示的に示される下位部分を有する可能性がある。グラフに基づく計算のための視覚的プログラミング環境の一部の例においては、例えば、色によりグループへの注意を促すことによって、又はグループの周りに境界を描くことによってプログラムエラーを示すために、要素のグループがユーザに対して特定される可能性がある。
ットを特定するためにグラフに基づくプログラムの仕様を処理するステップであって、リンクされる構成要素のデータ処理の特徴に少なくとも部分的に基づいて異なるサブセット内の構成要素の間に現れる1又は2以上のサブセットの入口点及び1又は2以上のサブセットの出口点を特定すること、特定されたサブセットの入口点、特定されたサブセットの出口点に基づいてサブセットを形成すること、ユーザインターフェース内に形成されたサブセットの視覚的表現を与えること、並びにランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の構成要素に対応する処理タスクを行わせる(performed)、それぞれの形成されたサブセットのための準備されたコードを生じ
させることを含む、ステップとを含む。本明細書において使用されるとき、「準備されたコード」は、実行可能コード又は実行可能コードへとさらにコンパイル若しくは解釈され得るコードを含む可能性がある、グラフに基づくプログラムの仕様の解析された要素を変換するときにコンパイラ又はインタープリタによって使用される任意の目標の言語のコードを含む。
データ要素のコレクション(collection)を送信又は受信するためのコレクションデータポートとを含む。
サブセットの出口点のレコードを保持しながらグラフに基づくプログラムの仕様の構成要素を詳しく調べ(traverse)、グラフに基づくプログラムの仕様の各構成要素を、詳しく調べられたサブセットの入口点及びサブセットの出口点のレコードから決定された単一のサブセット識別子に関連付けることを含む。
ムの仕様を与えることであって、複数の構成要素を規定するユーザ入力を受け取ることであって、複数の構成要素の各々が、処理タスクに対応し、少なくとも一部の構成要素が、1又は2以上のポートを含む、受け取ること、及び複数のリンクを規定するユーザ入力を受け取ることであって、リンクの少なくとも一部が、複数の構成要素の上流の構成要素の出力ポートを複数の構成要素の下流の構成要素の入力ポートに接続する、受け取ることを含む、与えることと、複数の構成要素の1又は2以上のサブセットを特定するためにグラフに基づくプログラムの仕様を処理することであって、リンクされる構成要素のデータ処理の特徴に少なくとも部分的に基づいて異なるサブセット内の構成要素の間に現れる1又は2以上のサブセットの入口点及び1又は2以上のサブセットの出口点を特定すること、特定されたサブセットの入口点、特定されたサブセットの出口点に基づいてサブセットを形成すること、ユーザインターフェース内に形成されたサブセットの視覚的表現を与えること、並びにランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の構成要素に対応する処理タスクを行わせる、それぞれの形成されたサブセットのための準備されたコードを生じさせることを含む、処理することとを行わせるための命令を含む。
プの要素の移動に境界を適応させることと比較して、境界によって残るべきグループの要素の境界を定めること、並びに/或いは(d)視覚的表現及び/又は基礎を成すグラフに基づく計算の自動化された構文的(又は意味的)分析と比較して、グループの要素をユーザが規定することを要求することに制限される。視覚的表現内で(例えば、視覚的な開発環境内で)複雑なグラフに基づく計算の仕様をサポートするために、視覚的な環境が、ユーザにフィードバックを与えて、(例えば、コンパイルの後に又は直ちに)システムがデータを処理するために使用するグラフに基づく計算の解釈を示す。上述の手法の制限のうちの一部又はすべてを取り除くことは、ユーザが、視覚的な環境をホストする第1のコンピュータによって自動的に、潜在的に複雑なグラフに基づく計算を視覚化し、規定するための方法を提供し、規定されている計算の視覚的なフィードバックを提供し、例えば、視覚的表現を第2のコンピュータ(又はマルチコンピュータシステム)上で実行するための実行可能な形態にコンパイルすることによって視覚的なフィードバックに直接対応する計算を第2のコンピュータ(又はマルチコンピュータシステム)に実行させる。利点は、計算の仕様の効率と、より重要なことに、視覚的表現を規定する又は見るユーザの意図と比較したときの実行される計算の正しさ、及び誤りの削減とを含む。
従って決定される。
領域の空間的範囲を決定することを含む。そして、領域は、例えば、色(グレースケールを含む)(例えば、背景色、グループ内の要素の色など)、領域の境界(例えば、領域の外形に沿った線)、濃淡(例えば、3次元透視図(perspective view)内の各グループの「elevation(高さ)」を表す)、又はこれらの若しくはその他の視覚的表現技術のうち
の1若しくは2以上の組合せを使用する視覚的表現技術を使用して視覚的表現内に視覚的に示される。
データ点に合致する輪郭のプロットを形成するための技術が知られていることを理解されたい。しかし、輪郭を描くことと入れ子にされた領域の外形を決定することとの間には明らかな類似性がある可能性があるにもかかわらず、問題及びそれらの問題の解決策は異なる。第1の違いは、グループのラベルが、概して、部分的に順序付けられ、完全に順序付けられないことである(例えば、ラベルは、同じ順序付け情報を表す実数にマッピングされない可能性がある)。例えば、高さは、完全に順序付けられた尺度である。この手法においては、2つのグループが、同じ「レベル」(例えば、部分的な順序付けの木表現内の同じ深さ)のラベルを有する可能性がある。各グループから1つずつ2つの視覚的要素が近接している場合、通常の輪郭を描く手法は、根本的に、それらの視覚的要素が同じ「高さ」又は「レベル」にあるので、それらの視覚的要素の間に輪郭を挿入する必要がない。一方、この手法のいくつかの実施形態においては、概して、視覚的要素を分ける少なくとも2つの輪郭、すなわち、第1の領域を、それ及び第2の領域が入れ子にされる囲み込む領域の残りから分ける1つの輪郭と、第2の領域を、囲み込む領域の残りから分ける別の輪郭とが存在する。さらなる違いは、輪郭を描く場合に、概して、上で検討されたように、例えば、領域の外形を最小化するなどの方法で輪郭の形状を最適化する必要がないことである。通常のモザイク式の配列に基づく輪郭を描く手法は視覚的要素のグループに対応する領域の外形を決定する問題に直接適用可能でないという観測にもかかわらず、これらの外形が決定された後、結果が、視覚的要素が表され得る「トポグラフィ(topography)」に対応するように解釈される可能性がある。
ドとの間のつなぎ目は、順序付けられないか、完全に順序付けられるか、又は部分的に順序付けられる可能性があるレコードのコレクション全体の転送を表し、コレクション全体の転送を表す出力リンクを有するグラフに基づく計算のノードは、そのノードの実行の際にそのようなコレクションを生成する仕様を有すると理解される。同様に、レコードのコレクション全体の転送を表す入力リンクを有するグラフに基づく計算のノードは、そのノードの実行の際にそのようなコレクションを消費する仕様を有すると理解される。一方、特定のリンク、又はポートとして表され得るリンクとノードとの間のつなぎ目は、ノード
に関連する計算の実行の際の最大で1つのレコードの転送(つまり、1つのレコードの転送又はまったくレコードの転送なし)を表し、ノードのコレクションの処理は、ノードに関して規定された計算の繰り返される実行に対応する。いくつかのそのような例において、グループ分けは、要素のグループが、領域に入る各リンク上の最大で1つのレコードの処理と、領域を離れる最大で1つのレコードを生成することとを表す可能性があるようなものであり、計算の各々の最大で1回の実行が、グループのノードの各々に関連付けられる。そのようなグループは、「スカラ」グループと呼ばれる可能性がある。そのようなグループは、別のグループ内に入れ子になっている可能性があり、そのグループ内のノードに関連する計算の実行は、レコードのコレクション全体を生成又は消費する。
、グラフに基づく計算の視覚的表現内のグラフの要素の視覚的表現の位置を含む。
及び入れ子の自動化されたフィードバックは、視覚的表現内でグループを規定する及び/又はそれらのグループを与えるための明示的なユーザ入力を必要とせずに、仕様の集約された要素(例えば、グループ及びそれらのグループの入れ子)を推測し、それらの要素を(例えば、領域の形態で)与える解決策によって複雑な仕様の入力の技術的問題に対処する。
すなわち本発明は、以下に関する。
1. グラフに基づくプログラムの仕様を処理するための方法であって、
ユーザインターフェースにおいて、グラフに基づくプログラムの仕様を与えるステップであって、
複数の構成要素を規定するユーザ入力を受け取ることであって、前記複数の構成要素の各々が、処理タスクに対応し、少なくとも一部の構成要素が、1又は2以上のポートを含む、受け取ること、及び
複数のリンクを規定するユーザ入力を受け取ることであって、前記リンクの少なくとも一部が、前記複数の構成要素の上流の構成要素の出力ポートを前記複数の構成要素の下流の構成要素の入力ポートに接続する、受け取ることを含む、ステップと、
前記複数の構成要素の1又は2以上のサブセットを特定するために前記グラフに基づくプログラムの仕様を処理するステップであって、
リンクされる構成要素のデータ処理の特徴に少なくとも部分的に基づいて異なるサブセット内の構成要素の間に現れる1又は2以上のサブセットの入口点及び1又は2以上のサブセットの出口点を特定すること、
前記特定されたサブセットの入口点及び前記特定されたサブセットの出口点に基づいて前記サブセットを形成すること、
前記ユーザインターフェース内に前記形成されたサブセットの視覚的表現を与えること、並びに
ランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の前記構成要素に対応する処理タスクを行わせる、それぞれの形成されたサブセットのための準備されたコードを生じさせることを含む、ステップとを含む、前記方法。
2. 処理するステップが、サブセットのうちの1つに含まれるべき又は前記サブセットのうちの1つから削除されるべき1又は2以上の構成要素を規定するユーザ入力を含むユーザ入力の履歴を記憶することをさらに含む上記1に記載の方法。
3. ユーザ入力の履歴が、サブセットのうちの1つから削除されるべき少なくとも1つの構成要素を規定するユーザ入力を含む上記2に記載の方法。
4. サブセットを形成することが、削除された構成要素が含まれるべき新しいサブセットを生じさせることを含む上記3に記載の方法。
5. サブセットを形成することが、削除された構成要素が含まれるべき新しいサブセットをユーザ入力が規定するまで前記サブセットを形成することを遅らせることを含む上記3又は4に記載の方法。
6. ユーザ入力の履歴が、サブセットのうちの1つに含まれるべき少なくとも1つの構成要素を規定するユーザ入力を含む上記2〜5のいずれかに記載の方法。
7. 規定された構成要素が含まれるべきサブセットが、前記サブセット内のすべての構成要素を有効化する又は無効化するための入力を含む上記6に記載の方法。
8. ポートが、単一のデータ要素を送信又は受信するためのスカラデータポートと、複数のデータ要素のコレクションを送信又は受信するためのコレクションデータポートとを含む上記1〜7のいずれかに記載の方法。
9. 1又は2以上のサブセットの入口点及び1又は2以上のサブセットの出口点を特定することが、
上流の構成要素のコレクションデータ出力ポートを下流の構成要素のスカラデータ入力ポートに接続する1又は2以上のリンクを特定することに基づいて1又は2以上のサブセットの入口点を特定することと、
上流の構成要素のスカラデータ出力ポートを下流の構成要素のコレクションデータ入力ポートに接続する1又は2以上のリンクを特定することに基づいて1又は2以上のサブセットの出口点を特定することとを含む上記8に記載の方法。
10. サブセットを形成することが、詳しく調べられたサブセットの入口点及びサブセットの出口点のレコードを保持しながらグラフに基づくプログラムの仕様の構成要素を詳しく調べ、前記グラフに基づくプログラムの仕様の各構成要素を、詳しく調べられたサブセットの入口点及びサブセットの出口点の前記レコードから決定された単一のサブセット識別子に関連付けることを含む上記9に記載の方法。
11. 複数の構成要素の特定されたサブセットに関連する各サブセット識別子が、一意である上記10に記載の方法。
12. 詳しく調べられたサブセットの入口点及びサブセットの出口点のレコードが、識別子の値のパスとして保持される上記10又は11に記載の方法。
13. 識別子の値のパスが、分割文字によって互いに分けられた識別子の値の文字列を含む上記12に記載の方法。
14. サブセットを形成することが、
グラフに基づくプログラムの仕様の第1の構成要素をサブセット識別子に関連付けることと、
前記サブセット識別子を前記第1の構成要素から下流の構成要素に伝搬させることと、 特定されたサブセットの入口点及び特定されたサブセットの出口点に基づいて前記サブセット識別子の伝搬中に前記サブセット識別子を修正することとを含む上記9〜13のいずれかに記載の方法。
15. サブセット識別子の伝搬中に前記サブセット識別子を修正することが、
サブセットの入口点を詳しく調べると、前記サブセット識別子の値を第1のサブセット識別子の値から前記サブセットの入口点に関連する第2のサブセット識別子の値に変更することと、
前記サブセットの入口点に関連するサブセットの出口点を詳しく調べると、前記サブセット識別子の前記値を前記第1のサブセット識別子の値に変更することとを含む上記14に記載の方法。
16. それぞれの形成されたサブセットのための準備されたコードを生じさせることが、直列実行を強制するポート間のグラフに基づくプログラムの仕様内のリンクに基づいて、前記形成されたサブセットの構成要素及び前記構成要素の間の接続を含む制御グラフを生じさせることを含む上記1〜15のいずれかに記載の方法。
17. ランタイムシステムが、準備されたコードを使用して、形成されたサブセットのうちの少なくとも1つの異なるインスタンス内の構成要素に対応するタスクの処理を並列に実行させる上記1〜16のいずれかに記載の方法。
18. 複数のサブセットが、別の形成されたサブセット内に入れ子にされた少なくとも1つの形成されたサブセットを有する階層内に形成される上記17に記載の方法。
19. グラフに基づくプログラムの仕様を処理するための、コンピュータ可読媒体に非一時的形態で記憶されたソフトウェアであって、コンピューティングシステムに、
ユーザインターフェースにおいて、グラフに基づくプログラムの仕様を与えることであって、
複数の構成要素を規定するユーザ入力を受け取ることであって、前記複数の構成要素の各々が、処理タスクに対応し、少なくとも一部の構成要素が、1又は2以上のポートを含む、受け取ること、及び
複数のリンクを規定するユーザ入力を受け取ることであって、前記リンクの少なくとも一部が、前記複数の構成要素の上流の構成要素の出力ポートを前記複数の構成要素の下流の構成要素の入力ポートに接続する、受け取ることを含む、与えることと、
前記複数の構成要素の1又は2以上のサブセットを特定するために前記グラフに基づくプログラムの仕様を処理することであって、
リンクされる構成要素のデータ処理の特徴に少なくとも部分的に基づいて異なるサブセット内の構成要素の間に現れる1又は2以上のサブセットの入口点及び1又は2以上のサブセットの出口点を特定すること、
前記特定されたサブセットの入口点及び前記特定されたサブセットの出口点に基づいて前記サブセットを形成すること、
前記ユーザインターフェース内に前記形成されたサブセットの視覚的表現を与えること、並びに
ランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の前記構成要素に対応する処理タスクを行わせる、それぞれの形成されたサブセットのための準備されたコードを生じさせることを含む、処理することとを行わせるための命令を含む、前記ソフトウェア。
20. グラフに基づくプログラムの仕様を処理するためのコンピューティングシステムであって、
グラフに基づくプログラムの仕様を与えるように構成されたユーザインターフェースであって、与えることが、
複数の構成要素を規定するユーザ入力を受け取ることであって、前記複数の構成要素の各々が、処理タスクに対応し、少なくとも一部の構成要素が、1又は2以上のポートを含む、受け取ること、及び
複数のリンクを規定するユーザ入力を受け取ることであって、前記リンクの少なくとも一部が、前記複数の構成要素の上流の構成要素の出力ポートを前記複数の構成要素の下流の構成要素の入力ポートに接続する、受け取ることを含む、ユーザインターフェースと、
前記複数の構成要素の1又は2以上のサブセットを特定するために前記グラフに基づくプログラムの仕様を処理するように構成された少なくとも1つのプロセッサであって、処理することが、
リンクされる構成要素のデータ処理の特徴に少なくとも部分的に基づいて異なるサブセット内の構成要素の間に現れる1又は2以上のサブセットの入口点及び1又は2以上のサブセットの出口点を特定すること、
前記特定されたサブセットの入口点及び前記特定されたサブセットの出口点に基づいて前記サブセットを形成すること、
前記ユーザインターフェース内に前記形成されたサブセットの視覚的表現を与えること、並びに
ランタイムシステムによる実行のために使用されるときに、それぞれの形成されたサブセット内の前記構成要素に対応する処理タスクを行わせる、それぞれの形成されたサブセットのための準備されたコードを生じさせることを含む、少なくとも1つのプロセッサとを含む、前記コンピューティングシステム。
21. リンクされた構成要素の間のデータ処理の特徴が、並列処理の階層的形態を提供する階層内のレベルのリンクされた構成要素の間の変化を含む上記1に記載の方法。
一部の実施形態において、高レベルのプログラムの仕様110は、データに対して実行されるデータ処理の計算の全体の一部をそれぞれが規定する「構成要素」のセットを含む「データ処理グラフ」と呼ばれるある種のグラフに基づくプログラムの仕様である。構成要素は、例えば、プログラミングユーザインターフェース及び/又は計算のデータ表現においてグラフ内のノードとして表される。上の背景技術において説明されたデータフローグラフなどの一部のグラフに基づくプログラムの仕様とは異なり、データ処理グラフは、データの転送、又は制御の転送、又はこれら両方のいずれかを表すノード間のリンクを含み得る。リンクの特徴を示す1つの方法は、構成要素に異なる種類のポートを設けることによる。リンクは、上流の構成要素の出力ポートから下流の構成要素の入力ポートに接続される有向リンクである。ポートは、データ要素がどのようにして書き込まれ、リンクから読まれるのか及び/又は構成要素がデータを処理するためにどのようにして制御されるのかの特徴を表すインジケータを有する。
・構成要素のインスタンスがポートに接続されたリンクを通り越すコレクションのすべてのデータ要素をそれぞれ読むか又は書くことを意味するコレクション入力ポート又はコレクション出力ポート。構成要素のコレクションポート間の単一のリンクを有する構成要素の対に関して、下流の構成要素は、概して、データ要素が上流の構成要素によって書かれるときにそれらのデータ要素を読むことを可能にされ、上流の構成要素と下流の構成要素との間のパイプライン並列処理を可能にする。下でより詳細に説明されるように、データ要素は、並べ替えられる可能性もあり、それが、並列処理の効率的な働きを可能にする。例えば、プログラミンググラフィカルインターフェース内の一部のグラフィカルな表現において、そのようなコレクションポートは、概して、構成要素の四角いコネクタ記号によって示される。
・構成要素のインスタンスが、それぞれ、ポートに接続されたリンクから最大で1つのデータ要素を読むか又はポートに接続されたリンクに最大で1つのデータ要素を書くことを意味するスカラ入力ポート又はスカラ出力ポート。構成要素のスカラポート間の単一のリンクを有する構成要素の対に関して、上流の構成要素が実行を終えた後の下流の構成要素の直列実行が、単一のデータ要素の転送を制御の転送として使用することによって強制される。例えば、プログラミンググラフィカルインターフェース内の一部のグラフィカルな表現において、そのようなスカラポートは、概して、構成要素の三角のコネクタ記号によって示される。
・スカラ入力又はスカラ出力と同様であるが、いかなるデータ要素も送信される必要がない制御入力ポート又は制御出力ポートであって、構成要素間の制御の転送を伝達するために使用される、制御入力ポート又は制御出力ポート。構成要素の制御ポート間のリンクを有する構成要素の対に関して、上流の構成要素が実行を終えた後の下流の構成要素の直列実行が(たとえそれらの構成要素がコレクションポート間のリンクも有するとしても)強制される。例えば、プログラミンググラフィカルインターフェース内の一部のグラフィカルな表現において、そのような制御ポートは、概して、構成要素の丸いコネクタ記号によって示される。
。その他の例は、異なる種類のポートを含むが、ただし、データ処理グラフ内でポートの種類を視覚的に明示的に示さない可能性がある。
へのデータ処理グラフの実装形態のより詳細な検討は、グラフに基づく仕様自体の特徴の検討の後により完全に検討される。
)が行われる。
タスク(例えば、データ処理タスク)を実行する。作成者は、ディスプレイスクリーン上に示されたキャンバス領域上でデータ処理グラフを組み立てることによってそのようにする。これは、構成要素をキャンバス上に置くことと、それらの構成要素のさまざまなポートを適切なリンクによって接続することと、その他の方法で構成要素を適切に構成することとを含む。以下の簡単な例は、コレクションポートの単一の対及び制御ポートの単一の対を有する構成要素の文脈での特定の振る舞いを示す。
、これは、データが制御に関する判断を行うために使用されることを可能にする。
れるので、そのデータ要素を肯定の制御信号として扱う。第4の構成要素234は、データ要素内の実データを無視し、単に、データ要素の存在を肯定の制御信号として使用する。
45と、「不良レコードのファイル名を生じさせる」とラベル付けされた第6の構成要素246と、「何らかの確認エラーか?」とラベル付けされた第7の構成要素247と、「アラートを送信する」とラベル付けされた第8の構成要素248とを有するデータ処理グラフ240を示す。このグラフは、不良レコードをファイルに書き、そのような不良レコードを検出するとアラートを送信するように意図される。
定される出力ファイルに不良レコードを書く。
C1)306を含む。第1の構成要素は、コレクション型入力ポート308及びスカラ型出力ポート310を含む。第2の構成要素304は、スカラ型入力ポート312及びスカラ型出力ポート314を含む。第3の構成要素は、スカラ型入力ポート316及びコレクション型出力ポート318を含む。
第1の構成要素(A2)326、第2の構成要素(B2)328、及び第3の構成要素(C2)330を含む。第1の構成要素326は、コレクション型入力ポート332及びコレクション型出力ポート334を含む。第2の構成要素328は、コレクション型入力ポート336及びコレクション型出力ポート338を含む。第3の構成要素330は、コレクション型入力ポート340及びコレクション型出力ポート342を含む。
ート360及びスカラ型出力ポート362を含む。第3の構成要素354は、コレクション型入力ポート364及びコレクション型出力ポート366を含む。
図1に関連して上で説明されているように、コンパイラ/インタープリタ120は、実行するためにデータ処理グラフを準備するためにデータ処理グラフに実行セット発見前処理手順を実行する。通常の意味で、本明細書において使用されるとき、用語「実行セット」は、一体として呼び出され、出力コレクションポートのデータ要素の一部などのデータの一部に適用され得る1又は2以上の構成要素のセットを指す。したがって、それぞれの入力データ要素(又は実行セットの1若しくは2以上の入力ポートに与えられる複数の入力データ要素のタプル)のために、実行セット内の各構成要素の最大で1つのインスタンスが実行される。実行セット内で、スカラポート及び制御ポートへのリンクによって、順番に並べる制約が課され、実行セット内の構成要素の並列実行は、順番に並べる制約が破られない限りにおいて容認される。コンパイラ/インタープリタ120によって実行セットのために準備されるコードは、コードが実行されるときに構成要素に対応するタスクがどのようにして実行されるべきか(例えば、並列処理の度合い)を示す埋め込まれた情報(例えば、アノテーション又は修飾子(modifier))を含み得る。受け取られたコレクション内の複数のデータ要素のタプルのために実行セットの1つのインスタンスが実行される例において、タプルは、例えば、決まった数のデータ要素、又は何らかの特徴(例えば、共通のキー値)を共有するいくつかのデータ要素からなる可能性がある。並列に実行されることを可能にされる少なくともいくつかの構成要素が存在する例において、実行セットは、複数のタスク、例えば、実行セットまるごとのためのタスクと、構成要素のうちの1又は2以上のインスタンスの同時実行のための1又は2以上のサブタスクとを使用して実施される可能性がある。したがって、実行セットの異なるインスタンスを表すタスクは
、それら自体、例えば、同時に実行され得るサブタスクによってさらに細分化されたタスクに分解される可能性がある。異なる実行セットのためのタスクは、概して、独立して並列に実行され得る。したがって、例えば、大きなデータセットが百万個のレコードを有する場合、百万個の独立したタスクが存在する可能性がある。タスクの一部は、コンピューティングプラットフォーム150の異なるノード152上で実行される可能性がある。タスクは、単一のノード152上でさえも同時に効率的に実行され得る軽量スレッドを使用して実行される可能性がある。
ットの駆動入力スカラデータポートにおいて受け取られた各データ要素に関して、実行セット内の構成要素の各々は、1回実行される(作動される場合)か又はまったく実行されない(抑制される場合)。上流のコレクションポートから実行セットに利用され得る複数のデータ要素を処理するために、実行セットの複数のインスタンスがインスタンス化され、並列に実行され得る。実行セットに関する並列処理の度合いは、ランタイムで決定される可能性があり(実行セットを並列化しないあり得る判断を含み)、ランタイムで利用可能な計算リソースによってのみ制限される。実行セットの独立したインスタンスの個々の出力は、順序に関係なく実行セットの(1又は2以上の)出力ポートにおいて集められ、下流の構成要素に利用され得るようにされる。代替的に、その他の実施形態においては、駆動入力スカラデータポートを必要としないルート実行セット以外の実行セットが(場合によってはユーザ入力に基づいて)認識される可能性がある。駆動入力スカラデータポートのないそのような実行セットは、本明細書において説明される手順を使用して、適切な場合(例えば、下で説明されるラッチされた実行セットのために)単一のインスタンスにおいて、又は複数のインスタンスにおいて並列に実行される可能性がある。例えば、実行セットが実行される回数及び/又は実行される実行セットの並列なインスタンスの数を決定するパラメータが設定される可能性がある。
して渡されない。
例示を目的として、第1の例において、データ処理グラフは、単純な1次元のグラフ構造を有し、比較的簡単な割り当てアルゴリズムが、スタックに基づくアルゴリズムを使用して示される。スタックに基づく割り当てアルゴリズムにおいて、データ処理グラフ内の各構成要素は、分割文字「/」によって分けられた整数からなる1又は2以上の「ID文字列」によってラベル付けされる。所与の構成要素のID文字列内に分割文字「/」が現れる回数は、実行セットの階層内の構成要素のレベルを決定する。一部の例において、構成要素は、複数の入力リンクを有する可能性があり、したがって、複数のID文字列を有する可能性がある。そのような場合、アルゴリズムは、どのID文字列を使用すべきかを決定するための下でより詳細に説明される規則を有する。
既存のID文字列の整数の中の最大>である。上流の構成要素のスカラ型出力ポートと下流
の構成要素のコレクション型入力ポートとの間のリンクが遭遇される場合、下流の構成要素は、ラベルの一番右のID文字列の整数(及びその整数の分割文字「/」)が削除されるようにして上流の構成要素のラベルを含むラベルを割り当てられる。
構成要素は、ID文字列の一番右のID文字列「2」(及びそのID文字列の分割文字「/」)が削除された第3の構成要素562のID文字列であるID文字列「0/1」を割り当てられる。概して、第3の構成要素562のID文字列から「/2」を削除することは、「レベル2」実行セット572から「レベル1」実行セット570への遷移の指示である。一部の例において、この遷移は、第1の実行セットの出口点インジケータ563を使用して表される。
一部の例において、より普通のデータ処理グラフに関して、スタックに基づく割り当てアルゴリズムは、実行セットの階層を正しく決定するのに十分でない可能性がある。例えば、普通のデータ処理グラフにおいては、任意の所与の構成要素が、複数の入力ポート及
び/又は複数の出力ポートを有し、スタックに基づく手法に適合しない普通のデータ処理グラフを実行することができる。そのような例においては、実行セットの階層を決定するためにグローバルなマッピングに基づく割り当てアルゴリズムが使用される。
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(トポロジカルソートされた順序)を返す
文字列「0」を有するそれらの構成要素は、実行の階層内でルートの「レベル0」実行セット629にグループ分けされる。ID文字列「1」を有するそれらの構成要素は、ルート実行セット629内に入れ子にされる「レベル1」実行セット630にグループ分けされる。ID文字列「2」を有するそれらの構成要素は、ルートの「レベル0」実行セット629と、さらに「レベル1」実行セット630との中に入れ子にされる「レベル2」実行セット631にグループ分けされる。
上述の例においては、(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を含む。
にあり、つまり、テーブル読み取り構成要素898は、1回実行され、そのテーブル読み取り構成要素898のコレクション型出力ポートからデータ要素のコレクションを出力する。データ要素のコレクションは、第1の実行セット894の境界を横切り、第1の構成要素891のコレクション型入力ポートに与えられる。実行セット894内の構成要素のそれぞれの並列のインスタンスのために、第1の構成要素891のコレクション型入力ポートにおけるデータ要素のコレクションのコピーが生成される。概して、リンクがコレクションポートからであるのか、スカラポートからであるのか、又は制御ポートからであるのかにかかわらず、異なる実行セットに割り当てられる構成要素の間のリンクは、実行セットに流れ込むリンクに関してすべてのインスタンスにデータ又は制御要素をコピーさせ、実行セットから流れ出すリンクに関してすべてのインスタンスからデータ又は制御要素を集めさせる。データ要素は、コレクションへと集められ、制御要素は、ベクトル(vector)へと集められ、そのコレクション又はベクトルは、下流の構成要素の制御論理に応じて(エラーとしてそのコレクション又はベクトルにフラグを立てる可能性も含め)適切に扱われ得る。
行セットから移動先実行セットに構成要素をドラッグすることによって「同じセット」関係を規定することができる。一部の例においては、ドラッグされた構成要素が移動先実行セット内に規則を守って置かれ得ることを検証するためのエラー検査が実行される。例えば、互いに「同じセット」関係を有することになるすべての2つの構成要素に強制され得る1つのあり得る要件は、それらの構成要素の両方を含むデータ処理グラフを通り抜ける少なくとも1つの経路が存在しなければならないことである。
一部の例においては、実行セット内の複数の構成要素が、それぞれ、実行セットの入口点を介して上流の構成要素の単一のコレクション出力ポートに接続されたスカラ入力ポートを有する可能性がある。同様に、実行セット内の複数の構成要素が、それぞれ、実行セットの下流の構成要素の単一のコレクション入力ポートに接続されたスカラ出力ポートを有する可能性がある。
ション入力ポートは、合併されたデータ要素を扱うように構成される。
一部の例において、所与の実行セット内の構成要素は、並列のインスタンスにおいて複数回実行される可能性がある。一部の例において、並列のインスタンスを実行する構成要素は、共有リソースにアクセスする必要がある可能性がある。競合状態、及び複数のプロセスが共有リソースにアクセスすることに関連するその他の問題を防止するために、ラッチメカニズムが使用され得る。概して、ラッチメカニズムは、実行セット内の構成要素の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は適合性がない
発生の制約を課さない。しかし、一部の実施形態においては、実行セットにデータ要素を与えるコレクションから受け取られるデータ要素のサブセットの容認される同時性及び必要とされるシリアル化(serialization)を制御するためのその他の入力が与えられる。
一部の実施形態においては、部分的な順序付けによる逐次処理が、データ要素の一部のサブセットに課される可能性がある。
、各アカウント(account)内でのデータの処理に特定の制限を強制したい可能性がある
。例えば、ユーザは、直列実行を強制したい可能性がある。そのような場合、アカウントにまたがって任意の度合いの並列処理が可能にされ得るが、同じアカウントに関する2つのデータ要素が同じ時に(つまり、同時に)処理されてはならない。さらなる制限は、同じアカウントに関する2つのデータ要素が、例えば、キーによって又は受け取られた順序によって定義される順序に従う順序から外れて処理されてはならないような順序通りの処理であってもよい可能性がある。
ある。場合によっては、実行セットは、予め定義された値をシリアル化キーとして与えることによって完全に逐次的に実行されるように強制される可能性がある。
とを示すコンパイラのアノテーションを含む可能性がある。情報は、同じキー値に関連するタスクが逐次的に実行され、異なるキー値に関連するタスクが並列に実行されること(つまり、上述のキーによるシリアル化)を示すコンパイラのアノテーションを含む可能性がある。
・同時性(例えば、上述の並列、直列、キーによる直列)
・異なる実行セットの間の優先度(例えば、ある実行セットのすべてのタスクが別の実行セットのすべてのタスクの後に行われる)
・トランザクショナリティ(transactionality)(例えば、実行セットのタスクがデータベーストランザクションとして処理される)
・リソースのラッチ(例えば、実行セットのタスクが、共有変数などの特定のリソースがロックされるようにして実行され、タスクがアトミックな単位としてリソースにアクセスすることを可能にする)
・順序付け(例えば、データ要素の間の順序付けが維持される)
・タプルのサイズ(例えば、実行セットの各インスタンスによって操作されるデータ要素の数)
一部の例においては、ユーザインターフェースが、構成要素をキャンバスにドラッグし、構成要素のポートをリンクを使用して一緒に接続することによってユーザがデータ処理グラフを作成することを可能にする。一部の例において、ユーザインターフェースは、ユーザがデータ処理グラフを作成するときに上述の(1又は2以上の)割り当てアルゴリズムをデータ処理グラフに繰り返し適用する。例えば、ユーザが作成されているデータ処理グラフに構成要素を追加するとき、(1又は2以上の)割り当てアルゴリズムが、追加された構成要素を有するグラフに適用され得る。そして、(1又は2以上の)割り当てアル
ゴリズムによって発見された結果として得られる実行セットが、例えば、ユーザインターフェース内で構成要素の周りに描かれたボックスとして、又は同じ実行セット内の構成要素を含む領域を与えるために使用される一意の色、濃淡、テクスチャ、又はラベルによって区別され得る構成要素を取り囲む任意の形状の領域として表示される可能性がある。一部の例において、それから、ユーザは、実行セットに構成要素を追加するか又は実行セットから構成要素を削除することによって、(1又は2以上の)割り当てアルゴリズムによって発見された実行セットを修正することができる。一部の例において、(1又は2以上の)割り当てアルゴリズムは、修正された実行セットが規則に則していることを検証する。例えば、さまざまな規則に則した方法のいずれかで潜在的に実行セットに分割される可能性がある構成要素及びさまざまなポートの間のリンクのいくつかの構成が存在し得る。そのような曖昧な場合、割り当てアルゴリズムは、デフォルトで実行セットのうちの1つの割り当てを選択する可能性があるが、ユーザは、実行セットの異なる割り当てを意図していた可能性があり、その場合、ユーザは、(例えば、終了点を挿入して前は構成要素の連鎖の中にあった実行セットを閉じることによって)割り当てを修正することができる。代替的に、割り当てアルゴリズムは、複数の規則に則した割り当てが可能である曖昧な構成を認識し、1つを選択するための入力を与えるようにユーザに促すように構成される可能性がある。
要素がどの実行セットに属するのかを発見することを可能にされる。そうではなく、構成要素が明示的なユーザ定義の実行セットの移動先を有する場合、(1又は2以上の)割り当てアルゴリズムは、構成要素がどの実行セットに含まれるかを選択することを可能にされない。例えば、ユーザが構成要素を所与の実行セットに手動で移動させる場合、(1又は2以上の)割り当てアルゴリズムは、構成要素をユーザ指定の実行セット以外のいかなる実行セットに含めることも可能にされない。つまり、データ処理グラフに対するいかなるユーザの修正も、(1又は2以上の)割り当てアルゴリズムによって覆され得ない。
きる。例えば、ユーザは、有効化/抑制実行セットに含まれることをそれらのユーザが望む1又は2以上の構成要素の周りにボックスを描くことができる。有効化/抑制実行セットは、1又は2以上の構成要素を含み、スカラ入力ポートを有する。上流の構成要素のスカラ出力ポートが有効化/抑制実行セットのスカラ入力ポートに1つのデータ要素を与える場合、有効化/抑制実行セット内の構成要素は、実行されることを可能にされる。上流の構成要素のスカラ出力ポートが有効化/抑制実行セットのスカラ入力ポートにデータ要素を与えない場合、有効化/抑制実行セットに含まれる構成要素は、抑制される。(有効化/抑制実行セットを含む)すべての実行セットは、実行セット全体が実行されるか否かを決定し、制御信号をその他の構成要素又は実行セットに伝搬させるために使用され得る制御入力ポート及び制御出力ポートを含み得る。実行セットが並列化される(つまり、複数のインスタンスを有する)場合、入力制御ポートが、いかなるインスタンスが実行されるよりも前に作動されなければならず、出力制御ポートは、すべてのインスタンスが実行を完了した後に作動される。一部の例において、これらの入力制御ポート及び出力制御ポートは、実行セットの境界にポートの視覚的表現を置くことによって設けられる。その他の例において、これらの入力制御ポート及び出力制御ポートは、実行セットの前のさらなる構成要素にこれらの入力制御ポート及び出力制御ポートを置くことによって設けられる。例えば、このさらなる「forall構成要素」は、上流のコレクション出力データポートと入口点インジケータとの間に、又は入口点インジケータの代わりに(つまり、上流のコレクション出力データポートと駆動入力スカラデータポートとの間に)(例えば、ユーザインターフェースによって自動的に又はユーザによって手動で)挿入される可能性がある。
構成要素が実行を終えた後に(いかなる出力データ要素も与えずに)終わる可能性がある。一部の例において、データ処理グラフは、各ラッチ操作が対応するラッチ解除操作と組み合わされない場合、規則に違反すると考えられる。代替的に、ラッチ解除動作は、何も明示的に規定されない場合、推測され、推測されたラッチ解除操作がラッチ操作とは異なる実行セット内になければならない場合、ただ規則に違反するものとして示される可能性がある。一部の例において、データ処理グラフは、ラッチ操作及び対応するラッチ解除操作がどちらかでも同じ実行セット内に存在しない場合、規則に違反すると考えられる。
上で紹介されたように、少なくとも一部の実施形態において、割り当てアルゴリズムの実行によって発見される実行セットは、例えば、視覚的表示内で構成要素を包含する形作られた領域を使用してユーザに対して視覚的に表示される。セットの視覚的表現は、概して、計算の視覚的表現内の各セットの空間的範囲の外形又はその他の指示を含む。概して、(例えば、ユーザインターフェース上の)特定の視覚的表現は、複数のセットを含む可能性があり、セットは、別の互いに入れ子にされる可能性がある。外形又は空間的範囲の性質は、構成要素がそれらの構成要素の対応するセットのメンバーであることをよりはっきりさせるか又はより分かりにくくすることによって視覚的表現の有用性に影響を与える可能性があることが分かった。計算の構文的及び/又は意味的解釈は実行セットへの構成要素の割り当てに依存するので、メンバーであることのはっきりした視覚的表現は、ユーザに対して計算の解釈のはっきりした表現をやはり与える。解釈を視覚的にはっきりと示すことによって、ユーザは、プログラムの仕様を使用する対応する意図しないランタイムの計算を生じる計算の意図しない解釈をより容易に検出することができる。
その他の形状が使用され得る(例えば、円、楕円、ディスクの表現などのアイコンなど)。下の検討において、用語「セット」及び「グループ」は、概して、交換可能なように使用され、「構成要素」及び「ブロック」は、概して、交換可能なように使用される−したがって、処理は、ブロックの入れ子にされたグループに関連する空間的範囲を形成するものとして表現され得る。また、各セットは、ラベルが部分的に順序付けられるようなラベルに関連付けられ、部分的な順序付けは、セットの入れ子を表す。上で紹介されたように、ラベルは、「/a/b/c」の形態(つまり、この場合、「/」によって開始され/ルートが示され、分けられる記号のシーケンス)をとり得、第1のラベルは、その第1のラベルが第2のラベルの接頭辞を形成する場合、第2のラベルを包含する(すなわち、第2のラベルよりも大きい)。したがって、ラベル「/a/b」を有するセットは、ラベル「/a/b/c」を有するセットを包含し、ラベル「/a/d」を有するセットとはバラバラである(つまり、ラベル「/a/d」を有するセットに対して順序付けられない)。
・外形が、対応するグループ内にないブロックを包含してはならない。
・外形は、例えば、最短距離でブロックから及び互いに分けられなければならない。
この実施形態において、空間領域を形成するための出力プロセスは、以下を含むいくつかの目的を有する。
・ブロック、及びどのブロックがどのその他のブロックの中に入れ子にされるかが、ユーザの自然な知覚的形状認識を用いて直ちに明らかになり、直ちに認識可能でなければならない。
・ユーザが、ブロックのラベル付け又は相互接続だけからグループ分けを推測する必要があるべきでない。
・外形の尖った角及び/又はたくさんの細々したことがグループ分けを容易に認識するユーザの能力を低下させるとの前提の下で、外形が滑らかに湾曲させられるべきである。
・外形の内部の多くの本質的でない空間が外形が提供している情報を損ない、曖昧にするとの前提の下で、外形がそのような余分な空間を持つべきでない。
1.プログラムの仕様の重なり合わないブロックの位置(及び必要に応じて形状)並びにグループラベルを受け入れる。
2.適正にブロックを包含し、外形を分ける要件を適正に満たす領域の初期外形を計算する。
3.目的に応じて外形を改善する。
2.)は、以下のいくつかのステップで実行される。
a.フレームをモザイク状にする。
b.モザイク式の配列のタイルの辺の外形の切片(intercept)を特定する。
c.切片を接続して初期外形を形成する。
a.切片を反復的に調整する。
b.外形の「角」を丸める。
を形成するその他の手法が同様の全体的な効果を持って使用され得ることを理解されたい。
の数は、接尾辞の長さに依存する。この例においては、2つの中断点、すなわち、「/a」の領域に対する「/a/b」の領域の境界のための中断点と、「/a」の領域と「/a/c」の領域との境界のための中断点とが必要とされる。したがって、辺上に置かれるべき点の数は、2つのラベルの接尾辞の長さの合計である。
に沿った地点に導入され、それによって、外形にその記号を通過させる可能性がある。
実行するためにデータ処理グラフを準備するプロセスにおいて、コンパイラ/インタープリタ120は、制御グラフ生成手順において制御グラフをさらに生じさせる。一部の実装形態において、制御グラフを生じさせることは、個々の構成要素に対応するタスクを実行するための実行可能コードと、それらのタスクの間のデータ及び制御のフローを決定する構成要素の間のさまざまなリンクに対応するコードとを生じさせることを含む。これは、コンパイラ/インタープリタ120によって発見された実行セットの階層の間のデータ及び制御の転送を含む。
合わせるかの例を示す。この例において、第1の構成要素の対1202は、それぞれのコレクションデータポート1212、1214によって接続された第1の構成要素1208及び第2の構成要素1210を含む。第2の構成要素の対1204は、それぞれのスカラデータポート1220、1222によって接続された第3の構成要素1216及び第4の構成要素1218を含む。
、ある状態から別の状態に遷移し、その構成要素の出力シリアルポートを遷移させ、それが、下流の構成要素のリンクされたシリアル入力ポートを遷移させ、それが、それらの下流の構成要素を遷移させ、以下同様である。この振る舞いを実現するための特定の種類の状態機械の一例が、構成要素及びそれらの構成要素のシリアルポートに関する状態遷移図を参照して下でより詳細に説明される。
制状態1316になる。
再び図1を参照すると、データ処理グラフの構成要素のインスタンスが、データ処理グラフを実行する文脈でタスクとして生成され(spawned)、概して、コンピューティング
プラットフォーム150の複数のコンピューティングノード152において実行される。以下でより詳細に検討されるように、コントローラ140は、例えば、計算負荷の割り振り、通信又は入力/出力のオーバーヘッドの削減、及びメモリリソースの使用に関連するシステムの性能目標を達成するために、それらのタスクの実行のスケジューリング及び位置(locus)の監視制御の態様を提供する。
仕様110内の構成要素に関してプログラマによって規定された作業手順をそれらのプロシージャの中に含むか又はそのような作業手順を呼び出す可能性がある。
にある可能性がある。例えば、特定の実装形態において、スケジューラは、タスクがプロセッサ利用のクォンタムを超えたとき、リソースを待っているときなどにそのタスクをSuspended状態にする可能性がある。一部の実装形態において、タスクの実行は、先取りさ
れ(preempted)ず、タスクが、制御を放棄しなければならない。3つのSuspended下位状態(substate)、すなわち、Runnable、Blocked、及びDoneが存在する。タスクは、例えば
、そのタスクがそのタスクの計算を完了する前に制御を放棄した場合にRunnableである。タスクは、例えば、親タスクがそのタスクの戻り値を回収する前にそのタスクがそのタスクの処理を完了したときにDoneである。タスクは、そのタスクがそのタスクの外部のイベント、例えば、別のタスクの完了(例えば、そのタスクが「wait for」プリミティブを使用したことが原因)、又はデータレコードが利用可能になること(例えば、in.read( )又はout.write( )関数の1つの実行をブロックする)を待っている場合、Blockedである。
ピューティングノードは、複数の別々のプロセッサを有するサーバコンピュータである可能性があり、又はサーバコンピュータは、複数のプロセッサコアを有する単一のプロセッサを有する可能性があり、又は複数のコアを有する複数のプロセッサの組合せが存在する可能性がある。いずれの場合も、複数の処理エンジンを実行することが、コンピューティングノード152上で単一の処理エンジンのみを使用するよりも効率的である可能性がある。
バッファ1470は、順序付けられていない無制限のバッファ、バッファ1、バッファ2、及びバッファ3を含む。この種の構成要素間リンクを生成し、上流のポートがコレクションポートである任意のリンクを含む(リンクバッファ1470を含む)これらのリンクのための関連する計算リソースを管理するためにさまざまな手法が使用される。一部の例において、リンクバッファ1470は、コレクションの移動元を表す出力コレクションポートのためのバッファと、コレクションの移動先を表す入力コレクションポートのための別個のバッファとを含む。これらのバッファは、コレクションに対する処理が始まる直前にランタイムで割り振られ、コレクションに対する処理が終了した直後に割り振りを解除される(つまり、バッファのために使用されるメモリを解放する)可能性がある。この例において、これらのリンクバッファ1470は、タスクのランナが実行されている処理エンジン154のメモリ内で割り振られる。概して、バッファが生成されるメモリは、半導体ランダムアクセスメモリ(RAM,random access memory)内にあるが、一部の実装形態においては、ディスクなどのその他のストレージデバイスが、バッファデータの少なくとも一部を記憶するために使用される可能性がある。その他の手法において、バッファはランナ自体のローカルにある可能性があることに留意されたい。実際は、処理エンジン154がオペレーティングシステムプロセスとして実装される場合、バッファは、そのプロセスのアドレス空間内のメモリ領域として生成される。したがって、バッファに対する直接ハードウェアアドレスに基づくアクセスは、そのプロセス内で実行される命令に制限される。そのような手法においては、複数のランナがバッファを読むか又はバッファに書くことができる場合、バッファに対する少なくとも何らかの同期及びアクセス制御、例えば、ロック又はセマフォを使用することが必要とされる可能性がある。各ランナがオペレーティングシステムプロセス内で単一のスレッドとして実装される手法において、バッファは、特定のランナと関連付けられる可能性があり、すべてのアクセスは、そのランナに制限される可能性があり、それによって、複数のスレッドからの潜在的な競合を防止する。下の検討において、我々は、バッファが処理エンジン内の任意のランナからアクセス可能であり、好適なアクセス制御がそのような共用アクセスを許容するように実装されると仮定する。
プリミティブを含む。概して、少なくともデフォルトで、1つの子タスク又は複数の子タスクを生成することは、それらのタスクを同じランナ内で最初に親として形成させる。例えば、spawn Work_Read_External_Dataタスクが、同じランナ上で生成される。タスクが
外部データにアクセスしている限り、タスクは、その外部データへのI/Oインターフェース1464を利用する可能性がある。例えば、そのインターフェースは、外部データベースへのオープン接続、ネットワークデータ接続のエンドポイントなどからなる可能性がある。そのようなI/Oインターフェースは、特定のランナに拘束される可能性があり、したがって、そのインターフェースを使用するタスクは、ランナ間のタスクの潜在的なマイグレーションの文脈で下でさらに検討されるように、そのランナからのみインターフェースにアクセスするように求められる可能性がある。この例において、我々は、無理なく計測され、例えば、バッファ1を処理エンジンの能力を超えて大きくなるようにすることによってシステムを「手に負えない状態に追い込む」ことのない方法でタスクがバッファ1を満たすと仮定する。例えば、リソースの混雑又は消耗を避けるための制御の態様の手法も、下で検討される。
性がある。上で検討されたように、デフォルトで、これらのタスクは、やはり同じランナ1450上で生成され、ここでもその他の制御なしに、データがバッファ1から利用可能になるのと同じ速さで生成される。Work_B及びWork_Write_External_Dataに関するタスクが、同じランナ上で同様に生成される。
への関連する変数のマッピングとを可能にする。キーが指定されるとき、生成されるタスクは、そのタスクの実行の継続時間の間、キーに排他的にアクセスする。実行が始まる前に、値が、ストレージからタスクの局所的なコンテキストに渡され、実行が完了した後、局所的なコンテキストの値が、大域的なストレージに戻される。spawnプリミティブが別
の実行されているタスクによって使用中であるキーを指定する場合、これは、新しく生成されるタスクは、そのタスクがキーに排他的にアクセスすることができるまでブロックされる。一部の実装形態においては、各コンピューティングノードが、特定のキーのホームノードであると決定される可能性があり、タスクが生成されることを要求されるとき、その要求は、(キー,値)ペアがあるコンピューティングノードによって処理され、タスクの実行は、最初、そのノードにおいて始まる。代替的な実施形態において、そのような大域的な共有された(キー,値)ペアへの同様の排他的アクセスを行うその他の手法は、例
えば、排他的アクセスの要求を伝達し、その後にキーに関する更新された値によって排他的アクセスの解放を伝達することによって、ストレージと同じ場所においてタスクを開始することを必ずしも含まない。タスクは、デフォルトで、新しい(キー,値)ペアが生成されるときにタスクが実行されているノード上に記憶される新しい(キー,値)ペアを生成する可能性がある。
処理を提供する可能性があり、カーソルの適切な分割は、行が記憶されるノード上での実行を可能にする。データテーブルの修正がタスクによって明示的にコミットされるまでそれらの修正がタスクの外に見えないように維持されるようにタスクがトランザクションを実施することによって、データテーブルがやはりアクセスされ得る。一部の例において、そのようなトランザクションのサポートは、テーブルの1又は2以上の行をロックすることによって実装される可能性がある一方、その他の例においては、行の複数のバージョンを含むより複雑な手法が、ロックだけを使用して提供され得るよりも高い潜在的な同時性を提供するために実装される可能性がある。
上述の手法は、例えば、好適なソフトウェア命令を実行するプログラミング可能なコンピューティングシステムを用いて実装される可能性があり、又はフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)などの好適なハードウェ
アで、若しくは何らかの混成の形態で実装される可能性がある。例えば、プログラミングされる手法において、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピューティングシステム上で実行される1又は2以上のコンピュータプログラムのプロシージャを含み得る。ソフトウェアは、例えば、データ処理グラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データ処理グラフの構成要素)は、データリポジトリに記憶されたデータモデルに準拠
するデータ構造又はその他の編成されたデータとして実装され得る。
可能性がある。処理は、ソフトウェアによって規定された計算の異なる部分が異なるコンピューティング要素によって実行される分散された方法で実装される可能性がある。それぞれのそのようなコンピュータプログラムは、本明細書において説明された処理を実行するためにストレージデバイスの媒体がコンピュータによって読み取られるときにコンピュータを構成し、動作させるために、多目的又は専用のプログラミング可能なコンピュータによってアクセスされ得るストレージデバイスのコンピュータ可読ストレージ媒体(例えば、ソリッドステートメモリ若しくは媒体、又は磁気式若しくは光学式媒体)に記憶されるか又はダウンロードされることが好ましい。本発明のシステムは、コンピュータプログラムで構成された有形の非一時的媒体として実装されると考えられる可能性もあり、そのように構成された媒体は、本明細書において説明された処理ステップのうちの1又は2以上を実行するために特定の予め定義された方法でコンピュータを動作させる。
Claims (25)
- グラフに基づく計算のための方法であって、
複数のグラフの要素を含む、前記グラフに基づく計算に関する仕様情報を受け入れ、前記仕様情報の視覚的表現をユーザに提供するステップと、
第1の計算システム上で、前記受け入れられた仕様情報に基づいて前記グラフの要素の1又は2以上のグループの視覚的表現を決定するステップであって、前記視覚的表現が、前記1又は2以上のグループのうちの少なくとも第1のグループのための空間領域の空間的範囲の指示を含み、前記空間領域の前記空間的範囲が、前記空間的範囲が前記第1のグループ内の1又は2以上のグラフの要素を包含するという要件、及び前記空間的範囲が前記第1のグループ外のいかなるグラフの要素も包含しないという要件に少なくとも部分的に基づいて決定される、ステップと、
前記仕様情報の前記視覚的表現に関連して前記1又は2以上のグループのための空間領域の視覚的表現を前記ユーザに提供するステップとを含む、前記方法。 - 1又は2以上のグループの視覚的表現を決定するステップが、受け入れられた仕様情報を処理して前記1又は2以上のグループを形成することを含む請求項1に記載の方法。
- 第2の計算システム上のグラフに基づく計算の実行を、形成された1又は2以上のグループと合致させるステップをさらに含む請求項2に記載の方法。
- グラフに基づく計算の実行を形成されたグループと合致させるステップが、仕様情報及び前記形成されたグループから前記グラフに基づく計算の実行可能な表現を形成することを含む請求項3に記載の方法。
- 第2の計算システム上のグラフに基づく計算の実行を制御するために、形成された1又は2以上のグループに従ってグラフに基づく計算のランタイム仕様を形成するステップをさらに含む請求項2に記載の方法。
- 1又は2以上のグループがグラフの要素の入れ子にされたグループを含んでいた請求項1〜5のいずれかに記載の方法。
- グラフに基づく計算に関する仕様情報が、複数のグラフの要素の仕様を含み、それぞれのグラフの要素の前記仕様が、前記グラフに基づく計算の視覚的表現内の前記グラフの要素の視覚的表現の位置を含む請求項1〜5のいずれかに記載の方法。
- グラフの要素の1又は2以上のグループの視覚的表現を決定するステップが、
前記グループのための空間領域を取り囲む外形のセット候補の第1の特徴付けを形成することと、
前記第1の特徴付けから前記グループのための前記空間領域を取り囲む外形の調整されたセットの第2の特徴付けを決定することとを含む請求項1に記載の方法。 - 第1の特徴付けを形成することが、グラフの要素の周囲の視覚的表現の少なくとも一部のモザイク式の配列を形成することを含む請求項8に記載の方法。
- 第1の特徴付けを形成することが、モザイク式の配列のタイル及び外形のセットの境界の交わりを特定することを含む請求項9に記載の方法。
- 第2の特徴付けを決定することが、交わりを調整することを含む請求項10に記載の方法。
- 交わりを調整することが、外形の間又は外形とグラフの要素との間の分離の要件に従って、調整された交わりを制約することを含む請求項11に記載の方法。
- 第2の特徴付けを決定することが、交わりをつなぎ合わせることによって形成された外形を平滑化することをさらに含む請求項11に記載の方法。
- グラフの要素が、部分的に順序付けられたセットを形成し、第1の特徴付けを形成することが、前記部分的な順序付けに従ってグラフの要素の対を分離するいくつかの外形を決定することを含む請求項8に記載の方法。
- 第1の特徴付けを形成することが、グラフの要素を分離するいくつかの外形に従って、前記グラフの要素の視覚的表現と外形のセットとの間の線の交わりを決定することを含む請求項14に記載の方法。
- 外形の最終的なセットの第2の特徴付けを決定することが、外形の前記最終的なセットを形成するために外形のセット候補の各々の長さを短くすることを含む請求項8に記載の方法。
- 長さを短くすることが、外形の間又は外形とグラフの要素の視覚的表現との間の分離の制限によって制約される請求項16に記載の方法。
- グラフの要素のグループのための少なくとも何らかの空間領域が、途切れた空間領域を含む請求項8に記載の方法。
- 第1のグループ内の1又は2以上のグラフの要素が、リンクによって相互に接続されたノードを含むグラフ内のノードを含む請求項1に記載の方法。
- 第1のグループ内のグラフの要素のうちの1又は2以上の各々が、グラフに基づく計算内の計算ステップを表す請求項19に記載の方法。
- 各グループのための空間領域の空間的範囲が、前記空間領域に対応する前記グループ内のグラフの要素の少なくとも一部の視覚的表現を含む請求項1に記載の方法。
- 第1のグループのための空間領域の空間的範囲が、前記第1のグループのための前記空間領域を取り囲む外形によって規定される請求項1に記載の方法。
- 外形が、1又は2以上のグラフの要素の視覚的表現を囲むように形状を決められた第1の湾曲した部分を含み、第1のグループ外の少なくとも1つのグラフの要素の視覚的表現を避けるように形状を決められた第2の湾曲した部分を含む非直線的な形状を有する請求項22に記載の方法。
- グラフに基づく計算のための、コンピュータ可読媒体に非一時的形態で記憶されたソフトウェアであって、計算システムに、
複数のグラフの要素を含む、前記グラフに基づく計算に関する仕様情報を受け入れ、前記仕様情報の視覚的表現をユーザに提供することと、
前記受け入れられた仕様情報に基づいて前記グラフの要素の1又は2以上のグループの視覚的表現を決定することであって、前記視覚的表現が、前記1又は2以上のグループのうちの少なくとも第1のグループのための空間領域の空間的範囲の指示を含み、前記空間領域の前記空間的範囲が、前記空間的範囲が前記第1のグループ内の1又は2以上のグラフの要素を包含するという要件、及び前記空間的範囲が前記第1のグループ外のいかなるグラフの要素も包含しないという要件に少なくとも部分的に基づいて決定される、決定することと、
前記仕様情報の前記視覚的表現に関連して前記1又は2以上のグループのための空間領域の視覚的表現を前記ユーザに提供することとを行わせるための命令を含む、前記ソフトウェア。 - グラフに基づく計算のための計算システムであって、
前記グラフに基づく計算に関する仕様情報を受け入れるように構成された入力デバイス又はポートであって、前記仕様情報が、複数のグラフの要素を含む、入力デバイス又はポートと、
前記仕様情報の視覚的表現をユーザに提供するように構成された出力デバイス又はポートと、
前記受け入れられた仕様情報に基づいて前記グラフの要素の1又は2以上のグループの視覚的表現を決定するように構成された少なくとも1つのプロセッサであって、前記視覚的表現が、前記1又は2以上のグループのうちの少なくとも第1のグループのための空間領域の空間的範囲の指示を含み、前記空間領域の前記空間的範囲が、前記空間的範囲が前記第1のグループ内の1又は2以上のグラフの要素を包含するという要件、及び前記空間的範囲が前記第1のグループ外のいかなるグラフの要素も包含しないという要件に少なくとも部分的に基づいて決定される、少なくとも1つのプロセッサとを含み、
前記1又は2以上のグループのための空間領域の視覚的表現が、前記仕様情報の前記視覚的表現に関連して前記ユーザに提供される、前記計算システム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462044708P | 2014-09-02 | 2014-09-02 | |
US62/044,708 | 2014-09-02 | ||
US201562164175P | 2015-05-20 | 2015-05-20 | |
US62/164,175 | 2015-05-20 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017511684A Division JP6479966B2 (ja) | 2014-09-02 | 2015-09-02 | ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017168119A JP2017168119A (ja) | 2017-09-21 |
JP6479885B2 true JP6479885B2 (ja) | 2019-03-06 |
Family
ID=54197047
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017511684A Active JP6479966B2 (ja) | 2014-09-02 | 2015-09-02 | ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定 |
JP2017089982A Active JP6479885B2 (ja) | 2014-09-02 | 2017-04-28 | ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017511684A Active JP6479966B2 (ja) | 2014-09-02 | 2015-09-02 | ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定 |
Country Status (11)
Country | Link |
---|---|
US (2) | US10175951B2 (ja) |
EP (1) | EP3189418B1 (ja) |
JP (2) | JP6479966B2 (ja) |
KR (2) | KR102375347B1 (ja) |
CN (3) | CN112363712B (ja) |
AU (3) | AU2015312010B2 (ja) |
CA (2) | CA3003822C (ja) |
DE (1) | DE112015003587T5 (ja) |
HK (1) | HK1243799A1 (ja) |
SG (2) | SG11201701662XA (ja) |
WO (1) | WO2016036824A1 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3189418B1 (en) * | 2014-09-02 | 2022-02-23 | AB Initio Technology LLC | Visually specifying subsets of components in graph-based programs through user interactions |
SG11201701584SA (en) | 2014-09-02 | 2017-03-30 | Ab Initio Technology Llc | Compiling graph-based program specifications |
US10855551B2 (en) * | 2014-12-31 | 2020-12-01 | Dell Products L.P. | Multi-port selection and configuration |
US10579753B2 (en) | 2016-05-24 | 2020-03-03 | Ab Initio Technology Llc | Executable logic for processing keyed data in networks |
US11853690B1 (en) * | 2016-05-31 | 2023-12-26 | The Mathworks, Inc. | Systems and methods for highlighting graphical models |
US11244090B2 (en) * | 2016-06-01 | 2022-02-08 | The Mathworks, Inc. | Systems and methods for extracting adjustable attributes of model components |
US10025566B1 (en) * | 2016-10-07 | 2018-07-17 | The Mathworks, Inc. | Scheduling technique to transform dataflow graph into efficient schedule |
US10599482B2 (en) * | 2017-08-24 | 2020-03-24 | Google Llc | Method for intra-subgraph optimization in tuple graph programs |
US10860618B2 (en) | 2017-09-25 | 2020-12-08 | Splunk Inc. | Low-latency streaming analytics |
CN107729118A (zh) * | 2017-09-25 | 2018-02-23 | 复旦大学 | 面向众核处理器的修改Java虚拟机的方法 |
US10467003B1 (en) * | 2017-10-09 | 2019-11-05 | Amazon Technologies, Inc. | Divided execution and storage of scripts |
CN108196515A (zh) * | 2017-12-21 | 2018-06-22 | 中国电子信息产业集团有限公司第六研究所 | 跨平台实时数据处理方法和装置 |
CN108304238A (zh) * | 2017-12-29 | 2018-07-20 | 浙江警察学院 | 高速公路养护排障手持终端的Qt界面实现方法及系统 |
US10997180B2 (en) | 2018-01-31 | 2021-05-04 | Splunk Inc. | Dynamic query processor for streaming and batch queries |
US10528343B2 (en) * | 2018-02-06 | 2020-01-07 | Smartshift Technologies, Inc. | Systems and methods for code analysis heat map interfaces |
US10990364B2 (en) | 2018-06-06 | 2021-04-27 | Ab Initio Technology Llc | Updating executable graphs |
EP3847547A4 (en) * | 2018-09-04 | 2022-10-12 | AVEVA Software, LLC | FLOW-BASED COMPOSITION, AND MONITORING SERVER SYSTEM AND METHOD |
CN109445789B (zh) * | 2018-10-24 | 2021-11-09 | 上海金大师网络科技有限公司 | 带独立渲染层的复合控件生成方法、系统及介质 |
US10936585B1 (en) | 2018-10-31 | 2021-03-02 | Splunk Inc. | Unified data processing across streaming and indexed data sets |
CN109213005A (zh) * | 2018-11-21 | 2019-01-15 | 成都四方伟业软件股份有限公司 | 一种仿真控制方法及装置 |
US11126411B2 (en) * | 2018-12-13 | 2021-09-21 | Sap Se | Dashboard user interface for data driven applications |
US11340877B2 (en) * | 2018-12-19 | 2022-05-24 | Network Native, Inc. | System and method for holistic application development and deployment in a distributed heterogeneous computing environment |
US11099790B2 (en) * | 2019-01-10 | 2021-08-24 | Samsung Electronics Co., Ltd. | Parallel key value based multithread machine learning leveraging KV-SSDS |
CN109947546B (zh) * | 2019-03-13 | 2021-08-20 | 北京乐我无限科技有限责任公司 | 一种任务执行方法、装置、电子设备及存储介质 |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US11029927B2 (en) * | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US11238048B1 (en) | 2019-07-16 | 2022-02-01 | Splunk Inc. | Guided creation interface for streaming data processing pipelines |
US11526791B2 (en) | 2019-11-11 | 2022-12-13 | International Business Machines Corporation | Methods and systems for diverse instance generation in artificial intelligence planning |
US11144313B2 (en) | 2020-02-14 | 2021-10-12 | International Business Machines Corporation | Merging changes from upstream code to a branch |
US11614923B2 (en) * | 2020-04-30 | 2023-03-28 | Splunk Inc. | Dual textual/graphical programming interfaces for streaming data processing pipelines |
US11366648B2 (en) * | 2020-05-28 | 2022-06-21 | Red Hat, Inc. | Compiling monoglot function compositions into a single entity |
US11276470B2 (en) * | 2020-07-17 | 2022-03-15 | Micron Technology, Inc. | Bitline driver isolation from page buffer circuitry in memory device |
CN111930365B (zh) * | 2020-09-18 | 2021-02-26 | 季华实验室 | 基于Qt的应用程序快速开发框架、开发方法及运行方法 |
US11636116B2 (en) | 2021-01-29 | 2023-04-25 | Splunk Inc. | User interface for customizing data streams |
CN113010168B (zh) * | 2021-02-26 | 2022-07-26 | 中国科学院软件研究所 | 一种基于场景树的用户界面生成方法 |
US11687487B1 (en) | 2021-03-11 | 2023-06-27 | Splunk Inc. | Text files updates to an active processing pipeline |
US11663219B1 (en) | 2021-04-23 | 2023-05-30 | Splunk Inc. | Determining a set of parameter values for a processing pipeline |
CN113254025B (zh) * | 2021-06-28 | 2021-09-28 | 中南大学湘雅医院 | 基于原语状态机的关键字特征集合编译方法、装置及设备 |
US11949761B2 (en) * | 2021-07-29 | 2024-04-02 | Oracle International Corporation | Techniques for distributed interface component generation |
US11989592B1 (en) | 2021-07-30 | 2024-05-21 | Splunk Inc. | Workload coordinator for providing state credentials to processing tasks of a data processing pipeline |
Family Cites Families (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450535A (en) * | 1993-09-24 | 1995-09-12 | At&T Corp. | Graphs employing clusters |
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 |
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 |
JP2001154998A (ja) * | 1999-11-25 | 2001-06-08 | Hitachi Ltd | 並列化解析指示方法と並列化汎用連成解析装置 |
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 |
WO2005001687A2 (en) | 2003-06-25 | 2005-01-06 | Ab Initio Software Corporation | Computer-aided parallelizing of computation graphs |
US7849075B2 (en) * | 2003-09-15 | 2010-12-07 | Ab Initio Technology Llc | Joint field profiling |
US7487076B2 (en) * | 2003-10-31 | 2009-02-03 | The Mathworks, Inc. | Simplified data signal support for diagramming environment languages |
US7840949B2 (en) * | 2003-11-03 | 2010-11-23 | Ramal Acquisition Corp. | System and method for data transformation using dataflow graphs |
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 | キヤノン株式会社 | レイアウト制御方法、レイアウト制御装置及びレイアウト制御プログラム |
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 |
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 |
US8620629B1 (en) * | 2004-09-20 | 2013-12-31 | The Mathworks, Inc. | Identification and simulation of multiple subgraphs in multi-domain graphical modeling environment |
US7974825B2 (en) * | 2004-09-20 | 2011-07-05 | The Mathworks, Inc. | Generation of code from a graphical model |
US7509244B1 (en) * | 2004-12-22 | 2009-03-24 | The Mathworks, Inc. | Distributed model compilation |
US7551567B2 (en) * | 2005-01-05 | 2009-06-23 | Cisco Technology, Inc. | Interpreting an application message at a network element using sampling and heuristics |
US7703027B2 (en) | 2005-01-13 | 2010-04-20 | National Instruments Corporation | Merging graphical programs |
US8510329B2 (en) * | 2005-05-25 | 2013-08-13 | Experian Marketing Solutions, Inc. | Distributed and interactive database architecture for parallel and asynchronous data processing of complex data and for real-time query processing |
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 |
US20070240069A1 (en) * | 2006-04-11 | 2007-10-11 | Invensys Systems, Inc. | Appearance objects for configuring and graphically displaying programmed/configured process control |
US20070240080A1 (en) * | 2006-04-11 | 2007-10-11 | Invensys Systems, Inc. | Strategy editor for process control supporting drag and drop connections to declarations |
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 |
US9021417B2 (en) * | 2007-07-06 | 2015-04-28 | International Business Machines Corporation | Generating a subset model from a model |
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 |
US8667381B1 (en) * | 2008-03-21 | 2014-03-04 | The Mathworks, Inc. | Block diagram change history |
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 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
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 |
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 |
US20110055744A1 (en) | 2009-08-28 | 2011-03-03 | Ryan Christopher N | Visual Linking of Elements to Model Attributes |
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 | アビニシオ テクノロジー エルエルシー | ユーザ・インターフェース要素の指定 |
JP5454284B2 (ja) | 2010-03-26 | 2014-03-26 | セイコーエプソン株式会社 | インクジェット記録方法 |
US8555265B2 (en) * | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
CN103069383B (zh) * | 2010-06-02 | 2016-09-28 | 艾伦智能科技公司 | 具有图形用户界面的装置及开发多媒体计算机应用程序的方法 |
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 |
US9563411B2 (en) * | 2011-01-07 | 2017-02-07 | Ab Initio Technology Llc | Flow analysis instrumentation |
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 | 清华大学 | 一种获取体系结构描述语言的方法和一种建模工具 |
US8732359B2 (en) * | 2011-12-07 | 2014-05-20 | The Mathworks, Inc. | Data sharing in high-fidelity simulation and real-time multi-core execution |
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 |
US9304746B2 (en) * | 2012-06-07 | 2016-04-05 | Carmel-Haifa University Economic Corporation Ltd. | Creating a user model using component based approach |
US20130339977A1 (en) | 2012-06-19 | 2013-12-19 | Jack B. Dennis | Managing task load in a multiprocessing environment |
US9182957B2 (en) * | 2012-07-10 | 2015-11-10 | Loring Craymer | Method and system for automated improvement of parallelism in program compilation |
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 |
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 |
EP3189418B1 (en) | 2014-09-02 | 2022-02-23 | AB Initio Technology LLC | Visually specifying subsets of components in graph-based programs through user interactions |
SG11201701584SA (en) | 2014-09-02 | 2017-03-30 | Ab Initio Technology Llc | Compiling graph-based program specifications |
CA2959169C (en) * | 2014-09-02 | 2021-03-09 | Ab Initio Technology Llc | Executing graph-based program specifications |
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 EP EP15770681.3A patent/EP3189418B1/en active Active
- 2015-09-02 US US14/843,084 patent/US10175951B2/en active Active
- 2015-09-02 CA CA3003822A patent/CA3003822C/en active Active
- 2015-09-02 CA CA2959528A patent/CA2959528C/en active Active
- 2015-09-02 CN CN202011280454.0A patent/CN112363712B/zh active Active
- 2015-09-02 WO PCT/US2015/048094 patent/WO2016036824A1/en active Application Filing
- 2015-09-02 KR KR1020177008851A patent/KR102375347B1/ko active IP Right Grant
- 2015-09-02 SG SG11201701662XA patent/SG11201701662XA/en unknown
- 2015-09-02 CN CN201710224536.5A patent/CN107145344B/zh active Active
- 2015-09-02 KR KR1020177009104A patent/KR102361154B1/ko active IP Right Grant
- 2015-09-02 CN CN201580047149.8A patent/CN106687921B/zh active Active
- 2015-09-02 JP JP2017511684A patent/JP6479966B2/ja active Active
- 2015-09-02 SG SG11201701667WA patent/SG11201701667WA/en unknown
- 2015-09-02 AU AU2015312010A patent/AU2015312010B2/en active Active
- 2015-09-02 DE DE112015003587.7T patent/DE112015003587T5/de active Pending
-
2017
- 2017-03-27 AU AU2017202028A patent/AU2017202028A1/en not_active Abandoned
- 2017-04-28 JP JP2017089982A patent/JP6479885B2/ja active Active
-
2018
- 2018-03-08 HK HK18103275.0A patent/HK1243799A1/zh unknown
- 2018-12-10 US US16/214,240 patent/US10896025B2/en active Active
-
2019
- 2019-06-21 AU AU2019204395A patent/AU2019204395B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6479885B2 (ja) | ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定 | |
JP6908682B2 (ja) | グラフに基づくプログラムの仕様の実行 | |
JP6467497B2 (ja) | 特定のデータポートの接続の特定に基づいてグラフの構成要素の自動化されたクラスタリングによるグラフに基づくプログラムの仕様のコンパイル | |
US11144283B2 (en) | Visual program specification and compilation of graph-based computation | |
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: 20181225 |
|
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: 20190110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190206 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6479885 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 |