JP5271494B2 - コンピュータ支援による計算グラフの並列化 - Google Patents
コンピュータ支援による計算グラフの並列化 Download PDFInfo
- Publication number
- JP5271494B2 JP5271494B2 JP2006517764A JP2006517764A JP5271494B2 JP 5271494 B2 JP5271494 B2 JP 5271494B2 JP 2006517764 A JP2006517764 A JP 2006517764A JP 2006517764 A JP2006517764 A JP 2006517764A JP 5271494 B2 JP5271494 B2 JP 5271494B2
- Authority
- JP
- Japan
- Prior art keywords
- component
- input
- data
- components
- graph
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 63
- 238000012545 processing Methods 0.000 claims description 49
- 238000004364 calculation method Methods 0.000 claims description 41
- 238000011144 upstream manufacturing Methods 0.000 claims description 35
- 238000013507 mapping Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 8
- 241001522296 Erithacus rubecula Species 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 9
- 238000012512 characterization method Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 125000002015 acyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000007630 basic procedure Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Image Generation (AREA)
- Devices For Executing Special Programs (AREA)
Description
本出願は、2003年6月25日出願の米国特許仮出願第60/482,391号の優先権を主張し、当該仮出願は引用により本明細書に組み込む。
本発明は、データの並列処理に関し、より詳細には、コンピュータ支援による並列計算グラフの仕様に関する。
一態様では、本発明は、一般に、並列計算グラフを自動的に規定するための方法を特徴とする。第1計算グラフの仕様を受け入れる。グラフは、リンク要素により接続されるデータ処理要素を有し、各リンク要素は、上流データ処理要素および下流データ処理要素に関連付けられる。1つ以上のリンク要素のそれぞれに対して、リンク要素のデータ処理特性が、リンク要素と関連する上流および/または下流データ処理要素の特性に従って決定される。
図1A〜図1Cを参照すると、図1Aに示す直列計算グラフ100は、簡単な計算グラフの一例であり、状況によっては、図1B〜図1Cに示す並列計算グラフ101として実施できる。例えば、入力ファイル110からの各ワーク要素を他の全てのワーク要素と独立して処理できる場合、並列計算グラフ101は、直列計算グラフ100と同一の計算を実行することになる。注意すべきは、同一の計算を実行するとはいえ、直列グラフ100の場合に出力ファイル140が受け取るワーク要素の順序は、並列グラフ101の場合と同一であるとは限らない、ということである。この例では、出力ワーク要素の順序は、計算ネットワークの機能に対して重要ではない。
・ワーク要素を分岐する基準となる各ワーク要素内の1つ、または複数のキーにより規定されるハッシュ分岐要素;
・ワーク要素のキー値とは無関係にワーク要素を分割するラウンドロビン分岐要素、普通は異なる出力間を巡回する;および、
・各入力ワーク要素の複製が出力のそれぞれに送られる一斉伝達分岐要素。
・ワーク要素を入力から出力へ任意の順序で、例えば合流要素に到着した時間に従って通過させる任意の合流要素;および、
・キーに従って入力をソートしてから出力へ通過させるソート合流要素。
・分岐する場合、1つまたは複数の特定キーに基づいて入力を分岐しなければならないことを示すインジケータ;
・成分の各インスタンスが、全てのワーク要素の複製を入力で受け取らなければならないことを示すインジケータ;および、
・入力をソートしなければならないことを示すインジケータ、およびソート順序を定義する1つまたは複数のキー。
・フローがワーク要素の分岐サブセットだけを含むことを示すインジケータ、分岐する場合は、フローを分岐する基準となった1つまたは複数の特定キー;および、
・フローがソートされていることを示すインジケータ、およびソート順序を定義する1つまたは複数のキー。
・1入力および1出力を持ち、キーkey1の値の修正を示さない成分については、key1に従って分岐された入力は、key1に従って分岐されたままの出力を生じる;
・1入力および1出力を持ち、キーkey2の値の修正を示さない成分については、key1、続いてKey2に従ってソートされた入力は、key1だけに従ってソートされた出力を生じる;
・入力ワーク要素の順序変更を示す成分。ソートされた入力は、それ以上ソートされないことを示す出力を生じる。なぜなら、その成分はソート順序を乱しているかもしれないからである;および、
・キーkey1の値に従ってソートを明示的に実施する成分は、入力のソート順序とは無関連にkey1に従って出力がソートされることを示す。
(a)1つ以上の成分の入力から出力へのリンク特性をマッピングするステップ(ステップ320);
(b)上流成分の出力特性が既知である各成分間リンクに対して、下流の入力の既知の要件のいずれかに基づいて、成分間リンクの分岐要素、相互接続ネットワーク、および合流要素を含む、成分間リンクの特性を決定するステップ(ステップ330);
(c)ステップ(b)で処理された成分間リンクのそれぞれについて、成分間リンクの出力と関連付けられた下流成分の結果的に得られる入力フロー特性を決定するステップ(ステップ340);および、
(d)成分間リンクのネットワーク表現の成分を、並列グラフの対応する成分間に挿入するステップ(ステップ350)。
(P1)m=nで、かつ下流成分への入力フローを、いずれかの特定キーに基づいて分岐、またはソートする必要がなく、入力フローが各ワーク要素の複製を必要としない場合、上流および下流成分の対応するインスタンスは、図1Bの例に示すように、直接接続される。注意すべきは、これは、基本的に分岐および合流要素の退化した形式に相当する、ということである。
(P2)m≠nで、かつ下流成分への入力フローを、いずれかの特定キーに基づいて分岐する必要がなく、入力フローが各ワーク要素の複製を必要としない場合、成分間リンクの分岐要素は、ラウンドロビン分配を実行するよう定義する。
(P3)下流成分への入力フローが、上流成分の出力フローの分岐と異なる一組のキーに従ってワーク要素を分岐することを要求する場合、分岐要素は、要求されたキー値に従ってハッシュ分岐を実行する。
(P4)入力フローが各ワーク要素の複製を要求する場合、成分間リンクの分岐要素は、一斉伝達機能を実行するよう定義する。
(G1)下流成分の入力フローが、入力が特定組のキーに従ってソートされることを要求し、かつ上流成分の出力がこれらと同じキーに従ってソートされる場合、合流要素はソート合流を実行する。ソート合流では、合流要素は、入力のそれぞれのワーク要素がソートされると仮定し、ソートキーに従って次にどの入力を出力として選択するかを選択し、出力の正しいソート順序を達成する。
(G2)下流成分の入力フローが、入力が特定組のキー(key1、...、keyJ)に従ってソートされることを要求し、かつ上流成分の出力が一組のキー(key1、...、keyJ、...、keyK)に従ってソートされる場合、分岐要素は、ソート化合流を実行する。J=Kの場合、特別な場合(G1)に帰着する。
(G3)入力フローが、入力が特定組のキーに基づいてソートされることを要求し、かつ上流成分の出力が互換性のある組のキーに従ってソートされない場合、合流要素はソートを実行する。
Claims (12)
- コンピュータシステム内のプロセッサ及びメモリを用いて処理を実行することによって並列化計算グラフを生成するための方法であって、
前記方法は、前記プロセッサによって実行される、
並列化すべき計算グラフの仕様(該仕様は、リンク要素を用いて各コンポーネントの出力ポートと他のコンポーネントの入力ポートとの接続を規定する構造仕様と、前記コンポーネントの入力フロー特性、出力フロー特性、及び/又は入力要件を含む、前記コンポーネントについてのメタデータとを含む)を表すデータと、前記計算グラフにおける前記各コンポーネントの少なくとも幾つかについて規定された並列処理次数とから、
前記計算グラフの複数のリンク要素のうちの1つ又は複数のそれぞれに対して、
(a)前記リンク要素に接続された上流コンポーネントの入力フロー特性から、該コンポーネントのマッピング特性に従って、該上流コンポーネントの出力フロー特性を計算するステップ;
(b)前記上流コンポーネントの並列処理次数、前記リンク要素で接続された下流コンポーネントの並列処理次数、並びに前記上流コンポーネントの前記計算された出力フロー特性、及び/又は前記下流コンポーネントの入力要件に従って、前記リンク要素のデータ処理特性を決定するステップ;
(c)前記上流コンポーネントの前記計算された出力フロー特性と、前記リンク要素の前記決定されたデータ処理特性とに基づいて、前記下流コンポーネントの入力フロー特性を決定するステップ;及び
(d)前記決定されたデータ処理特性を持つ前記リンク要素を前記計算グラフの対応するコンポーネント間に挿入するステップ;
の前記(a)〜(d)を繰り返すことによって、前記計算グラフから並列化された計算グラフを生成するステップと、
前記並列化された計算グラフを出力するステップと、
を含み、
前記入力要件は、前記コンポーネントの入力ポートがワークデータを受け入れるための要件であって、受け入れられるワークデータが分配されることを定めた分配要件及びワークデータを受け入れられる順序を定めた順序要件のうちの少なくとも1つを含み、
前記マッピング特性は、各コンポーネントに対して定められる、所定の入力フロー特性を有するワークデータに対して所定の出力フロー特性を有するワークデータを出力するための規則であって、受け入れられ分配されたワークデータを該分配された状態のまま出力する規則、受け入れられたワークデータに対してソートする規則、及び受け入れられたワークデータの順序を変更する規則のうちの少なくともいずれかを含み、
前記データ処理特性は、ワークデータを所定の送り先に分配するための分配要素、該分配されたワークデータを合流させるための合流要素、及びワークデータをソート出力するためのソート要素のうちの少なくとも1つを含む特性である、
方法。 - 前記計算グラフの仕様では、前記計算グラフの前記各コンポーネントが頂点として表され、前記各リンク要素が前記計算グラフの枝として表される、請求項1の方法。
- 前記挿入するステップが、前記コンポーネントを前記リンク要素の前記データ処理特性に従って構成するステップを含む、請求項1の方法。
- 前記コンポーネントが、分配要素、合流要素、又はソート要素を含む、請求項3の方法。
- 前記計算グラフにおける少なくとも幾つかの前記コンポーネントが、多数のインスタンスとしてそれぞれ表されるとともに、前記1つ又は複数のリンク要素のそれぞれが、前記コンポーネントの前記インスタンスにデータフローにより結合された、1つ又は複数のコンポーネントを用いて表される、請求項1の方法。
- コンピュータシステム内のプロセッサ及びメモリを用いて処理を実行することによって1つ又は複数の並列コンポーネントを持つ計算グラフを生成するための方法であって、
前記方法は、前記プロセッサによって実行される、
並列化すべき計算グラフの仕様(該仕様は、各並列コンポーネントと他のコンポーネントとの接続をデータフローよって規定する構造仕様と、前記コンポーネントの入力フロー特性、出力フロー特性、及び/又は入力要件を含む、前記コンポーネントについてのメタデータとを含む)を表すデータと、前記計算グラフにおける前記並列コンポーネントの少なくとも幾つかについて規定された並列処理次数とから、
前記並列コンポーネントのうちの上流並列コンポーネントの出力フロー特性、前記並列コンポーネントのうちの下流並列コンポーネントの入力要件を特定するために、前記メモリ上のメタデータを参照するステップと、
前記参照されたメタデータによって示される前記上流並列コンポーネントの出力フロー特性及び前記下流並列コンポーネントの前記入力要件を満たすように、前記下流並列コンポーネントへの前記データフローを処理するための少なくとも1つの機能要素を、前記計算グラフの対応するデータフロー上に規定して、前記計算グラフから並列化された計算グラフを生成するステップと、
を含み、
前記入力要件は、前記並列コンポーネントがデータフローを受け入れるための要件であって、受け入れられるデータフローが分配されることを定めた分配要件及びデータフローが受け入れられる順序を定めた順序要件のうちの少なくとも1つを含み、
前記出力フロー特性は、前記並列コンポーネントの入力フロー特性から、前記並列コンポーネントのマッピング特性に従って計算される特性であり、
前記マッピング特性は、各コンポーネントに対して定められる、所定の入力フロー特性を有するワークデータに対して所定の出力フロー特性を有するワークデータを出力するための規則であって、受け入れられ分配されたワークデータを該分配された状態のまま出力する規則、受け入れられたワークデータに対してソートする規則、及び受け入れられたワークデータの順序を変更する規則のうちの少なくともいずれかを含み、
前記機能要素は、データフローを所定の送り先に分配するための分配要素、該分配されたデータフローを合流させるための合流要素、及びデータフローをソート出力するためのソート要素のうちの少なくとも1つを含む要素である、
方法。 - 前記分配要素がハッシュ分配要素を含む、請求項6の方法。
- 前記分配要素がラウンドロビン分配要素を含む、請求項6の方法。
- 前記分配要素が一斉伝達要素を含む、請求項6の方法。
- 前記少なくとも1つの機能要素を規定するステップが、2つ又はそれ以上の機能要素を結合する相互接続ネットワークを規定するステップを含む、請求項6の方法。
- コンピュータ可読媒体に格納された、並列化計算グラフを規定するためのコンピュータプログラムであって、
前記コンピュータプログラムは、
並列化すべき計算グラフの仕様(該仕様は、リンク要素を用いて各コンポーネントの出力ポートと他のコンポーネントの入力ポートとの接続を規定する構造仕様と、前記コンポーネントの入力フロー特性、出力フロー特性、及び/又は入力要件を含む、前記コンポーネントについてのメタデータとを含む)を表すデータと、前記計算グラフにおける前記各コンポーネントの少なくとも幾つかについて規定された並列処理次数とから、
前記計算グラフの複数のリンク要素のうちの1つ又は複数のそれぞれに対して、
(a)前記リンク要素に接続された上流コンポーネントの入力フロー特性から、該コンポーネントのマッピング特性に従って、該上流コンポーネントの出力フロー特性を計算するステップ;
(b)前記上流コンポーネントの並列処理次数、前記リンク要素で接続された下流コンポーネントの並列処理次数、並びに前記上流コンポーネントの前記計算された出力フロー特性、及び/又は前記下流コンポーネントの入力要件に従って、前記リンク要素のデータ処理特性を決定するステップ;
(c)前記上流コンポーネントの前記計算された出力フロー特性と、前記リンク要素の決定されたデータ処理特性とに基づいて、前記下流コンポーネントの入力フロー特性を決定するステップ;及び
(d)前記決定されたデータ処理特性を持つ前記リンク要素を前記計算グラフの対応するコンポーネント間に挿入するステップ;
の前記(a)〜(d)を繰り返すことによって、前記計算グラフから並列化された計算グラフを生成するステップと、
前記並列化された計算グラフを出力するステップと、
を含み、
前記入力要件は、前記コンポーネントの入力ポートがワークデータを受け入れるための要件であって、受け入れられるワークデータが分配されることを定めた分配要件及びワークデータを受け入れられる順序を定めた順序要件のうちの少なくとも1つを含み、
前記マッピング特性は、各コンポーネントに対して定められる、所定の入力フロー特性を有するワークデータに対して所定の出力フロー特性を有するワークデータを出力するための規則であって、受け入れられ分配されたワークデータを該分配された状態のまま出力する規則、受け入れられたワークデータに対してソートする規則、及び受け入れられたワークデータの順序を変更する規則のうちの少なくともいずれかを含み、
前記データ処理特性は、ワークデータを所定の送り先に分配するための分配要素、該分配されたワークデータを合流させるための合流要素、及びワークデータをソート出力するためのソート要素のうちの少なくとも1つを含む特性である、
コンピュータプログラム。 - プロセッサ及びメモリを有し、並列化計算グラフを規定するためのコンピュータシステムであって、
並列化すべき計算グラフの仕様(該仕様は、リンク要素を用いて各コンポーネントの出力ポートと他のコンポーネントの入力ポートとの接続を規定する構造仕様と、前記コンポーネントの入力フロー特性、出力フロー特性、及び/又は入力要件を含む、前記コンポーネントについてのメタデータとを含む)を表すデータをメモリに保持させる手段と、
入力装置からの入力によって前記計算グラフにおける前記各コンポーネントの少なくとも幾つかについての並列処理次数を規定する手段と、
前記計算グラフの複数のリンク要素のうちの1つ又は複数のそれぞれに対して、
(a)前記リンク要素に接続された上流コンポーネントの入力フロー特性から、該コンポーネントのマッピング特性に従って、該上流コンポーネントの出力フロー特性を計算する処理;
(b)前記上流コンポーネントの並列処理次数、前記リンク要素で接続された下流コンポーネントの並列処理次数、並びに前記上流コンポーネントの前記計算された出力フロー特性、及び/又は前記下流コンポーネントの入力要件に従って、前記リンク要素のデータ処理特性を決定する処理;
(c)前記上流コンポーネントの前記計算された出力フロー特性と、前記リンク要素の決定されたデータ処理特性とに基づいて、前記下流コンポーネントの入力フロー特性を決定する処理;及び
(d)前記決定されたデータ処理特性を持つ前記リンク要素を前記計算グラフの対応するコンポーネント間に挿入するステップ;
の前記(a)〜(d)を繰り返すことによって、前記計算グラフを並列化する手段と、
出力装置に対して、前記並列化するステップにより並列化された計算グラフを出力する手段と、
を含み、
前記入力要件は、前記コンポーネントの入力ポートがワークデータを受け入れるための要件であって、受け入れられるワークデータが分配されることを定めた分配要件及びワークデータを受け入れられる順序を定めた順序要件のうちの少なくとも1つを含み、
前記マッピング特性は、各コンポーネントに対して定められる、所定の入力フロー特性を有するワークデータに対して所定の出力フロー特性を有するワークデータを出力するための規則であって、受け入れられ分配されたワークデータを該分配された状態のまま出力する規則、受け入れられたワークデータに対してソートする規則、及び受け入れられたワークデータの順序を変更する規則のうちの少なくともいずれかを含み、
前記データ処理特性は、ワークデータを所定の送り先に分配するための分配要素、該分配されたワークデータを合流させるための合流要素、及びワークデータをソート出力するためのソート要素のうちの少なくとも1つを含む特性である、
コンピュータシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US48239103P | 2003-06-25 | 2003-06-25 | |
US60/482,391 | 2003-06-25 | ||
PCT/US2004/020834 WO2005001687A2 (en) | 2003-06-25 | 2004-06-22 | Computer-aided parallelizing of computation graphs |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012083817A Division JP5735448B2 (ja) | 2003-06-25 | 2012-04-02 | コンピュータ支援による計算グラフの並列化 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007529041A JP2007529041A (ja) | 2007-10-18 |
JP5271494B2 true JP5271494B2 (ja) | 2013-08-21 |
Family
ID=33551983
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006517764A Expired - Lifetime JP5271494B2 (ja) | 2003-06-25 | 2004-06-22 | コンピュータ支援による計算グラフの並列化 |
JP2012083817A Expired - Lifetime JP5735448B2 (ja) | 2003-06-25 | 2012-04-02 | コンピュータ支援による計算グラフの並列化 |
JP2013269093A Expired - Lifetime JP5863762B2 (ja) | 2003-06-25 | 2013-12-26 | コンピュータ支援による計算グラフの並列化 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012083817A Expired - Lifetime JP5735448B2 (ja) | 2003-06-25 | 2012-04-02 | コンピュータ支援による計算グラフの並列化 |
JP2013269093A Expired - Lifetime JP5863762B2 (ja) | 2003-06-25 | 2013-12-26 | コンピュータ支援による計算グラフの並列化 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8059125B2 (ja) |
EP (1) | EP1636699A2 (ja) |
JP (3) | JP5271494B2 (ja) |
CN (2) | CN1842764B (ja) |
AU (2) | AU2004252918B2 (ja) |
CA (4) | CA2891196C (ja) |
WO (1) | WO2005001687A2 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005001687A2 (en) | 2003-06-25 | 2005-01-06 | Ab Initio Software Corporation | Computer-aided parallelizing of computation graphs |
CN1316359C (zh) * | 2005-06-09 | 2007-05-16 | 上海交通大学 | 用户指导的程序半自动并行化方法 |
US7716630B2 (en) * | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US7877350B2 (en) * | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
CN101501678B (zh) * | 2006-08-10 | 2013-10-16 | 起元科技有限公司 | 在基于图的计算中分配服务 |
US8201142B2 (en) * | 2006-09-29 | 2012-06-12 | Microsoft Corporation | Description language for structured graphs |
US7844959B2 (en) * | 2006-09-29 | 2010-11-30 | Microsoft Corporation | Runtime optimization of distributed execution graph |
US20080082644A1 (en) * | 2006-09-29 | 2008-04-03 | Microsoft Corporation | Distributed parallel computing |
US8074219B2 (en) | 2007-06-27 | 2011-12-06 | Microsoft Corporation | Order preservation in data parallel operations |
CA2965896C (en) * | 2007-07-26 | 2020-01-07 | Ab Initio Technology Llc | Transactional graph-based computation with error handling |
US20100077384A1 (en) * | 2008-09-23 | 2010-03-25 | Microsoft Corporation | Parallel processing of an expression |
CN105243422B (zh) * | 2009-01-30 | 2018-07-06 | 起元技术有限责任公司 | 使用矢量字段处理数据 |
WO2010093879A1 (en) * | 2009-02-13 | 2010-08-19 | Ab Initio Technology Llc | Managing task execution |
US8667329B2 (en) * | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
CN103069385B (zh) | 2010-06-15 | 2016-12-28 | 起元技术有限责任公司 | 用于动态加载基于图的计算的***和方法 |
US9430204B2 (en) | 2010-11-19 | 2016-08-30 | Microsoft Technology Licensing, Llc | Read-only communication operator |
US9507568B2 (en) * | 2010-12-09 | 2016-11-29 | Microsoft Technology Licensing, Llc | Nested communication operator |
US9395957B2 (en) | 2010-12-22 | 2016-07-19 | Microsoft Technology Licensing, Llc | Agile communication operator |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
US9274926B2 (en) | 2013-01-03 | 2016-03-01 | Ab Initio Technology Llc | Configurable testing of computer programs |
EP4375833A3 (en) | 2013-12-05 | 2024-07-31 | AB Initio Technology LLC | Managing interfaces for dataflow graphs composed of sub-graphs |
CA2959392C (en) * | 2014-09-02 | 2021-08-10 | Ab Initio Technology Llc | Managing invocation of tasks |
EP3189422A1 (en) | 2014-09-02 | 2017-07-12 | AB Initio Technology LLC | Executing graph-based program specifications |
SG11201701652QA (en) | 2014-09-02 | 2017-04-27 | Ab Initio Technology Llc | Compilation of graph-based program specifications with automated clustering of graph components based on the identification of particular data port connections |
CN107145344B (zh) | 2014-09-02 | 2020-12-04 | 起元科技有限公司 | 在基于图的程序中指定组件 |
HUE046575T2 (hu) * | 2015-04-29 | 2020-03-30 | Framatome Sa | Eljárás kód ekvivalencia ellenõrzésére |
US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
EP3335116A1 (en) | 2015-08-11 | 2018-06-20 | AB Initio Technology LLC | Data processing graph compilation |
CN105068862B (zh) * | 2015-09-12 | 2018-10-23 | 中国电子科技集团公司第十研究所 | 统一划分数据链信息处理流程的方法 |
US10503562B2 (en) | 2015-12-17 | 2019-12-10 | Ab Initio Technology Llc | Processing data using dynamic partitioning |
CA3114779C (en) | 2015-12-21 | 2023-03-07 | Ab Initio Technology Llc | Sub-graph interface generation |
EP3458959B1 (en) | 2016-05-17 | 2023-03-22 | AB Initio Technology LLC | Reconfigurable distributed processing |
DE112018001789T5 (de) * | 2017-03-29 | 2019-12-19 | Ab Initio Technology Llc | Systeme und verfahren zum durchführen von datenverarbeitungsoperationen unter verwendung von parallelität variabler grade |
US10817310B2 (en) | 2017-09-01 | 2020-10-27 | Ab Initio Technology Llc | Executing graph-based program specifications |
US11636485B2 (en) * | 2018-04-06 | 2023-04-25 | Fair Isaac Corporation | Efficient parallelized computation of global behavior profiles in real-time transaction scoring systems |
JP7013326B2 (ja) * | 2018-05-29 | 2022-01-31 | 株式会社日立製作所 | 情報処理システム、情報処理装置、および情報処理システムの制御方法 |
US12032631B2 (en) | 2018-05-30 | 2024-07-09 | Ab Initio Technology Llc | Systems and methods for dataflow graph optimization |
CN111177433B (zh) * | 2019-12-31 | 2021-07-20 | 北京百度网讯科技有限公司 | 用于并行处理信息的方法和装置 |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5117489A (en) | 1987-04-22 | 1992-05-26 | Mitsubishi Denki Kabushiki Kaisha | Data-driven processor having an internal tag-generating system for generating a distinct tagged information and assembling with un-tagged information of an input/output data packet |
JPH01108638A (ja) | 1987-10-21 | 1989-04-25 | Hitachi Ltd | 並列化コンパイル方式 |
JP2738692B2 (ja) | 1988-01-29 | 1998-04-08 | 株式会社日立製作所 | 並列化コンパイル方法 |
US5072371A (en) | 1989-03-01 | 1991-12-10 | The United States Of America As Represented By The United States Department Of Energy | Method for simultaneous overlapped communications between neighboring processors in a multiple |
US4953106A (en) * | 1989-05-23 | 1990-08-28 | At&T Bell Laboratories | Technique for drawing directed graphs |
US5301284A (en) * | 1991-01-16 | 1994-04-05 | Walker-Estes Corporation | Mixed-resolution, N-dimensional object space method and apparatus |
US5347639A (en) | 1991-07-15 | 1994-09-13 | International Business Machines Corporation | Self-parallelizing computer system and method |
US5313584A (en) | 1991-11-25 | 1994-05-17 | Unisys Corporation | Multiple I/O processor system |
JPH05257709A (ja) | 1992-03-16 | 1993-10-08 | Hitachi Ltd | 並列化判別方法およびそれを用いた並列化支援方法 |
US5394524A (en) | 1992-08-07 | 1995-02-28 | International Business Machines Corporation | Method and apparatus for processing two graphics data streams in parallel |
US5446915A (en) | 1993-05-25 | 1995-08-29 | Intel Corporation | Parallel processing system virtual connection method and apparatus with protection and flow control |
US5475842A (en) | 1993-08-11 | 1995-12-12 | Xerox Corporation | Method of compilation optimization using an N-dimensional template for relocated and replicated alignment of arrays in data-parallel programs for reduced data communication during execution |
US5440736A (en) * | 1993-11-24 | 1995-08-08 | Digital Equipment Corporation | Sorter for records having different amounts of data |
JP3442192B2 (ja) | 1995-05-31 | 2003-09-02 | シャープ株式会社 | データ駆動型情報処理装置 |
JP3560690B2 (ja) * | 1995-06-14 | 2004-09-02 | 富士通株式会社 | 並列プロセッサ装置 |
US6064393A (en) | 1995-08-04 | 2000-05-16 | Microsoft Corporation | Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline |
US6016150A (en) | 1995-08-04 | 2000-01-18 | Microsoft Corporation | Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers |
US5682537A (en) | 1995-08-31 | 1997-10-28 | Unisys Corporation | Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system |
US5813004A (en) * | 1995-09-25 | 1998-09-22 | International Business Machines Corporation | Partitioning and sorting logical units of data prior to reaching an end of the data file |
US5819021A (en) * | 1995-12-11 | 1998-10-06 | Ab Initio Software Corporation | Overpartitioning system and method for increasing checkpoints in component-based parallel applications |
US6311265B1 (en) | 1996-03-25 | 2001-10-30 | Torrent Systems, Inc. | Apparatuses and methods for programming parallel computers |
US5909681A (en) | 1996-03-25 | 1999-06-01 | Torrent Systems, Inc. | Computer system and computerized method for partitioning data for parallel processing |
US5799149A (en) | 1996-06-17 | 1998-08-25 | International Business Machines Corporation | System partitioning for massively parallel processors |
US5870743A (en) | 1996-06-24 | 1999-02-09 | Oracle Corporation | Method and apparatus for parallelizing operations that create a table |
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
US6330008B1 (en) | 1997-02-24 | 2001-12-11 | Torrent Systems, Inc. | Apparatuses and methods for monitoring performance of parallel computing |
US5999729A (en) | 1997-03-06 | 1999-12-07 | Continuum Software, Inc. | System and method for developing computer programs for execution on parallel processing systems |
US6088716A (en) | 1997-04-28 | 2000-07-11 | Ab Initio Software Corporation | Method for preventing buffer deadlock in dataflow computations |
US5956704A (en) | 1997-06-05 | 1999-09-21 | Oracle Corporation | Method and apparatus for parallelizing operations that insert data into an existing data container |
US6266804B1 (en) | 1997-12-23 | 2001-07-24 | Ab Initio Software Corporation | Method for analyzing capacity of parallel processing systems |
US6480876B2 (en) | 1998-05-28 | 2002-11-12 | Compaq Information Technologies Group, L.P. | System for integrating task and data parallelism in dynamic applications |
US6205465B1 (en) | 1998-07-22 | 2001-03-20 | Cisco Technology, Inc. | Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information |
US7047232B1 (en) * | 1999-01-13 | 2006-05-16 | Ab Initio Software Corporation | Parallelizing applications of script-driven tools |
JP2000242478A (ja) * | 1999-02-15 | 2000-09-08 | Internatl Business Mach Corp <Ibm> | 実行可能性判定装置およびその方法 |
US6311285B1 (en) * | 1999-04-27 | 2001-10-30 | Intel Corporation | Method and apparatus for source synchronous transfers at frequencies including an odd fraction of a core frequency |
US6978458B1 (en) * | 2000-11-17 | 2005-12-20 | Oracle International Corporation | Distributing data items to corresponding buckets for use in parallel operations |
WO2005001687A2 (en) * | 2003-06-25 | 2005-01-06 | Ab Initio Software Corporation | Computer-aided parallelizing of computation graphs |
-
2004
- 2004-06-22 WO PCT/US2004/020834 patent/WO2005001687A2/en active Search and Examination
- 2004-06-22 EP EP04777236A patent/EP1636699A2/en not_active Ceased
- 2004-06-22 CA CA2891196A patent/CA2891196C/en not_active Expired - Lifetime
- 2004-06-22 CA CA2891143A patent/CA2891143C/en not_active Expired - Lifetime
- 2004-06-22 CA CA2891145A patent/CA2891145C/en not_active Expired - Lifetime
- 2004-06-22 CN CN2004800243582A patent/CN1842764B/zh not_active Expired - Lifetime
- 2004-06-22 AU AU2004252918A patent/AU2004252918B2/en not_active Expired
- 2004-06-22 US US10/873,681 patent/US8059125B2/en active Active
- 2004-06-22 CN CN2007101863164A patent/CN101165650B/zh not_active Expired - Lifetime
- 2004-06-22 JP JP2006517764A patent/JP5271494B2/ja not_active Expired - Lifetime
- 2004-06-22 CA CA2529925A patent/CA2529925C/en not_active Expired - Lifetime
-
2009
- 2009-11-20 AU AU2009238350A patent/AU2009238350B2/en not_active Expired
-
2011
- 2011-11-14 US US13/295,216 patent/US9569189B2/en not_active Expired - Lifetime
- 2011-11-14 US US13/295,206 patent/US8866817B2/en not_active Expired - Lifetime
-
2012
- 2012-04-02 JP JP2012083817A patent/JP5735448B2/ja not_active Expired - Lifetime
-
2013
- 2013-12-26 JP JP2013269093A patent/JP5863762B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US8059125B2 (en) | 2011-11-15 |
CA2891145A1 (en) | 2005-01-06 |
WO2005001687A3 (en) | 2005-07-21 |
AU2009238350B2 (en) | 2011-08-25 |
JP5863762B2 (ja) | 2016-02-17 |
CA2891143C (en) | 2019-02-12 |
JP5735448B2 (ja) | 2015-06-17 |
US20120056892A1 (en) | 2012-03-08 |
CA2891196C (en) | 2018-03-20 |
AU2009238350A1 (en) | 2009-12-17 |
CA2529925A1 (en) | 2005-01-06 |
CA2891145C (en) | 2019-02-19 |
CN101165650B (zh) | 2012-10-10 |
US9569189B2 (en) | 2017-02-14 |
AU2004252918B2 (en) | 2009-12-10 |
CN101165650A (zh) | 2008-04-23 |
CA2891196A1 (en) | 2005-01-06 |
CN1842764A (zh) | 2006-10-04 |
EP1636699A2 (en) | 2006-03-22 |
JP2014059914A (ja) | 2014-04-03 |
CA2891143A1 (en) | 2005-01-06 |
JP2012128887A (ja) | 2012-07-05 |
AU2004252918A1 (en) | 2005-01-06 |
WO2005001687A2 (en) | 2005-01-06 |
CN1842764B (zh) | 2010-06-23 |
US20120056888A1 (en) | 2012-03-08 |
JP2007529041A (ja) | 2007-10-18 |
CA2529925C (en) | 2016-08-23 |
US8866817B2 (en) | 2014-10-21 |
US20050034112A1 (en) | 2005-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5271494B2 (ja) | コンピュータ支援による計算グラフの並列化 | |
JP2014059914A5 (ja) | ||
WO2005001687A9 (en) | Computer-aided parallelizing of computation graphs | |
JP6454706B2 (ja) | ソースコード変換 | |
US20190095176A1 (en) | Managing Interfaces for Sub-Graphs | |
JP2023511631A (ja) | 計算グラフを生成するためのエディタ | |
JP2010532528A (ja) | データ並列演算における順番保存 | |
US11210285B2 (en) | Generation of optimized logic from a schema | |
WO2022068124A1 (zh) | 一种可重构阵列处理器的指令调度***及方法 | |
EP1852777A2 (en) | Computer-aided parallelizing of computation graphs | |
Falk et al. | Integrated modeling using finite state machines and dataflow graphs | |
KR20230092635A (ko) | 양방향 인터페이스 조합기를 지원하는 하드웨어 기술 언어 | |
JPH03127133A (ja) | 計算機シミュレーション方法 | |
WO1998019249A1 (fr) | Procede de distribution de donnees et de determination d'agencement pour ordinateurs en parallele et appareil de realisation de ce procede |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101102 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110201 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110208 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110228 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110307 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110330 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110418 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111130 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20120316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120402 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120419 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120601 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120831 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120907 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120928 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130411 |
|
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: 20130426 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130513 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5271494 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |