JP2014157384A - Parallelization design support system, program, and method - Google Patents
Parallelization design support system, program, and method Download PDFInfo
- Publication number
- JP2014157384A JP2014157384A JP2011083117A JP2011083117A JP2014157384A JP 2014157384 A JP2014157384 A JP 2014157384A JP 2011083117 A JP2011083117 A JP 2011083117A JP 2011083117 A JP2011083117 A JP 2011083117A JP 2014157384 A JP2014157384 A JP 2014157384A
- Authority
- JP
- Japan
- Prior art keywords
- file
- program
- information
- division
- constraint
- 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.)
- Withdrawn
Links
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)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
本発明は、コンピュータプログラムを並列実行するための設計支援システム、設計支援プログラム、および設計支援方法に関する。 The present invention relates to a design support system, a design support program, and a design support method for executing computer programs in parallel.
情報技術の進展と社会環境の変化にともない、企業や官公庁などが取り扱うデータ量の増大が著しい。それに伴い、企業などでは、大量データを処理する基幹システムのデータ処理の長時間化が課題となっている。データ処理をより高速に行う方法として、例えば、データ処理をグリッドコンピューティング環境において並列実行する方法がある。 With the advancement of information technology and changes in the social environment, the amount of data handled by companies and government offices has increased significantly. Along with this, in companies and the like, it has become a problem to increase the data processing time of the backbone system that processes a large amount of data. As a method of performing data processing at higher speed, for example, there is a method of executing data processing in parallel in a grid computing environment.
例えば前記特許文献1には、グリッドコンピューティング環境を管理するための方法、システムおよびプログラムが記載されているが、既存のデータ処理プログラムをグリッドコンピューティング環境へ移行するための方法が考慮されていない。特に、データ処理プログラムの改造には多くのコストが必要となるため、データ処理プログラムを極力改造せずに、処理対象データのみを分割することで並列化を実現することが望ましいが、そのような並列化設計方法が考慮されていない。
For example,
そこで、本発明は、データ処理プログラムの解析に基づき、前記データ処理プログラムの並列化を実現するためのデータの分割配置方法を指定する情報を生成することで、グリッドコンピューティング環境における前記既存のデータ処理プログラムの並列実行を実現するための並列化設計を支援するシステム、プログラム、および方法を提供することを目的とする。 Therefore, the present invention generates information specifying a data division and arrangement method for realizing parallelization of the data processing program based on the analysis of the data processing program, so that the existing data in the grid computing environment is generated. An object of the present invention is to provide a system, a program, and a method for supporting parallel design for realizing parallel execution of processing programs.
上記目的を達成するために、例えば以下に記載の構成を採用する。 In order to achieve the above object, for example, the following configuration is adopted.
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるとするならば、プログラムの並列化を実現するためのデータ分割配置方法の設計を支援するコンピュータシステムであって、並列化対象プログラムと、並列実行の多重度と、物理ファイル情報を、入力装置で受付けて記憶装置に登録する入力情報登録部と、前記並列化対象プログラムを解析し、プログラム構文・依存性解析情報を生成するプログラム構文・依存性解析部と、前記プログラム構文・依存性解析情報に基づき、前記並列化プログラムが行うファイル入出力処理の制御構造の情報と、前記並列化プログラムが行うファイル入出力処理に使用されるプログラム変数による、入出力ファイルへの依存性の情報から構成される、ファイルアクセスロジック情報を生成する、ファイルアクセスロジック生成部と、前記ファイルアクセスロジック情報に基づき、前記並列化対象プログラムの並列性を判定する、並列性判定部と、前記プログラム構文・依存性解析情報と、前記ファイルアクセスロジック情報と、前記物理ファイル情報に基づいて、前記並列化対象プログラムに対する入力ファイルを、分割する際の制約の情報を生成する、ファイル分割制約生成部と、前記ファイル分割制約情報と、前記多重度に基づいて、前記多重度での前記並列化対象プログラムの並列実行を実現するための、前記並列化対象プログラムの入力ファイルの分割方法を指定する情報を生成する、ファイル分割方法指定情報生成部と、を備えることを特徴とする、プログラムの並列化のためのデータ分割配置方法の設計を支援するコンピュータシステム。 The present application includes a plurality of means for solving the above-mentioned problem. To give an example, a computer system for supporting the design of a data division and arrangement method for realizing parallelization of a program, The target program, multiplicity of parallel execution, and physical file information are received by the input device and registered in the storage device, and the parallelized target program is analyzed to generate program syntax / dependency analysis information Used for the program syntax / dependency analysis unit, the information on the control structure of the file input / output processing performed by the parallelized program based on the program syntax / dependency analysis information, and the file input / output processing performed by the parallelized program File access logic information consisting of dependency information on input / output files by generated program variables A file access logic generation unit; a parallelism determination unit that determines parallelism of the parallelized program based on the file access logic information; the program syntax / dependency analysis information; and the file access logic information. And based on the physical file information, a file division constraint generation unit that generates constraint information when the input file for the parallelization target program is divided, the file division constraint information, and the multiplicity A file division method designation information generation unit for generating information for designating a method for dividing an input file of the parallelization target program for realizing parallel execution of the parallelization target program at the multiplicity. Supporting the design of a data division and arrangement method for program parallelization Computer system.
本発明によれば、既存のデータ処理プログラムを、グリッドコンピューティング環境に移行し並列実行させるための、データの分割配置方法の設計を効率的に行うことができる。 ADVANTAGE OF THE INVENTION According to this invention, the design of the division | segmentation arrangement | positioning method of data for shifting an existing data processing program to a grid computing environment and performing it in parallel can be performed efficiently.
上記以外の課題、構成、および効果は、以下の実施形態の説明により明らかにされる。 Problems, configurations, and effects other than those described above will be clarified by the following description of embodiments.
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の並列化設計支援システム100の構成図である。図1に示す並列化設計支援システム100(以下、システム100)は、プログラムを並列化するために必要な設計作業を効率化するコンピュータシステムである。前記システム100は例えばサーバなどのコンピュータ装置であり、ハードディスクドライブなどの記憶装置110、RAMなどの揮発性記憶手段であるメモリ120、CPU130、通信ポート140らがBUSにより互いに接続されて構成されている。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a configuration diagram of a parallelization
前記システム100は、前記CPU130が、ハードディスクドライブなどの前記記憶装置110に格納されたプログラム150を、RAMなどの揮発性のメモリ120に読み出して実行することで、各種機能を実現している。また、前記システム100は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力装置160、ディスプレイ、スピーカー、プリンタなどの出力装置170を必要に応じて備える。また前記システム100は、他装置との間のデータ授受を担うNIC(Network Interface Card)など通信ポート140を有し、所定の管理者等が利用する端末などとネットワークを介して通信可能となっていてもよい。
In the
前記システム100は、他の情報処理装置からネットワークを介して送信される前記プログラム150を前記通信ポート140で受信し、これをメモリ120や記憶装置110に記憶するとしてもよい。また、入力情報210など前記プログラム150の処理において使用するデータを別の情報処理装置に格納しておき、前記システム100が前記通信ポート140を通じて前記情報処理装置から受信して前記プログラム150の処理に利用することもできる。
The
以下に、前記システム100が、プログラム150の構成要素として持つ機能部と、各機能部への入力または出力となる各種データの構成の説明を行う。各種データの構成は図2に示している。
In the following, a description will be given of the functional units that the
前記システム100は、プログラム150への入力情報210を、入力装置160で受付けて記憶装置110に登録する入力情報登録部101を備えている。入力情報210は、並列化対象プログラム211と、前記並列化対象プログラム211の入力または出力となる物理ファイルの情報212と、並列化後の同時実行数である多重度213から構成される。本実施例では並列化対象プログラム211は1本のプログラムであるが、複数であってもよい。
The
また前記システム100は、前記登録された前記並列化対象プログラム211の構文解析と、依存性解析を行い、その結果をプログラム構文・依存性情報220に出力するプログラム構文・依存性解析部102を備えている。構文解析・依存性解析は、例えばコンパイラの実現において適用されている技術である。前記プログラム構文・依存性情報220は、前記並列化対象プログラム211がファイル入出力処理に用いる変数を識別するファイルレコード識別情報221と、前記並列化対象プログラム211を構成する命令文を識別する命令文情報222と、前記並列化対象プログラム211の命令文が行う変数の参照と変数の更新を識別する変数参照更新情報223と、前記並列化対象プログラム211に含まれる分岐命令文の分岐条件とループ命令文の繰り返し条件の構造である条件構文木224と、命令文の間の制御依存関係を格納する制御依存性情報225と、変数の間のデータ依存関係を格納するデータ依存性情報226から構成される。
The
また、前記システム100は、前記プログラム構文・依存性情報220に基づいて、前記並列化対象プログラム211の、ファイル入出力に関する骨子を表す情報である、ファイルアクセスロジックの情報230を出力するファイルアクセスロジック生成部103を備える。前記ファイルアクセスロジック情報230は、ファイル入出力の実行の有無や実行回数や実行順序に影響する分岐命令文やループ命令文から構成するファイルアクセス制御構造情報231と、前記ファイルアクセス制御構造情報231の中で使用されている変数が持つ、入出力ファイルへの依存関係に関する、変数依存性情報232から構成される。
Further, the
また、前記システム100は、前記ファイルアクセスロジック情報230に基づいて、前記並列化対象プログラム211に対し、入力ファイルの分割による並列化の可否を判定する並列性判定部104を備える。入力ファイルの分割による並列化については後述する。
In addition, the
ここで、物理ファイルとは、例えばオペレーティングシステム上で、一つの単位として認識され、物理ファイル名を与えられている、データの塊を指す。論理ファイルとは、プログラムの中で、処理単位として論理的に扱われるデータの塊を指す。例えば、2つの異なるプログラムが、同一の物理ファイルを、異なる論理ファイルとして記述することが可能である。 Here, the physical file refers to a chunk of data that is recognized as one unit on the operating system, for example, and is given a physical file name. A logical file refers to a chunk of data that is logically handled as a processing unit in a program. For example, two different programs can describe the same physical file as different logical files.
また、前記システム100は、前記プログラム構文・依存性情報220と、前記ファイルアクセスロジック情報230に基づいて、前記並列化対象プログラム211を並列化するためのファイル分割方法が満たすべき制約を、前記並列化対象プログラム211の入出力ファイルの、プログラム内の表現である論理ファイルに対して記述する、論理ファイル分割制約情報240を出力する論理ファイル分割制約生成部105を備える。
In addition, the
また、前記システム100は、前記論理ファイル分割制約情報240と入力情報210に含まれる前記物理ファイル情報212に基づいて、物理ファイルの分割方法が満たすべき制約情報250を出力する、物理ファイル分割制約生成部106を備える。
In addition, the
また、前記システム100は、前記物理ファイル分割制約情報250と入力情報210に含まれる前記多重度213に基づいて、前記物理ファイル分割制約を満たす、物理ファイル分割方法のテンプレート260を出力する、物理ファイル分割テンプレート生成部107を備える。
Further, the
これまでに示した前記システム100における各機能部101から107はハードウェアとして実現してもよいし、メモリやハードディスクドライブなどによって実現する記憶装置110に格納したプログラム150として実現するとしてもよい。この場合、CPU130など制御装置がプログラム実行に合わせて記憶装置160より該当プログラムを読み出して、これを実行することとなる。
The
以下、本実施形態における並列化設計支援方法の実施手順について、図3の全体処理フローに従い、図3から図31を用いながら説明する。以下で説明する各種動作は、前記システム100のCPU130がメモリ120に読み出して実行するプログラム150によって実現される。前記プログラム150は、以下に説明する各種の動作を行うためのプログラムコードから構成されている。
(1)入力情報登録(S301)
図3のステップS301は、入力情報登録ステップである。前記入力情報登録部101は、並列化対象プログラム211と、物理ファイル情報212と、多重度213を、入力装置160で受付けて記憶装置110に登録する。本実施例では、並列化対象プログラムはCOBOL(商標)プログラミング言語で記述されたプログラムであり、その識別子はP01であるとし、並列化対象プログラム211はプログラムP01のソースコード全体であるとする。プログラムP01の具体的な内容は後述する。前記物理ファイル情報212の例は図4に示し、後述する。前記多重度213は、2であるとする。
Hereinafter, the execution procedure of the parallelization design support method according to the present embodiment will be described according to the overall processing flow of FIG. 3 and using FIGS. 3 to 31. Various operations described below are realized by a
(1) Input information registration (S301)
Step S301 in FIG. 3 is an input information registration step. The input
図4は、前記物理ファイル情報212を格納した物理ファイルテーブルの例400である。行410は、プログラムP01が入力とする物理ファイルの名称は「受注明細FILE」であり、プログラムP01の内部では論理ファイルF11として識別されることを示す。行420は、プログラムP01が出力する物理ファイルの名称は「集計FILE」であり、プログラムP01の内部では論理ファイルF12として識別されることを示す。
FIG. 4 is an example 400 of a physical file table storing the
図5は、プログラムP01が行う処理例の概要である。入力ファイル510(受注明細FILE)と出力ファイル520(集計FILE)は、それぞれ固定長のレコードの羅列である。受注明細FILE510の各レコードは明細ID511と商品コード512と数量513の3つの項目から構成される。各項目の長さ(バイト数)はファイルの定義の一部であり、レコード間で共通である。受注明細FILEの各レコードは、商品コードで特定される商品が、明細IDで特定される取引において受注された数量を格納している。
FIG. 5 is an outline of a processing example performed by the program P01. The input file 510 (order details FILE) and the output file 520 (total FILE) are each a list of fixed-length records. Each record of the order details
続いて図5の出力ファイル520について説明する。出力ファイル520の各レコードは商品コード521と数量522の、2つの項目から構成される。各項目の長さ(バイト数)はファイルの定義の一部であり、レコード間で共通である。集計FILEの各レコードは、商品コード521で特定される商品が受注された数量の合計が数量522であることを示している。
Next, the
続いて図5のプログラムP01について説明する。プログラムP01は受注明細FILEを入力ファイルとし、集計FILEを出力ファイルとするプログラムである。本実施例では、プログラムP01が行う入力ファイルへのアクセス形態は、逐次読み込みとする。プログラムP01が行う出力ファイルへのアクセス形態は、逐次書き出しとする。プログラムP01は、受注明細FILE510の冒頭から順次そのレコードを読み込む。同一の商品コード512を持つレコードを全て読み込んだと判断した時点で、数量513の値を合計し、集計FILE520に、当該商品コードに対応する商品の合計受注数量を書き出す。
Next, the program P01 in FIG. 5 will be described. The program P01 is a program in which the order details FILE is an input file and the total FILE is an output file. In this embodiment, the access form to the input file performed by the program P01 is sequentially read. The access form to the output file performed by the program P01 is sequential writing. The program P01 reads the records sequentially from the beginning of the order details FILE510. When it is determined that all records having the
例えば、受注明細FILEの冒頭の3件のレコード514を読み込んだ時点で、商品コード11111に関するレコードを全て読み込み済みと判定し、集計FILE520にレコード523を書き出す。次にレコード515を読み込み、商品コード22222に関するレコードを全て読み込み済みと判定し、レコード524を書き出す。
For example, when the first three records 514 of the order details FILE are read, it is determined that all records relating to the
図6は、前記の処理を行うプログラムP01をファイル分割によって多重度2で並列化した結果を示す。入力ファイル610を、物理ファイル分割配置プログラム630が、分割後ファイル611と分割後ファイル622に分割し、それぞれ並列実行サーバ650と並列実行サーバ660に配置する。
FIG. 6 shows the result of parallelizing the program P01 for performing the above processing with
並列実行サーバ650は、プログラムP01と同じプログラム670を、分割後ファイル611を入力ファイルとして実行する。プログラム670は、出力ファイル621を出力する。並列実行サーバ660は、プログラムP01と同じプログラム680を、分割後ファイル612を入力ファイルとして実行する。プログラム680は、出力ファイル622を出力する。
The
物理ファイルマージプログラム640は、出力ファイル621と出力ファイル622を入力とし、それらをマージしたファイル620を出力する。ここで、入力ファイル610は受注明細FILE510と同一であり、プログラム670とプログラム680はプログラムP01と同一であり、出力ファイル620は集計FILE520と同一である。このような物理ファイル分割配置プログラム630と物理ファイルマージプログラム640を実現することで、プログラムP01を改変することなく、プログラムP01の並列実行を実現できる。
The physical
本実施例は、物理ファイル分割テンプレート情報260を出力することで、プログラムの作成者によって作成される物理ファイル分割配置プログラム630及び物理ファイルマージプログラム640の設計を支援する、前記並列化設計支援システム100を説明する。
This embodiment outputs the physical file
図7は、並列化対象プログラム211の構成である。COBOL言語の構文に従い、プログラムは、見出し部701と環境部702とデータ部703と手続き部704から構成される。見出し部702は、プログラム名などの定義を含む。環境部702には、入出力ファイルの定義と、入出力ファイルの編成の定義を含む。例えば、プログラムP01は、環境部702において、入力ファイルと出力ファイルを順編成ファイルであると宣言する。
FIG. 7 shows the configuration of the
データ部703と手続き部704は本実施例の内容に関わるので、それらの部分を以下に説明する。
Since the
図8は、前記並列化対象プログラム211のデータ部703の例801である。COBOL言語の構文に従って記載しているので、詳細な説明は省略する。データ部の例801の意味について以下で説明する。
FIG. 8 shows an example 801 of the
図9は、データ部の例801の記載内容のうちファイルに関する部分の模式図である。論理ファイルF11(930)は、変数R11(910)と関連付いている。変数R11(910)は、サイズが8バイトである変数R11−MEISAI−ID(911)と、サイズが5バイトである変数R11−PCODE(912)と、サイズが3バイトである変数R11−QUANTITY(913)の3つの変数を部分項目として持つ。変数R11(910)のサイズは16バイトである。 FIG. 9 is a schematic diagram of a portion related to a file in the description content of the example 801 of the data portion. The logical file F11 (930) is associated with the variable R11 (910). The variable R11 (910) includes a variable R11-MEISAI-ID (911) having a size of 8 bytes, a variable R11-PCODE (912) having a size of 5 bytes, and a variable R11-QUANTITY (3 bytes having a size of 3 bytes). 913) have three variables as partial items. The size of the variable R11 (910) is 16 bytes.
並列化対象プログラム211において「READ F11」という命令文を実行すると、論理ファイルF11の1件のレコードの内容が、変数R11(910)に格納される。変数R11の部分項目は、当該レコードを構成する項目に対応する。
When the statement “READ F11” is executed in the
同様に、論理ファイルF12(940)は、変数R12(920)と関連付いている。変数R12(920)は、サイズが5バイトである変数R12−PCODE(921)と、サイズが3バイトである変数R12−QUANTITY(922)の2つの変数を部分項目として持つ。変数R12(920)のサイズは8バイトである。 Similarly, logical file F12 (940) is associated with variable R12 (920). The variable R12 (920) has, as partial items, two variables: a variable R12-PCODE (921) having a size of 5 bytes and a variable R12-QUANTITY (922) having a size of 3 bytes. The size of the variable R12 (920) is 8 bytes.
並列化対象プログラム211において「WRITE R12」という命令文を実行すると、変数R12(920)の内容が、1件の新たなレコードとして論理ファイルF12(940)に書き出される。変数R12の部分項目は、当該レコードを構成する項目に対応する。
When the statement “WRITE R12” is executed in the
並列化対象プログラム211がCOBOL言語で記述されている場合、上記の手段によって、ファイルと関連づいた変数のレイアウトを識別することで、当該並列化対象プログラム211の変数と、当該並列化対象プログラムが読み書きするレコード項目のレイアウトとの対応関係を識別する。並列化対象プログラムがCOBOL以外の言語で記述されている場合においても、プログラム内の変数と、ファイルレコード項目との対応関係を識別すれば、本実施例に記載の方法による並列化設計支援を行うことができる。
When the
以上が、入力情報ステップS301の説明と、入力情報210の説明と、前記システム100が実現する並列化設計支援の説明である。
(2)プログラム構造・依存性解析(S302)
次に、図3のステップS302のプログラム構文・依存性解析について説明する。
The above is the description of the input information step S301, the description of the
(2) Program structure / dependency analysis (S302)
Next, the program syntax / dependency analysis in step S302 of FIG. 3 will be described.
ステップS302は、プログラム構文・依存性解析ステップである。前記プログラム構文・依存性解析部102は、並列化対象プログラム211の構文解析と依存性解析を行い、プログラム構文・依存性情報220を出力する。前記プログラム構文・依存性解析部102が行う解析処理は、コンパイラ技術やプログラム解析技術の分野で既知のものであるので、その処理内容の説明は行わない。プログラム構文・依存性解析情報220を構成するテーブルを例を用いて説明する。
Step S302 is a program syntax / dependency analysis step. The program syntax /
図10は、前記ファイルレコード識別情報221を格納したファイルレコード識別テーブルの例1000である。ファイルレコード識別テーブル1000の行は、並列化対象プログラム211の変数のうち、データ部801において、ファイルと関連を定義されている変数に対応する。
FIG. 10 shows an example 1000 of a file record identification table that stores the file
前記ファイルレコード識別テーブル1000のカラム1001は変数識別子であり、当該行に対応する変数を特定する。本実施例では、変数識別子と変数名は同一であるものとする。カラム1002は論理ファイル識別子であり、当該変数が関連する論理ファイルを特定する。本実施例では、論理ファイル識別子は論理ファイル名と同一であるものとする。カラム1003は項目識別子であり、当該変数が関連する当該論理ファイルのレコードのうち、当該変数が対応している当該レコードの部分項目を、そのレコード内の位置によって特定する。
A
例えば行1010によると、変数R11は論理ファイルF11に関連しその項目識別子は[1−16]である。これは、変数R11は論理ファイルF11のレコード全体(16バイト)に対応することを示す。
For example, according to
また、例えば行1011によると、変数R11−MEISAI−IDは論理ファイルF11に関連しその項目識別子は[1−8]である。これは変数R11−MEISAI−IDは論理ファイルF11のレコードの冒頭8バイトの内容に対応することを示す。
For example, according to the
図11は、前記命令文情報222を格納した命令文テーブルの例1100である。命令文テーブル1100の各行は、並列化対象プログラム211の手続き部を解析する際の解析単位に対応する。本実施例では、解析単位を命令文と呼称し、命令文識別子を付与して識別する。解析単位は、必ずしもCOBOL言語の構文における命令文と合致しなくともよく、例えばCOBOL言語における命令文の構成要素である句を解析単位とすることもありえる。
FIG. 11 shows an example 1100 of a command statement table storing the
命令文テーブル1100のカラム1101は命令文識別子である。本実施例では、手続き部内での通し番号としている。カラム1102は命令文内容である。
A
命令文テーブル1100に登場する命令文を簡単に説明する。OPEN文は、論理ファイルをオープンする命令文である。MOVE文は、変数の値を更新する命令文である。 The command statements appearing in the command statement table 1100 will be briefly described. The OPEN statement is a command statement for opening a logical file. The MOVE statement is a command statement that updates the value of a variable.
READ文は、入力ファイルから1件のレコードを読み込み、当該入力ファイルのレコードに関連付けられた変数にその内容を格納する命令文である。AT END句のスコープ内にある命令文は、読み込みの結果、当該入力ファイルの終端に到達した場合に実行される。 The READ statement is a command statement that reads one record from the input file and stores the contents in a variable associated with the record of the input file. A statement in the scope of the AT END phrase is executed when the end of the input file is reached as a result of reading.
PERFORM文は、そのスコープ内の命令文のグループを繰り返し実行する命令文である。繰り返し処理は、UNTIL以下に記述された条件が真となった時点で終了する。ADD文は、第一オペランドの値を第二オペランドに加算する命令文である。WRITE文は、オペランドで指定する変数の内容を、当該変数が関連付けられている論理ファイルに、1件の新しいレコードとして書き出す命令文である。 A PERFORM statement is a statement that repeatedly executes a group of statements within the scope. The iterative process ends when the condition described below UNTIL becomes true. The ADD statement is a command statement for adding the value of the first operand to the second operand. The WRITE statement is a command statement that writes the contents of a variable specified by an operand as one new record in the logical file associated with the variable.
END−で始まる命令文は、それに対応する命令文のスコープの終端を示す。本実施例では、命令文のスコープはカラム1102内におけるインデントでも示している。HIGH−VALUEは定数である。
A statement beginning with END- indicates the end of the scope of the corresponding statement. In this embodiment, the scope of the command statement is also indicated by indentation in the
図12は、前記変数参照更新情報223を格納する変数参照更新テーブルの例1200である。変数参照更新テーブル1200の行は、命令文が行う変数の参照の作用または更新の作用を表現する。
FIG. 12 is an example 1200 of a variable reference update table that stores the variable
前記変数参照更新テーブル1200のカラム1201は命令文識別子であり、当該行が対応する命令文を特定する。カラム1202は変数識別子であり、当該行に対応する命令文のうちの、当該行に対応する変数を特定する。カラム1203は種別であり、更新または参照のいずれかを特定する。
A
例えば、行1210は、命令文識別子4のMOVE文は、変数FLG1を更新することを示す。また、行1220は、命令文識別子7のMOVE文は、変数R11−PCODEを参照することを示す。
For example,
以下、本実施例では、説明の読みやすさを考慮し、命令文または命令文識別子を「4 (MOVE)」などのように、命令文識別子と、命令文の種類を特定する語と一緒に記載するものとする。括弧部分はあくまでも説明のためであり、前記並列化支援プログラム150においては括弧部分は命令文識別子の一部ではない。
Hereinafter, in this embodiment, in consideration of the readability of the explanation, the instruction sentence or the instruction sentence identifier is combined with the instruction sentence identifier and a word for specifying the type of the instruction sentence, such as “4 (MOVE)”. Shall be described. The parenthesis part is for explanation only, and in the
図13は、前記条件構文木224の例として、命令文6(PERFORM)のUNTIL以下の条件の条件構文木1310と、命令文9(PERFORM)のUNTIL以下の条件の条件構文木1320を示す。構文木の定義と生成方法は既知であるので説明は省略する。
FIG. 13 shows, as examples of the
図14は、前記制御依存性情報225を格納する制御依存性テーブルの例1400である。制御依存性テーブル1400の行は、命令文が他の命令文に対して持つ制御依存性を表現している。制御依存性テーブル1400のカラム1401は依存元命令文識別子である。カラム1402は依存先命令文識別子である。
FIG. 14 is an example 1400 of a control dependency table that stores the
命令文Aが命令文Bに制御依存するとは、命令文Aの実行の有無が、命令文Bの実行結果に依存するという意味である。例えば、前記制御依存性テーブル1400の行1410は命令文4(MOVE)が命令文3(READ)に制御依存することを示す。これは、命令文4(MOVE)は命令文3(READ)のAT ENDのスコープ内だからである。
The fact that the command statement A depends on the command statement B means that the command statement A execution depends on the execution result of the command statement B. For example, the
また、行1420は、命令文7(MOVE)は命令文6(PERFORM)に制御依存することを示す。これは命令文7(MOVE)は命令文6(PERFORM)のスコープ内だからである。本実施例では、制御依存性は、分岐や繰り返しやAT ENDのスコープを示す情報によっても代替可能である。
A
図15は、図14に示した前記制御依存性テーブル1400と同様の情報を、グラフ形式で表現した制御依存グラフの例1500を示す。制御依存グラフ1500のノードは前記制御依存性テーブル1400に登場する命令文に対応する。ノード間の有向エッジは、依存元命令文から依存先命令文への制御依存に対応する。このように、前記制御依存性情報225は、制御依存グラフとして生成・格納してもよい。
FIG. 15 shows an example 1500 of a control dependence graph in which the same information as the control dependence table 1400 shown in FIG. 14 is expressed in a graph format. The nodes in the
図16は、前記データ依存性情報226を格納するデータ依存性テーブルの例1600である。データ依存性テーブル1600の行は、命令文の中の変数の、データ依存先の命令文とその変数を示す。カラム1601は依存元命令文識別子である。カラム1602は依存元変数識別子である。カラム1603は依存先命令文識別子である。カラム1604は依存先変数識別子である。
FIG. 16 is an example 1600 of a data dependency table that stores the
変数Aが変数Bにデータ依存するとは、変数Aの値が変数Bの値の影響を受けるという意味である。例えば、データ依存性テーブル1600の行1610は、命令文17(WRITE)における変数R12−PCODEの値は、命令文15(MOVE)における変数CUR−PCODEから代入を受けていることを示す。ここで、変数R12−PCODEは命令文17(WRITE)に明示されていないが、変数R12−PCODEは当該WRITE文のオペランドR11の部分項目であるので、命令文17(WRITE)が使用している変数の一部である。
The variable A being data-dependent on the variable B means that the value of the variable A is affected by the value of the variable B. For example, the
以上が、ステップS302(プログラム構文・依存性解析)の説明である。
(3)ファイルアクセスロジック生成(S303)
次に、ステップS303のファイルアクセスロジック生成について説明する。
The above is the description of step S302 (program syntax / dependency analysis).
(3) File access logic generation (S303)
Next, the file access logic generation in step S303 will be described.
図3のステップS303は、ファイルアクセスロジック生成ステップである。前記ファイルアクセスロジック生成部103は、前記プログラム構文・依存性情報220を参照しながらファイルアクセスロジック生成処理を実行し、前記ファイルアクセスロジック情報230を出力する。
Step S303 in FIG. 3 is a file access logic generation step. The file access
図17は、前記ファイルアクセスロジック生成部103の処理フローを示す。S1701の終端依存性解析ステップでは、S1703の変数依存性解析ステップで使用する終端依存性情報1800を生成する。S1702のファイルアクセス制御構造解析ステップでは、前記ファイルアクセス制御構造情報231を生成する。S1703は変数依存性解析ステップであり、前記変数依存性情報232を生成する。
(3−1)終端依存性解析(S1701)
図17の終端依存性解析ステップS1701について説明する。本実施例では、変数が、入力ファイルの終端への到達時に更新されている場合、当該変数は当該入力ファイルへの終端依存性を持つと呼称する。また、当該変数を、終端依存変数と呼称する。
FIG. 17 shows a processing flow of the file access
(3-1) Termination dependency analysis (S1701)
The termination dependency analysis step S1701 in FIG. 17 will be described. In this embodiment, when a variable is updated when reaching the end of the input file, the variable is referred to as having end dependency on the input file. The variable is referred to as a termination dependent variable.
図18に、終端依存性情報を格納する終端依存性テーブルの例1800を示す。終端依存性テーブル1800の各行は、終端依存性を持つ変数に対応する。 FIG. 18 shows an example end dependency table 1800 for storing end dependency information. Each row of the termination dependency table 1800 corresponds to a variable having termination dependency.
前記終端依存性テーブル1800のカラム1801は、終端依存変数の変数識別子である。カラム1802は依存先の論理ファイル識別子である。前記終端依存性テーブル1800の行1810は、変数FLG1が、論理ファイルF11に終端依存することを示す。
終端依存変数は以下の手順で特定する。まず、命令文テーブル1100を参照し、AT END句を持つREAD文を特定する。次に、制御依存性テーブル1400を参照し、当該READ文へ制御依存する命令文を特定する。次に、当該命令文が更新している変数を、変数参照更新テーブル1200を参照して特定する。最後に、当該READ文の読み込み元の論理ファイルを、ファイルレコード識別テーブル1000に基づいて特定する。これで、当該変数が、当該論理ファイルに終端依存することが識別できる。
(3−2)ファイルアクセス制御構造解析(S1702)
図17のファイルアクセス制御構造解析ステップS1702について説明する。ファイルアクセス制御構造情報は、ファイル入出力命令(READ文またはWRITE文)の実行の有無や、実行回数や、実行順序に関する制御構造(分岐やループ)を並列化対象プログラム211から抜粋したものである。
The terminal dependent variable is specified by the following procedure. First, the READ statement having the AT END phrase is specified by referring to the command statement table 1100. Next, the control dependency table 1400 is referred to, and the command statement that depends on the control to the READ statement is specified. Next, the variable updated by the statement is specified with reference to the variable reference update table 1200. Finally, the logical file from which the READ statement is read is specified based on the file record identification table 1000. Thus, it can be identified that the variable depends on the end of the logical file.
(3-2) File access control structure analysis (S1702)
The file access control structure analysis step S1702 in FIG. 17 will be described. The file access control structure information is an excerpt from the
図19に、ステップS1702が出力する前記ファイルアクセス制御構造情報231を格納するファイルアクセス制御構造テーブルの例1900を示す。ファイルアクセス制御構造テーブル1900の各行は、並列化対象プログラム211のうち、ファイルアクセス制御構造を構成する命令文に対応する。
FIG. 19 shows an example 1900 of a file access control structure table that stores the file access
カラム1901は、ファイルアクセス制御構造を構成する命令文の識別子である。カラム1902は、命令文の内容である。ファイルアクセス制御構造テーブル1900の各行の順序と、命令文内容1902のインデントは、各行の命令文内容1902間の関係を示す。例えば、行1910の命令文9(PERFORM)は、ファイルアクセス制御構造においても、命令文6(PERFORM)のスコープ内にある。
A
図20に、ファイルアクセス制御構造の生成手順を示す。まず、命令文テーブル1100に基づいてファイル入出力文Sを識別し、ファイルアクセス制御構造の一部を生成する起点とする。当該ファイル入出力文自体もファイルアクセス制御構造の一部として識別する(S2001)。例えば、命令文11(READ)を起点とする。 FIG. 20 shows a procedure for generating a file access control structure. First, the file input / output statement S is identified based on the command statement table 1100, and is used as a starting point for generating a part of the file access control structure. The file input / output statement itself is also identified as a part of the file access control structure (S2001). For example, the command statement 11 (READ) is the starting point.
次に、当該ファイル入出力文の実行に影響を与える全ての制御命令を特定する(S2002)。これは例えば、制御依存グラフ1500において、当該命令文のノードから到達可能な全てのノードを特定することで達成できる。例えば、命令文11(READ)からは命令文9(PERFORM)と命令文6(PERFORM)が到達可能である。これにより、命令文6(PERFORM)と、命令文9(PERFORM)と、命令文11(READ)が、ファイルアクセスロジック制御構造の構成要素として識別された。
Next, all control commands that affect the execution of the file input / output statement are specified (S2002). This can be achieved, for example, by specifying all nodes reachable from the node of the command statement in the
ファイルアクセスロジック制御構造の生成は、S2001とS2002を、全てのファイル入出力文について繰り返すことで行われる(S2003)。以上で、図17のS1702の説明を終える。
(3−3)変数依存性解析(S1703)
図17のS1703の変数依存性解析ステップについて説明する。ここでは、ファイルアクセスロジック制御構造の中に登場する変数が持つ、入力ファイルまたは出力ファイルへの依存性を解析する。
The file access logic control structure is generated by repeating S2001 and S2002 for all file input / output statements (S2003). This is the end of the description of S1702 in FIG.
(3-3) Variable dependency analysis (S1703)
The variable dependency analysis step of S1703 in FIG. 17 will be described. Here, the dependency of the variable appearing in the file access logic control structure on the input file or the output file is analyzed.
本実施例では、変数依存性は、入力依存と、間接依存と、終端依存と、出力依存の4種類を定義する。入力依存とは、当該変数は入力ファイルのレコードの特定の項目と関連づいていることを意味する。間接依存とは、当該変数が、入力依存変数から代入を受けていることを意味する。終端依存は既に説明した。出力依存とは、当該変数が出力ファイルのレコードと関連づいていることを意味する。 In this embodiment, four types of variable dependencies are defined: input dependency, indirect dependency, termination dependency, and output dependency. Input dependency means that the variable is associated with a specific item in the record of the input file. Indirect dependency means that the variable has been assigned by an input dependent variable. End dependency has already been explained. Output dependency means that the variable is associated with a record in the output file.
図21は、変数依存性情報232を格納する変数依存性テーブルの例2100である。変数依存性テーブル2100の行は、ファイルアクセス制御構造を構成する命令文において使用されている変数に対応する。
FIG. 21 is an example 2100 of a variable dependency table that stores the
変数依存性テーブル2100のカラム2101は、依存元命令文識別子である。カラム2102は当該依存元命令文の中の依存元変数の識別子である。カラム2103は依存性種別である。カラム2104は依存先論理ファイルの識別子である。カラム2105は依存先論理ファイルのレコードの中の依存先項目の識別子である。
A
変数依存性テーブル2100の行2110は、終端依存変数の例である。行2120は、間接依存変数の例である。行2130は、入力依存変数の例である。行2140は、出力依存変数の例である。依存性種別2003が出力依存または終端依存の場合、項目識別子カラム2005の値は「*」である。
A
図22は、図17の変数依存性解析ステップS1703の処理フローである。変数依存性解析は、ファイルアクセスロジック制御構造内で使用されている全ての変数に対して実施する(S2201、S2211)。 FIG. 22 is a processing flow of the variable dependency analysis step S1703 of FIG. The variable dependency analysis is performed on all variables used in the file access logic control structure (S2201, S2211).
当該変数の入力依存性と出力依存性は、ファイルレコード識別テーブル1000を用いて判定する(S2202、S2204)。例えば、変数依存性テーブル2100の行2130と2140は、ファイルレコード識別テーブル1000の行1012と行1013からそれぞれ生成する。入力依存の場合は項目識別子も転記するが、出力依存の場合は不要であるので「*」とする。
The input dependency and output dependency of the variable are determined using the file record identification table 1000 (S2202, S2204). For example, the
当該変数の終端依存性は、終端依存性テーブル1800を用いて判定する(S2206)。例えば、変数依存性テーブル2100の行2110は、終端依存性テーブル1800の行1810から生成する。項目識別子は「*」とする。
The end dependency of the variable is determined using the end dependency table 1800 (S2206). For example, the
入力依存、出力依存、終端依存でない変数については、データ依存性テーブル1600に基づいて、当該変数の値に影響を与える代入の連鎖をたどり、当該変数が入力依存変数から代入をうけているかどうかを判定する(S2208)。 For variables that are not input-dependent, output-dependent, or terminal-dependent, follow the assignment chain that affects the value of the variable based on the data dependency table 1600 to determine whether the variable is assigned from the input-dependent variable. Determination is made (S2208).
例えば変数依存性テーブル2100の行2120は命令文9(PERFORM)の変数CUR−PCODEが間接依存変数であることを示しているが、それは以下の手順で判明する。まず、データ依存性テーブル1600の行1620によって、当該変数が命令文7(MOVE)における変数R11−PCODEの値の代入を受けていることがわかる。変数R11−PCODEは入力依存変数であることが既に判明しているので、そこから代入を受けているCUR−PCODEは間接依存変数であることが判明した。
For example, the
以上でステップS303のファイルアクセスロジック生成処理の説明を終える。前記並列化設計支援システム100は、ファイルアクセスロジック情報230を、ディスプレイやプリンタなどの出力装置170へ出力することができる。前記並列化設計支援システムの使用者は、出力されたファイルアクセスロジック情報を参照することで、並列化対象プログラム211の処理内容をより効率的に知ることができる。
This is the end of the description of the file access logic generation processing in step S303. The parallelization
図23は、ファイルアクセスロジック情報230の出力例2300を示す。これは、ファイルアクセス制御構造テーブル1900の内容に基づき、ファイルアクセス制御構造内の変数を、変数依存性テーブル2100に基づいて、ファイルへの依存性をより明確に示す文字列で置換して表示するものである。具体的には、入力依存変数は「R(論理ファイル識別子.項目識別子)」という形式の文字列に置換して表示する。また、間接依存変数は「R*(論理ファイル識別子.項目識別子)」という形式の文字列で置換して表示する。また、出力依存変数は、依存先の論理ファイル識別子で置換して表示する。
FIG. 23 shows an output example 2300 of the file
また、出力例2300では、終端依存変数を用いた原子式を、ファイルの終端への到達を判定する条件式であることを明示する形式である「ファイルエンド(論理ファイル名)」に変換して示す。 In the output example 2300, the atomic formula using the end-dependent variable is converted to “file end (logical file name)” that is a format that clearly indicates that the conditional expression for determining the end of the file is reached. Show.
出力例2300を参照することで、前記並列化設計支援システム100の使用者は、各変数とファイルとの関連性をより効率的に知ることができる。また、ファイルアクセス制御構造は、並列化対象プログラム211そのものよりも小さなサイズであるので、前記並列化設計支援システム100の使用者は、ファイル入出力に関する制御構造をより効率的に理解することができる。
By referring to the output example 2300, the user of the parallelized
以上が、ステップS303(ファイルアクセスロジック生成)の説明である。
(4)並列性判定(S304)
次に、ステップS304の並列性判定ステップについて説明する。
The above is the description of step S303 (file access logic generation).
(4) Parallelism determination (S304)
Next, the parallelism determination step in step S304 will be described.
ステップS304は、並列性判定ステップである。図24に、本ステップの処理手順を示す。並列性判定は、ファイルアクセスロジック情報240に基づいて行う。WRITE文をスコープに含むループ文の開始よりも以前に終了する、READ文をスコープに含むループ文の有無を判定し、もし結果がYESならば、並列化不可と判定する(S2401)。このようなプログラムに対しては、並列化設計支援システム100は、ステップS305以降を実施しない。
Step S304 is a parallelism determination step. FIG. 24 shows the processing procedure of this step. The parallelism determination is performed based on the file
具体的には、まず制御依存グラフ1500において、WRITE文を起点としてエッジをたどっていき、その先にはもうPERFORM文がないというPERFORM文を特定する。例では、命令文17(WRITE)を起点とすると、命令文6(PERFORM)がそのようなPERFORM文に該当する。
Specifically, first, in the
命令文6(PERFORM)よりも以前に開始されるPERFORM文がもしあったとすると、それは制御依存グラフ1500の中で、ノード6(PERFORM)とは異なる島に属するPERFORM文でなければならないが、そのようなPERFORM文は存在しない。よって、並列化可能と判定する。
If there is a PERFORM statement that starts before command statement 6 (PERFORM), it must be a PERFORM statement belonging to an island different from node 6 (PERFORM) in
S304の並列性判定処理で「並列化不可」と判定されるようなプログラムの例として、第一のループ処理において入力ファイルを終端まで読み込み、そのループの終了後、第二のループ処理において出力ファイルへの書き出しを行うようなプログラムがある。この場合、入力ファイルを分割してしまうと、出力が異なってしまう場合があるため、本実施例の並列化設計支援システム100は、並列化不可と判定する。
As an example of a program that is determined as “unparallelable” in the parallelism determination process of S304, the input file is read to the end in the first loop process, and after the end of the loop, the output file is output in the second loop process. There is a program that writes to. In this case, if the input file is divided, the output may be different. Therefore, the parallelization
上記のような構造を持つプログラムが行う処理の例としては、例えば入力ファイルの全レコードから読み込んだ値の中間値を計算し、それに基づいて順次出力を行う処理がある。 As an example of processing performed by the program having the above-described structure, for example, there is processing for calculating an intermediate value of values read from all records of the input file and sequentially outputting the calculated value.
以上が、ステップS304(並列性判定)の説明である。
(5)論理ファイル分割制約生成(S305)
次に、ステップS305の論理ファイル分割制約生成ステップについて説明する。
The above is the description of step S304 (parallelism determination).
(5) Logical file partitioning constraint generation (S305)
Next, the logical file division constraint generation step of step S305 will be described.
ステップS305は、論理ファイル分割制約生成ステップである。図25に、その手順を示す。論理ファイル分割制約生成処理は、論理ファイル分割制約情報240を生成するステップS2501のみで構成される。
Step S305 is a logical file division constraint generation step. FIG. 25 shows the procedure. The logical file division constraint generation process includes only step S2501 for generating the logical file
図26に、論理ファイル分割制約情報240を格納する論理ファイル分割制約テーブルの例2600を示す。本テーブルの行は、並列化対象プログラム211の入力ファイルに対応する。本実施例の並列化対象プログラムであるプログラムP01の入力ファイルは1つであるので、行は1つしかない。
FIG. 26 shows an example 2600 of a logical file partitioning constraint table that stores logical file
論理ファイル分割制約テーブル2600のカラム2601は、並列化対象プログラムの識別子である。カラム2602は、入力ファイルを特定する論理ファイル識別子である。カラム2603は、当該論理ファイルの分割における制約キーとなる変数の識別子である。カラム2604は、前記変数の項目識別子である。
A
論理ファイル分割制約テーブル2600の行2610によると、論理ファイルF11の制約キー変数はR11−PCODEである。これは、論理ファイルF11を分割する際には、F11のレコードの項目の一つであるR11−PCODEの値が同一であるレコードは、分割後も同じファイルに存在するように分割を行う必要があることを示す。
According to the
例えば、R11−PCODEは、物理ファイルにおいては商品コードに該当するレコード項目に対応するが、図6に示すように、商品コードが同一のレコードは、分割後も同一ファイルになくてはならない。もし商品コードが同一である明細1と明細2の間で分割が行われると、処理結果が並列化前と並列化後で異なってしまう。
For example, R11-PCODE corresponds to the record item corresponding to the product code in the physical file. However, as shown in FIG. 6, records having the same product code must be in the same file even after being divided. If the division is performed between
変数R11−PCODEが制約キーとなるのは、当該変数が入力依存変数であり、かつまた、ファイルアクセスロジック制御構造内のループ文の、繰り返し条件で使用されているためである。このように、論理ファイル分割制約生成ステップS305では、ファイルアクセスロジックにおけるループ文の繰り返し条件を解析することで、論理ファイル分割制約を生成する。 The reason why the variable R11-PCODE is a constraint key is that the variable is an input-dependent variable and is also used in a repetition condition of a loop statement in the file access logic control structure. As described above, in the logical file division constraint generation step S305, the logical file division constraint is generated by analyzing the loop statement repetition condition in the file access logic.
図27に、ステップS2501の論理ファイル分割制約生成の処理フローを示す。まず、ファイルアクセス制御構造テーブル1900に基づき、ファイルアクセス制御構造内のループ文を処理対象として特定する(S2701)。例えば、行1910のPERFORM文を処理対象とする。
FIG. 27 shows a processing flow of logical file division constraint generation in step S2501. First, based on the file access control structure table 1900, a loop statement in the file access control structure is specified as a processing target (S2701). For example, the PERFORM statement on
次に、変数依存性テーブル2100に基づき、前記ループ文の繰り返し条件式に含まれる入力依存変数を識別し(S2702)、制約キー変数としてその変数識別子と項目識別子を出力する(S2703)。行1910のPERFORM文を例に取ると、変数R11−PCODEが該当するので、S2702で識別した依存変数を、対応する論理ファイルに対する制約キー変数として出力する。
Next, based on the variable dependency table 2100, input dependent variables included in the repetition conditional expression of the loop statement are identified (S2702), and the variable identifier and item identifier are output as constraint key variables (S2703). Taking the PERFORM statement on
上記の処理を、ファイルアクセス制御構造内の全てのループ文に対して行う(S2704)。もし、入力ファイルのうち、制約キー変数が識別できなかったものがあれば、論理ファイル分割制約テーブル2400において、当該論理ファイルに対する制約キー変数が無いことを「*」で明示する。 The above processing is performed for all loop statements in the file access control structure (S2704). If there is an input file whose constraint key variable cannot be identified, it is clearly indicated by “*” in the logical file partitioning constraint table 2400 that there is no constraint key variable for the logical file.
以上が、ステップS305(論理ファイル分割制約生成)の説明である。
(6)物理ファイル分割制約生成(S306)
次に、ステップS306の物理ファイル分割制約生成ステップについて説明する。
The above is the description of step S305 (logical file division constraint generation).
(6) Physical file division constraint generation (S306)
Next, the physical file division constraint generation step in step S306 will be described.
ステップS306は、物理ファイル分割制約生成ステップである。図28に、その処理フローを示す。物理ファイル分割制約生成処理は、物理ファイル分割制約情報260を生成するステップS2801のみで構成される。
Step S306 is a physical file division constraint generation step. FIG. 28 shows the processing flow. The physical file division constraint generation process includes only step S2801 for generating physical file
図29に、物理ファイル分割制約情報250を格納する物理ファイル分割制約テーブルの例2900を示す。本テーブルの行は、並列化対象プログラム211の入力ファイル(物理ファイル)に対応する。本実施例の並列化対象プログラムであるプログラムP01の入力ファイルは1つであるので、行は1つしかない。
FIG. 29 shows an example 2900 of a physical file partitioning constraint table that stores physical file
論理ファイル分割制約テーブル2900のカラム2901は、物理ファイル名である。カラム2402は、当該物理ファイルの分割における制約キーとなる項目の識別子である。
A
物理ファイル分割制約テーブル2900の行2910によると、物理ファイル受注明細FILEの制約キー項目識別子は[9−13]である。これは、受注明細FILEを分割する際には、レコードの9バイト目から始まる5バイト長の項目に着目し、連続するレコードの当該項目の値が一致する場合は、それらの連続するレコード群は、分割後も同じファイルに存在するように分割を行う必要があることを示す。
According to the
物理ファイル分割制約テーブル2900は、論理ファイル分割制約テーブル2600の行を、変換することで生成する。具体的には、論理ファイル分割制約テーブルの行の、論理ファイル識別子から、当該論理ファイルに対応する物理ファイル名を識別し、カラム2901に格納する。論理ファイルと物理ファイルの対応関係は、物理ファイルテーブル400に基づいて特定する。また、論理ファイル分割制約テーブルの行の、項目識別子カラム2604の内容を、当該物理ファイルの項目識別子カラム2902に転記する。
The physical file partitioning constraint table 2900 is generated by converting the rows of the logical file partitioning constraint table 2600. Specifically, the physical file name corresponding to the logical file is identified from the logical file identifier in the row of the logical file partitioning constraint table, and stored in the
以上が、ステップS306(物理ファイル分割制約生成)の説明である。
(7)物理ファイル分割テンプレート生成(S307)
次に、ステップS307のステップについて説明する。
The above is the description of step S306 (physical file division constraint generation).
(7) Physical file division template generation (S307)
Next, step S307 will be described.
ステップS307は、物理ファイル分割テンプレート生成ステップである。図30に、その処理フローを示す。分割後ファイル名生成ステップS3001では、多重度213と、分割対象の物理ファイル名から、分割後のファイル名を生成する。例えば、本実施例においては、分割対象物理ファイルは受注明細FILEであり、多重度は2である。分割によって生成される2つの物理ファイルの名称はそれぞれ受注明細FILE001と受注明細FILE002とする。
Step S307 is a physical file division template generation step. FIG. 30 shows the processing flow. In a divided file name generation step S3001, a divided file name is generated from the
図30のステップS3002は、物理ファイル分割テンプレートを生成する。図31に、物理ファイル分割テンプレート情報260を格納する、物理ファイル分割テンプレートテーブル3100を示す。本テーブルの行は、分割後ファイルに対応する。
Step S3002 in FIG. 30 generates a physical file division template. FIG. 31 shows a physical file division template table 3100 that stores physical file
物理ファイル分割テンプレートテーブル3101のカラム3101は分割元物理ファイル名である。カラム3102は境界項目識別子である。カラム3103は境界項目レンジ制約である。カラム3104は分割後ファイル名である。
A
カラム3102の境界項目識別子は、物理ファイル分割制約テーブル2900のカラム2902の制約キー項目識別子から転記する。本実施例においては、カラム3103の境界項目レンジ制約は使用しないため、値は「*」である。
The boundary item identifier in the
前記並列化設計支援システム100の使用者は、物理ファイル分割テンプレート3100を参照することで、並列化対象プログラム211をファイル分割によって並列化する際の、入力ファイルの分割方法を効率的に設計することができる。
The user of the parallelization
例えば前記使用者は、物理ファイル分割テンプレート3100に基づき、分割後ファイル名はそれぞれ受注明細FILE001と受注明細FILE002とすればよいことがわかる。また、受注明細FILE001は、レコード項目[9−13]の値が変化する箇所で分割元ファイルを分割して生成することができ、受注明細FILE002も、レコード項目[9−13]の値が変化する箇所で分割元ファイルを分割して生成することができることがわかる。 For example, based on the physical file division template 3100, the user knows that the divided file names should be the order specification FILE001 and the order specification FILE002, respectively. Also, the order details FILE001 can be generated by dividing the source file at the location where the value of the record item [9-13] changes, and the order details FILE002 also changes the value of the record item [9-13] It can be seen that the division source file can be divided and generated at the place to be.
図6の分割後ファイル611は、前記使用者が、物理ファイル分割テンプレート3100に基づき、受注明細FILE001に、境界項目[9−13]の値が11111と22222であるレコードを含めるように、また受注明細FILE002に、境界項目[9−13]の値が33333と44444であるレコードを含めるように、受注明細FILEを分割した結果を示す。 In the post-division file 611 in FIG. 6, based on the physical file division template 3100, the user includes an order entry FILE001 to include records whose boundary items [9-13] are 11111 and 22222. The result of dividing the order detail FILE so that the record FILE002 includes records whose boundary items [9-13] are 33333 and 44444 is shown.
以下に本発明の第二の実施形態について図面を用いて詳細に説明する。第二の実施例においては、複数の入力ファイルを持つプログラムの並列化設計支援を行うシステムを説明する。 Hereinafter, a second embodiment of the present invention will be described in detail with reference to the drawings. In the second embodiment, a system for supporting parallel design of a program having a plurality of input files will be described.
例えば並列化対象プログラムが2つの入力ファイルを扱う場合、第一の入力ファイルと第二の入力ファイルの分割は相互の整合性を考慮して行う必要がある。また、第一の入力ファイルの分割後ファイルの配置と、第二の入力ファイルの分割後の配置は、相互の整合性を考慮して行う必要がある。 For example, when the parallelization target program handles two input files, it is necessary to divide the first input file and the second input file in consideration of mutual consistency. Also, it is necessary to consider the mutual consistency between the arrangement of the first input file after the division and the arrangement of the second input file after the division.
図32は、本実施形態の並列化設計支援システム3200の構成図である。第一の実施例における並列化設計支援システム100との差異のみを説明する。前記並列化設計支援システム100における論理ファイル分割制約生成部105に代わり、並列化設計支援システム3200は、論理ファイル分割配置制約生成部3201を備える。また、論理ファイル分割制約情報240に代わり、並列化設計支援システム3200は、論理ファイル分割配置制約情報3310を備える。
FIG. 32 is a configuration diagram of the parallelization
また第一の実施例における前記並列化設計支援システム100が備える物理ファイル分割制約生成部106に代わり、本実施例の並列化設計支援システム3200は、物理ファイル分割配置制約生成部3202を備える。また、物理ファイル分割制約情報250に代わり、並列化設計支援システム3200は、物理ファイル分割配置制約情報3320を備える。
Further, instead of the physical file division
図33は、前記並列化設計支援システム3200が備える各種データの構成3300である。第一の実施例における前記並列化設計支援システム100のデータ構成200との差異は以下のとおりである。論理ファイル分割配置制約情報3310は、論理ファイル分割制約情報240に加えて、論理ファイル配置制約情報3311を備える。また、物理ファイル分割配置制約情報3320は、物理ファイル分割制約情報250に加えて、物理ファイル配置制約情報3321を備える。
FIG. 33 is a
以下、本実施形態の並列化設計支援方法の実施手順について、図34の全体処理フローに従い、図35から図57を用いて説明する。ステップS301(入力情報登録)、ステップS302(プログラム構文・依存性解析)、ステップS303(ファイルアクセスロジック生成)、ステップS304(並列性判定)は、第一の実施例のものと同一であるので、説明は省略する。
(1)入力情報登録(S301)
本実施例における入力情報を説明する。並列化対象プログラム3301は、プログラムP02である。物理ファイル情報3302を格納するテーブルの例を図35のテーブル3500に示す。プログラムP02は、集計FILEと倉庫FILEという2つのファイルを入力とし、出庫指示FILEを出力ファイルとする。これらの物理ファイルは、プログラムP02において、それぞれ論理ファイルF21、F22、F23としてアクセスされる。
Hereinafter, the execution procedure of the parallelization design support method of the present embodiment will be described with reference to FIGS. 35 to 57 according to the overall processing flow of FIG. Step S301 (input information registration), step S302 (program syntax / dependency analysis), step S303 (file access logic generation), and step S304 (parallelism determination) are the same as those in the first embodiment. Description is omitted.
(1) Input information registration (S301)
The input information in the present embodiment will be described. The
ここで、集計FILEは、第一の実施例においてプログラムP01が出力するものと同一であるが、その点については第三の実施例で説明する。 Here, the total FILE is the same as that output by the program P01 in the first embodiment, but this point will be described in the third embodiment.
図36に、プログラムP02が行う処理の概要を例を用いて示す。この例において、集計FILEの各レコードは、商品コードで特定される商品の受注数量を表す。倉庫FILEの各レコードは、倉庫コードで特定される倉庫が保管している商品の商品コードを表す。 FIG. 36 shows an outline of processing performed by the program P02 using an example. In this example, each record of the aggregation FILE represents the order quantity of the product specified by the product code. Each record of the warehouse FILE represents a product code of a product stored in the warehouse specified by the warehouse code.
プログラムP02が行う業務処理は、出庫指示である。各倉庫に対し、出庫すべき商品とその数量を指示するために用いられるファイルである出庫指示FILEを出力する。出庫指示FILEの各レコードは、倉庫コードで特定される倉庫に対し、商品コードで特定される商品を出庫すべきであることと、その数量を示している。 The business process performed by the program P02 is a shipping instruction. For each warehouse, a delivery instruction FILE, which is a file used to instruct the goods to be delivered and their quantity, is output. Each record of the delivery instruction FILE indicates that the product specified by the product code should be delivered to the warehouse specified by the warehouse code, and the quantity thereof.
図37は、前記の処理を行うプログラムP02をファイル分割によって多重度2で並列化した結果を示す。入力ファイル3710を、物理ファイル分割配置プログラム3740が、分割後ファイル3711と分割後ファイル3712に分割する。さらに、前記物理ファイル分割配置プログラム3740は、入力ファイル3720を、分割後ファイル3721と分割後ファイル3722に分割する。
FIG. 37 shows the result of parallelizing the program P02 for performing the above processing with
そして、前記物理ファイル分割配置プログラム3740は、分割後ファイル3711と分割後ファイル3721を、並列実行サーバ3760に配置する。さらに、前記物理ファイル分割配置プログラム3740は、分割後ファイル3712と分割後ファイル3722を、並列実行サーバ3770に配置する。
The physical file
並列実行サーバ3760はプログラムP02と同じプログラム3780を、分割後ファイル3711と分割後ファイル3721を入力ファイルとして実行する。プログラム3780は、出力ファイル3731を出力する。
The
同様に、並列実行サーバ3770はプログラムP02と同じプログラム3790を、分割後ファイル3712と分割後ファイル3722を入力ファイルとして実行する。プログラム3790は、出力ファイル3732を出力する。
Similarly, the
物理ファイルマージプログラム3750は、出力ファイル3731と出力ファイル3732を入力とし、それらをマージしたファイル3730を出力する。
The physical
入力ファイル3710は集計FILE3610と同一であり、入力ファイル3720は倉庫FILE3620と同一である。プログラム3780とプログラム3790は、プログラムP02と同一であり、出力ファイル3730は出庫指示FILE3630と同一である。
The
このような物理ファイル分割配置プログラム3740と物理ファイルマージプログラム3750を実現することで、プログラムP02を改変することなく、プログラムP02の並列実行を実現できる。そのためにはプログラムP02の動作の知識に基づく設計行為が必要である。
By realizing such a physical file division and
本実施例は、前記物理ファイル分割配置テンプレート情報3330を出力することで、物理ファイル分割配置プログラム3740の設計を支援する、並列化設計支援システム3200を説明する。
This embodiment describes a parallelization
図38は、並列化対象プログラム3301のデータ部3801である。図39は、データ部3801の記載内容のうち、ファイルに関する部分を模式的に示す。
(2)プログラム構文・依存性解析(S302)
以下に、ステップS302(プログラム構文・依存性解析)の実行結果として本実施例の前記並列化設計支援システム3200が出力する情報の例を示す。
FIG. 38 shows the
(2) Program syntax and dependency analysis (S302)
The following is an example of information output by the parallelization
図40は、ファイルレコード識別情報3303に格納されたファイルレコード識別テーブルの例4000である。 図41は、命令情報3304に格納された命令文テーブルの例4100である。図42は、制御依存情報3305に格納された制御依存性テーブルの例4200である。これらは本実施例の理解を助けるために示した。
(3)ファイルアクセスロジック生成(S303)
以下に、ステップS303(ファイルアクセスロジック生成)の実行結果として、本実施例の前記並列化設計支援システム3200が出力する情報の例を示す。
FIG. 40 is an example 4000 of a file record identification table stored in the file
(3) File access logic generation (S303)
The following is an example of information output by the parallelization
図43は、ファイルアクセス制御構造情報3306に格納されたファイルアクセス制御構造テーブルの例4300である。図44は、変数依存性情報3307に格納された変数依存性テーブルの例4400である。
(4)並列性判定(S304)
ステップS304(並列性判定)の本実施例における判定結果は「並列化可能」となる。
FIG. 43 is an example 4300 of a file access control structure table stored in the file access
(4) Parallelism determination (S304)
The determination result in the present embodiment in step S304 (parallelism determination) is “can be parallelized”.
以上が、本実施例における、入力情報登録ステップS301と、プログラム構文・依存性解析ステップS302と、ファイルアクセスロジック生成ステップS303と、並列性判定ステップS304の説明である。次に、ステップS3404の並列性判定ステップについて説明する。
(5)論理ファイル分割配置制約生成(S3405)
ステップS3405は、論理ファイル分割配置制約ステップである。図45に処理フローを示す。S2501(論理ファイル分割制約生成)は実施例1におけるステップと同一である。図46に、S2501の出力である論理ファイル分割制約情報240に格納された論理ファイル分割制約テーブル4600を示す。論理ファイルF21とF22に対する制約キー変数は無く、これらの論理ファイルの分割は、レコードの境界であればどこでも可能であることを示す。
The above is the description of the input information registration step S301, the program syntax / dependency analysis step S302, the file access logic generation step S303, and the parallelism determination step S304 in the present embodiment. Next, the parallelism determination step in step S3404 will be described.
(5) Logical file division arrangement constraint generation (S3405)
Step S3405 is a logical file division arrangement restriction step. FIG. 45 shows a processing flow. S2501 (logical file division constraint generation) is the same as the step in the first embodiment. FIG. 46 shows a logical file partitioning constraint table 4600 stored in the logical file
図45のS4502は、論理ファイル配置制約生成ステップである。図47に、本ステップの出力である、論理ファイル配置制約情報3311を格納する論理ファイル配置制約テーブルの例4700を示す。本テーブルの各行は、2つの入力ファイルの間に存在する配置制約を表現する。
S4502 in FIG. 45 is a logical file arrangement constraint generation step. FIG. 47 shows an example 4700 of a logical file placement constraint table that stores the logical file
論理ファイル配置制約テーブル4700のカラム4701は、プログラム識別子である。カラム4702とカラム4705は論理ファイル識別子である。当該行に対応する2つの論理ファイルを特定する。カラム4703は、カラム4702で識別される論理ファイルに対する制約キー変数の識別子である。カラム4706は、カラム4705で識別される論理ファイルに対する制約キー変数の識別子である。カラム4704は、2つの論理ファイルの制約キー変数の値を比較する条件である。各識別子の「1」、「2」は論理ファイルF21, F22にそれぞれ対応する。
A
論理ファイル配置制約テーブル4700の内容は行4710のみである。これは、論理ファイルF21と論理ファイルF22の分割後ファイルを配置する際には、それぞれの制約キー変数に対応するレコード項目の値が等しい部分を、同一の並列実行サーバに配置しなければならないことを示す。
The content of the logical file placement constraint table 4700 is only the
行4710の内容は、図37においてそうであるように、集計FILE(論理ファイルF21に対応)の商品コード(制約キー変数R21−PCODEに対応)と、倉庫ファイル(論理ファイルF22に対応)の商品コード(制約キー変数R22−PCODEに対応)が一致する部分は、同一の並列実行サーバに配置しなければならないことを示す。
As shown in FIG. 37, the contents of the
論理ファイル配置制約を満たさない分割後ファイルの配置は、並列化前と並列化後の並列化対象プログラム3301の処理結果の不一致を引き起こす。例えば、図37において、分割後ファイル3711の第二レコードが、分割後3712の冒頭に移動した場合、商品コード22222の商品の出庫指示が出力されない。
The arrangement of the post-division file that does not satisfy the logical file arrangement constraint causes a mismatch between the processing results of the
図48は、論理ファイル配置制約生成ステップS4502の処理フローである。まず、ファイルアクセス制御構造テーブル4300に基づき、WRITE文を特定する(S4801)。次に、制御依存性テーブル4200に基づき、当該WRITE文をスコープに含む分岐命令文を特定し、その分岐条件を識別する(S4802)。 FIG. 48 is a processing flow of logical file arrangement constraint generation step S4502. First, a WRITE statement is specified based on the file access control structure table 4300 (S4801). Next, based on the control dependency table 4200, a branch instruction statement including the WRITE statement in the scope is specified, and the branch condition is identified (S4802).
例えば、命令文15(WRITE)は、分岐命令文である11(IF)のスコープ内にある。当該IF文の分岐条件に含まれる原子式は「R21−PCODE=R22−PCODE」である。分岐条件は、プログラム構文・依存性解析ステップの出力である条件構文木に基づいて識別する。 For example, the command statement 15 (WRITE) is in the scope of the branch command statement 11 (IF). The atomic formula included in the branching condition of the IF statement is “R21−PCODE = R22−PCODE”. The branch condition is identified based on a conditional syntax tree that is an output of the program syntax / dependency analysis step.
次に、分岐条件が、2つの論理ファイルに関連づいた2つの依存変数同士の比較であることを確認する(S4803)。例では、変数R21−PCODEは論理ファイルF21の入力依存変数であり、変数R22−PCODEは論理ファイルF22の入力依存変数である。変数の依存性は、変数依存性テーブル4400に基づいて確認する。 Next, it is confirmed that the branch condition is a comparison between two dependent variables related to two logical files (S4803). In the example, the variable R21-PCODE is an input dependent variable of the logical file F21, and the variable R22-PCODE is an input dependent variable of the logical file F22. The dependency of the variable is confirmed based on the variable dependency table 4400.
S4803の確認結果がYESの場合は、当該分岐条件を論理ファイル配置制約に変換する(S4804)。例では「R21−PCODE=R22−PCODE」を、論理ファイル配置制約テーブル4700の行4710に変換する。S4803の確認結果がNOの場合は処理を終了する。
If the confirmation result in S4803 is YES, the branch condition is converted into a logical file placement constraint (S4804). In the example, “R21−PCODE = R22−PCODE” is converted into the
上記のS4801からS4804を、S4805とS4806に記載の条件に従って繰り返し実行することで、論理ファイル配置制約の生成が完了する。 By repeatedly executing the above S4801 to S4804 according to the conditions described in S4805 and S4806, the generation of the logical file placement constraint is completed.
以上が、S3405(論理ファイル分割配置制約生成)の説明である。本ステップで生成した論理ファイル分割配置制約情報3210を出力装置に出力する際の例を図49に示す。 The above is the description of S3405 (logical file division arrangement constraint generation). FIG. 49 shows an example when the logical file division arrangement constraint information 3210 generated in this step is output to the output device.
図49の出力例4900では、論理ファイルと、当該論理ファイルに対する分割制約をノードで表現し、論理ファイル間の配置制約をエッジで表現する。ノード4910は論理ファイルF21に対応する。ノード4920は論理ファイルF22に対応する。エッジ4930は、論理ファイルF21と論理ファイルF22間の配置制約に対応する。
In the output example 4900 of FIG. 49, a logical file and a partitioning constraint for the logical file are expressed by nodes, and an arrangement constraint between logical files is expressed by an edge.
図49のような形式で、前記並列化設計支援システム3200が、論理ファイル分割配置制約情報3210を出力することで、前記並列化設計支援システム3200の使用者は、並列化対象プログラム3301を並列化する際の分割制約と配置制約をより効率的に理解することができる。
(6)物理ファイル分割配置制約生成(S3406)
次に、図34のステップS3406(物理ファイル分割配置制約生成)を説明する。図50に処理フローを示す。S5001(物理ファイル分割制約生成)は実施例1におけるステップS2801と同一である。図51に、S2801の出力である物理ファイル分割制約情報250に格納された物理ファイル分割制約テーブルの例5100を示す。集計FILEと倉庫FILEに対する制約キー変数は無く、これらの物理ファイルの分割は、レコードの境界であればどこでも可能であることを示す。
49, the parallelization
(6) Physical file division arrangement constraint generation (S3406)
Next, step S3406 (physical file division arrangement constraint generation) in FIG. 34 will be described. FIG. 50 shows a processing flow. S5001 (physical file division constraint generation) is the same as step S2801 in the first embodiment. FIG. 51 shows an example 5100 of a physical file partitioning constraint table stored in the physical file
S5002は物理ファイル配置制約生成ステップである。図52に、本ステップの出力である、物理ファイル配置制約情報3321を格納する物理ファイル配置制約テーブルの例5200を示す。本テーブルの各行は、2つの入力ファイルの間に存在する配置制約を表現する。
S5002 is a physical file arrangement | positioning restrictions production | generation step. FIG. 52 shows an example 5200 of a physical file placement constraint table that stores physical file
物理ファイル配置制約テーブル5200のカラム5201とカラム5204は物理ファイル名である。当該行に対応する2つの物理ファイルを特定する。カラム5202は、カラム5201で特定される物理ファイルに対する制約キー項目の識別子である。カラム5205は、カラム5204で識別される物理ファイルに対する制約キー項目の識別子である。カラム5203は、2つの物理ファイルの制約キー項目の値を比較する条件である。
以上がS3406(物理ファイル分割配置制約生成)の説明である。本ステップで生成した論理ファイル分割配置制約情報3220を出力装置に出力する際の表現例を図53に示す。 The above is the description of S3406 (physical file division arrangement constraint generation). FIG. 53 shows an expression example when the logical file division arrangement constraint information 3220 generated in this step is output to the output device.
図53の表現例5300では、物理ファイルと、当該物理ファイルに対する分割制約をノードで表現し、物理ファイル間の配置制約をエッジで表現する。ノード5310は集計FILEに対応する。ノード5320は倉庫FILEに対応する。エッジ5330は、それら二者間の配置制約に対応する。
In the expression example 5300 of FIG. 53, a physical file and a partitioning constraint for the physical file are expressed by nodes, and an arrangement constraint between physical files is expressed by an edge.
図53のような形式で、前記並列化設計支援システム3200が、物理ファイル分割配置制約情報3220を出力することで、前記並列化設計支援システム3200の使用者は、並列化対象プログラム3301を並列化する際の分割制約と配置制約をより効率的に理解することができる。
53, the parallelization
以上が、ステップS3406(物理ファイル分割配置制約生成)の説明である。
(7)物理ファイル分割配置テンプレート生成(S3407)
次に、ステップS3407の物理ファイル分割配置テンプレート生成ステップについて説明する。
The above is the description of step S3406 (physical file division arrangement constraint generation).
(7) Physical file division arrangement template generation (S3407)
Next, the physical file division arrangement template generation step of step S3407 will be described.
ステップS3407は、物理ファイル分割配置テンプレート生成ステップである。図54に処理フローを示す。S3001(分割後ファイル名生成)は、実施例1における当該ステップと同一である。本実施例では、入力情報の一部として登録されている多重度2に対して、集計FILEを集計FILE001と集計FILE002に、そして、倉庫FILEを倉庫FILE001と倉庫FILE002にそれぞれ分割するものとする。
Step S3407 is a physical file division arrangement template generation step. FIG. 54 shows a processing flow. S3001 (file name generation after division) is the same as the step in the first embodiment. In the present embodiment, for
ステップS5402は、物理ファイル分割テンプレート生成である。本ステップの処理内容は、実施例1における同名のステップS3002と異なる。本ステップの出力例を図55に示す。 Step S5402 is physical file division template generation. The processing content of this step is different from step S3002 of the same name in the first embodiment. An output example of this step is shown in FIG.
図55は、物理ファイル分割テンプレート情報261を格納する物理ファイル分割テンプレート5500である。各カラムの定義は実施例1と同一である。
FIG. 55 shows a physical
図55の物理ファイル分割テンプレート5500は、集計FILEと倉庫FILEの分割方法を指示する情報を格納する。行の順序は、分割後FILEの生成順に対応する。行5510と行5520は、まず集計FILEを分割し集計FILE001と集計FILE002を生成するよう指示する情報である。その際は、集計FILEの項目[1−5]の値の変更点を境界にする(カラム5502)。
The physical
次に行5520と行5530は、倉庫FILEを分割し倉庫FILE001と倉庫FILE002を生成するよう指示する情報である。その際は、倉庫FILEの分割は項目[9−13]を境界とし(カラム5502)、さらに、倉庫FILE001には、項目[9−13]の値のレンジが、集計FILE001の項目[1−5]の値のレンジを含むことが制約である(カラム5503の境界項目レンジ制約)。
Next,
これは、図37に示すように、もし集計FILE001の項目[9−13](図37では「商品コード」)の値のレンジが{11111,22222}であるならば、倉庫FILE001の項目[1−5](図37では「商品コード」)の値のレンジは{11111,22222}を含まなければならないことを示す。 As shown in FIG. 37, if the range of the value of item [9-13] of aggregate FILE001 (“product code” in FIG. 37) is {11111, 22222}, item [1 of warehouse FILE001] −5] (“product code” in FIG. 37) indicates that the value range must include {11111, 22222}.
図56に、ステップS5402(物理ファイル分割テンプレート生成)の処理フローを示す。まず最初に、複数ある入力ファイルのうち、最初の分割元ファイルを決定し、対応する分割後ファイルについての分割ルールを出力する(S5601)。最初の分割元ファイルは任意に決めても良いし、入力装置を介して前記並列化設計支援システム3200の使用者から取得してもよい。
FIG. 56 shows a processing flow of step S5402 (physical file division template generation). First, the first division source file is determined from among a plurality of input files, and the division rule for the corresponding post-division file is output (S5601). The first division source file may be arbitrarily determined, or may be obtained from a user of the parallelization
分割ルールの出力は以下の手順で行う。まず、当該分割元ファイルに関する制約キー項目を、物理ファイル分割制約テーブル5100と物理ファイル配置制約テーブル5200から取得する。制約キー項目が一致する場合は、当該制約キー項目の識別子を、境界項目識別子(カラム5502)に出力する。片方の制約キー項目が「*」である場合は、もう片方の制約キー項目の識別子をカラム5502の値として出力する。
The division rule is output in the following procedure. First, the restriction key item related to the division source file is acquired from the physical file division restriction table 5100 and the physical file arrangement restriction table 5200. If the constraint key items match, the identifier of the constraint key item is output to the boundary item identifier (column 5502). If one of the constraint key items is “*”, the identifier of the other constraint key item is output as the value in the
例では、集計FILEを最初に分割するよう決定したものとする。集計FILEの制約キー項目識別子は、分割制約からは「*」であり、配置制約からは[1−5]である。よって、後者を出力する。これを、集計FILEの2つの分割後ファイルに対して行う。 In the example, it is assumed that the aggregation FILE is determined to be divided first. The constraint key item identifier of the aggregate FILE is “*” from the partitioning constraint and [1-5] from the placement constraint. Therefore, the latter is output. This is performed on the two divided files of the total file.
次に、未処理の分割元ファイルのうち、処理済みである前記分割元ファイルとの間に配置制約を持つファイルを特定し、次の処理対象分割元ファイルとする(S5602)。ここで、当該分割対象分割元ファイルから生成する分割後ファイルと、前記処理済み分割元ファイルから生成する分割後ファイルとの間の対応関係を確立する。 Next, among unprocessed division source files, a file having an arrangement constraint with the processed division source file is identified and set as the next processing target division source file (S5602). Here, a correspondence relationship is established between the post-division file generated from the division target division source file and the post-division file generated from the processed division source file.
例では、次の処理対象分割元ファイルは倉庫FILEである。倉庫FILE001を、集計FILE001に対応させる。また、倉庫FILE002を、集計FILE002に対応させる。 In the example, the next processing target division source file is a warehouse FILE. Associate warehouse FILE001 with total FILE001. Further, the warehouse FILE002 is made to correspond to the total FILE002.
S5603において、前記処理対象ファイルの分割ルールを出力する。前記処理対象ファイルの分割元ファイルは、前記処理済みファイルの分割元ファイルとの間に配置制約を持つ。当該配置制約から、前記処理対象分割元ファイルの制約キー項目識別子を取得する。 In S5603, the division rule for the processing target file is output. The division source file of the processing target file has an arrangement restriction with the division source file of the processed file. The restriction key item identifier of the process target division source file is acquired from the arrangement restriction.
次に、前記制約キー項目識別子が、前記処理対象分割元ファイルの分割制約における制約キー項目識別子と一致するか、後者が「*」であることを確認する。この条件を満たす場合、境界項目レンジ制約(カラム5503)は、前記対応関係を持つ分割後ファイルの境界識別子である。 Next, it is confirmed whether the constraint key item identifier matches the constraint key item identifier in the partition constraint of the process target partition source file, or the latter is “*”. When this condition is satisfied, the boundary item range constraint (column 5503) is a boundary identifier of the divided file having the correspondence.
例を用いて説明する。倉庫FILE001の分割元ファイルである倉庫FILEは、対応関係にある集計FILE001の分割元ファイルである集計FILEとの間に配置制約を持つ。物理ファイル配置制約テーブル4700基づき、制約キー項目識別子[9−13]を取得する。集計FILEの分割制約は「*」であることを確認し、[9−13]を境界項目識別子(行5530のカラム5502)とする。
This will be described using an example. The warehouse FILE, which is the division source file of the warehouse FILE001, has an arrangement constraint with the aggregation FILE that is the division source file of the aggregation FILE001 having a correspondence relationship. Based on the physical file arrangement restriction table 4700, the restriction key item identifier [9-13] is acquired. It is confirmed that the division constraint of the aggregate FILE is “*”, and [9-13] is set as the boundary item identifier (
行5530の境界項目レンジ制約(カラム5503)は、倉庫FILE001に対応する処理済ファイルである集計FILE001の境界項目(行5510のカラム5502)である。これを「集計FILE001.[1−5]」として、境界項目レンジ制約とする(行5530のカラム5503)。
The boundary item range restriction (column 5503) in the
ステップS5602とS5603を全ての入力ファイルに対して繰り返す(S5604)。以上が、ステップS5402(物理ファイル分割テンプレート生成)の処理フローの説明である。 Steps S5602 and S5603 are repeated for all input files (S5604). The above is the description of the processing flow in step S5402 (physical file division template generation).
ステップ5403は、物理ファイル配置テンプレート生成である。本ステップの出力例を図57に示す。 Step 5403 is physical file arrangement template generation. An output example of this step is shown in FIG.
図57は、物理ファイル配置テンプレート情報3231の例5700である。カラム5701は配置先のノード名(並列実行サーバ名である。カラム5702は、配置すべき分割後ファイル名である。
FIG. 57 shows an example 5700 of physical file arrangement template information 3231. A
行5710と行5720は、集計FILE001と倉庫FILE001を同一ノード(ノード1)に配置することを指示する情報である。同様に、行5730と行5740は、集計FILE002と倉庫FILE002を同一ノード(ノード2)に配置することを指示する情報である。
物理ファイル配置テンプレート5700の生成手順は以下のとおりである。物理ファイル分割テンプレート5500の各行を確認し、境界項目レンジ制約(カラム5503)が「*」以外である行を識別する。そのような行があった場合、当該行の分割後ファイル(カラム5504)と前記境界項目レンジ制約に登場する分割後ファイルを、同一ノードに配置するよう、物理ファイル配置テンプレートの行を出力する。
The generation procedure of the physical
例えば、物理ファイル分割テンプレート5500において、行5530は上記の条件を満たす。これにより、集計FILE001と倉庫FILE001を同一ノードに配置すべきことがわかるので、物理ファイル配置テンプレート5700の行5710と行5720を出力する。
For example, in the physical
前記並列化設計支援システム3200の説明は以上である。当該システム3200の使用者は、物理ファイル分割テンプレート5500と物理ファイル配置テンプレート5700に基づき、並列化対象プログラム3301をファイル分割によって並列化する際の、入力ファイルの分割方法と配置方法を効率的に設計することができる。
This completes the description of the parallelization
例えば前記使用者は、物理ファイル分割テンプレート5500に基づき、集計FILEの分割後ファイルを集計FILE001と集計FILE002に、倉庫FILEの分割後ファイルを倉庫FILE001と倉庫FILE002とした場合の、分割時の留意点を効率的に知ることができる。すなわち、集計FILEを分割する際には、項目[1−5]の値が変化する箇所で分割を行うべきことがわかる。また、倉庫FILEを分割する際には、項目[9−13]の値の変化する箇所で分割を行うべきことがわかる。
For example, based on the physical
さらに、倉庫FILEを分割し倉庫FILE001と倉庫FILE002を生成する際には、倉庫FILE001の項目[9−13]のレンジが、集計FILE001の項目[1−5]のレンジを含むべきことがわかる。かつ、倉庫FILE002の項目[9−13]のレンジが、集計FILE002の項目[1−5]のレンジを含むべきことがわかる。 Further, when the warehouse FILE is divided and the warehouse FILE001 and the warehouse FILE002 are generated, it can be seen that the range of the item [9-13] of the warehouse FILE001 should include the range of the item [1-5] of the aggregate FILE001. In addition, it can be seen that the range of the item [9-13] of the warehouse FILE002 should include the range of the item [1-5] of the total FILE002.
さらに前記使用者は、物理ファイル配置テンプレート5700を参照することで、前記分割後ファイル群を配置する際に守るべき条件を効率的に知ることができる。例えば、集計FILE001と倉庫FILE001は同じノードに配置すべきであり、集計FILE002と倉庫FILE002は同じノードに配置すべきであることがわかる。
Furthermore, the user can efficiently know the conditions to be observed when the divided file group is arranged by referring to the physical
このように、本実施例の並列化設計支援システム3200によれば、前記使用者は、図37に示す並列化の実現のための設計行為を、効率的に行うことができる。
Thus, according to the parallelization
以下に本発明の第三の実施形態について図面を用いて詳細に説明する。第三の実施例においては、連続して実行される2つのプログラムを並列化の範囲として扱う、並列化設計支援システムを説明する。 Hereinafter, a third embodiment of the present invention will be described in detail with reference to the drawings. In the third embodiment, a parallelization design support system will be described in which two consecutively executed programs are handled as a parallelization range.
例えばプログラムAとプログラムBがあり、プログラムAの出力ファイルXがプログラムBの入力ファイルである場合を考える。プログラムAとプログラムBの両方が、ファイル分割による並列化が可能である場合、プログラムAの実行後に、ファイルXを出力する物理ファイルマージプログラムを実行し、その後、プログラムBの実行前に、ファイルXを分割する物理ファイル分割プログラムを実行すると、ファイル分割とマージのオーバーヘッドがかかる。 For example, consider a case where there are a program A and a program B, and an output file X of the program A is an input file of the program B. If both program A and program B can be parallelized by splitting files, after executing program A, execute the physical file merge program that outputs file X, and then execute file X before executing program B. When the physical file division program for dividing the file is executed, overhead of file division and merging is required.
そこで本実施例では、プログラムAとプログラムBの間で、ファイルのマージと再分割を行わない形態での並列化の設計を支援する、並列化設計支援システムを説明する。 Therefore, in this embodiment, a parallelization design support system that supports parallelization design in a form in which file merging and subdivision are not performed between program A and program B will be described.
本実施形態の並列化設計支援システムのブロック図は、第二の実施形態におけるブロック図32と同一であるので省略する。 Since the block diagram of the parallelization design support system of this embodiment is the same as the block diagram 32 of the second embodiment, a description thereof will be omitted.
図58は、本実施形態の並列化設計支援システムが備える、各種データの構成5800を示す。第二の実施例における前記並列化設計支援システム3200のデータ構成3300との差異は以下である。物理ファイル分割配置制約情報5810は、合成前物理ファイル分割制約情報5820と、合成前物理ファイル配置制約情報5830と、合成後物理ファイル分割制約情報5840と、合成後物理ファイル配置制約5850から構成される。
FIG. 58 shows
本実施形態における並列化支援システムの入力情報を説明する。並列化対象プログラム5861は、複数のプログラムを含む。本実施例では、第一の実施例で用いたプログラムP01と、第二の実施例で用いたプログラムP02を、並列化対象プログラム5861とする。
The input information of the parallelization support system in this embodiment will be described. The
図59に、物理ファイル情報5862を格納する物理ファイルテーブルの例5900を示す。図に示すように、本テーブルは、第一の実施例における同テーブル400と、第二の実施例における同テーブル3500の内容を含む。プログラムP01は受注明細FILEを入力とし(行5910)、集計FILEを出力とする(行5920)。プログラムP02は、集計FILEと倉庫FILEを入力とし(行5930と行5940)、出庫指示FILEを出力とする(行5950)。
FIG. 59 shows an example 5900 of a physical file table that stores
図60に、本実施例における並列化の範囲を示す。並列化範囲6010は、プログラム6020(P01)とプログラム6030(P02)である。プログラム6020が出力しプログラム6030が入力とするファイル6040は、並列化範囲6010の中間ファイルである。並列化範囲6010の入力はファイル「受注明細FILE」6050とファイル「倉庫FILE」6060である。並列化範囲6010の出力はファイル6070である。
FIG. 60 shows the range of parallelization in this embodiment. The
図61は、前記並列化範囲6010を、ファイル分割によって多重度2で並列化した結果を示す。物理ファイル分割配置プログラム6170は、入力ファイル6050を、分割後ファイル「受注明細FILE001」6111と分割後ファイル「受注明細FILE002」6112に分割し、それぞれ並列実行サーバ6191と並列実行サーバ6192に配置する。
FIG. 61 shows a result of parallelizing the
さらに、物理ファイル分割配置プログラム6170は、入力ファイル6060を、分割後ファイル「倉庫FILE001」6121と分割後ファイル「倉庫FILE002」6122に分割し、それぞれ並列実行サーバ6191と並列実行サーバ6192に配置する。
Further, the physical file
並列実行サーバ6191は、プログラムP01と同じプログラム6131を、分割後ファイル6111と分割後ファイル6121を入力ファイルとして実行する。プログラム(P01)6131は、中間ファイル(集計FILE)6141を出力する。
The
次に、並列実行サーバ6191は、プログラムP02と同じプログラム6151を、中間ファイル6141を入力ファイルとして実行する。プログラム6151は、出力ファイル「出庫指示FILE」6161を出力する。
Next, the
同様に、並列実行サーバ6192は、プログラムP01と同じプログラム6132を、分割後ファイル6112と分割後ファイル6122を入力ファイルとして実行する。プログラム6132は、中間ファイル(集計FILE)6142を出力する。
Similarly, the parallel execution server 6192 executes the same program 6132 as the program P01 using the divided
次に、並列実行サーバ6192は、プログラムP02と同じプログラム6152を、中間ファイル6142を入力ファイルとして実行する。プログラム6152は、出力ファイル「出庫指示FILE」6162を出力する。
Next, the parallel execution server 6192 executes the
物理ファイルマージプログラム6180は、出力ファイル6161と出力ファイル6162を入力とし、それらをマージしたファイル6070を出力する。
The physical
このような物理ファイル分割配置プログラム6170と、物理ファイルマージプログラム6180を実現することで、並列化範囲6010内のプログラムを改変することなく、並列化範囲6010の並列実行を実現できる。そのためには、並列化範囲6010内のプログラム6020とプログラム6030の動作の知識に基づく設計行為が必要である。
By realizing such a physical file
本実施例は、前記物理ファイル分割配置テンプレート情報5850を出力することで、物理ファイル分割配置プログラム6170の設計を支援する、前記並列化設計支援システムを説明する。
This embodiment describes the parallelization design support system that supports the design of the physical file
以下、本実施形態の並列化設計支援方法の実施手順について、図62の処理フローに従い、図63から図74を用いて説明する。
(1)入力情報登録(S6201)
ステップS6201は、入力情報登録処理である。並列化対象プログラム5761が2つのプログラムから構成されること以外は、実施例1における入力情報登録処理S301と同じである。
(2)プログラム構文・依存性解析(S6202)
ステップS6202は、プログラム構文解析・依存性解析処理である。並列化対象プログラム5761を構成する各プログラムについて、実施例1におけるプログラム構文解析・依存性解析S302を実行する。
(3)ファイルアクセスロジック生成(S6203)
ステップS6203は、ファイルアクセスロジック生成処理である。並列化対象プログラム5761を構成する各プログラムについて、実施例1におけるファイルアクセスロジック生成処理S303を実行する。
(4)並列性判定(S6204)
ステップS6204は、並列性判定処理である。並列化対象プログラム5761を構成する各プログラムについて、実施例1における並列性判定処理S304を実行する。
(5)論理ファイル分割配置制約生成(S6205)
ステップS6205は、論理ファイル分割配置制約生成処理である。並列化対象プログラム5761を構成する各プログラムについて、実施例2における論理ファイル配置制約生成処理S3405を実行する。
Hereinafter, the execution procedure of the parallelization design support method of this embodiment will be described with reference to FIGS. 63 to 74 according to the processing flow of FIG.
(1) Input information registration (S6201)
Step S6201 is an input information registration process. Except that the parallelization target program 5761 is composed of two programs, it is the same as the input information registration processing S301 in the first embodiment.
(2) Program syntax / dependency analysis (S6202)
Step S6202 is a program syntax analysis / dependency analysis process. The program syntax analysis / dependency analysis S302 in the first embodiment is executed for each program constituting the parallelization target program 5761.
(3) File access logic generation (S6203)
Step S6203 is a file access logic generation process. The file access logic generation process S303 in the first embodiment is executed for each program constituting the parallelization target program 5761.
(4) Parallelism determination (S6204)
Step S6204 is a parallelism determination process. The parallelism determination process S304 in the first embodiment is executed for each program constituting the parallelization target program 5761.
(5) Logical file division arrangement constraint generation (S6205)
Step S6205 is logical file division arrangement constraint generation processing. For each program constituting the parallelization target program 5761, the logical file arrangement constraint generation processing S3405 in the second embodiment is executed.
図63に、論理ファイル分割制約情報5860を格納する、論理ファイル分割制約テーブルの例6300を示す。行6310は、実施例1における同テーブル2600の行2610と同一である。行6320と行6330は、実施例2における同テーブル4600の行4610と行4620と同一である。
FIG. 63 shows an example 6300 of a logical file partitioning constraint table that stores logical file
図64に、論理ファイル配置制約情報5870を格納する、論理ファイル配置制約テーブルの例6400を示す。行6410は、実施例2における同テーブル4700の行4710と同一である。
(6)物理ファイル分割配置制約生成(S6206)
ステップ6206は、物理ファイル分割配置制約生成処理である。本ステップの処理フローは、実施例2の同ステップS3405と異なる。
FIG. 64 shows an example 6400 of a logical file placement constraint table that stores logical file
(6) Physical file division arrangement constraint generation (S6206 )
Step 6206 is a physical file division arrangement | positioning restrictions production | generation process. The processing flow of this step is different from that of step S3405 of the second embodiment.
図65に、本実施例の物理ファイル分割配置制約生成ステップ6206の処理フローを示す。ステップS6501は、合成前物理ファイル分割制約生成ステップである。本ステップは、実施例2の物理ファイル分割制約生成ステップS2801を、並列化対象プログラム5761を構成する各プログラムについて実行する。 FIG. 65 shows a processing flow of the physical file division arrangement constraint generation step 6206 of this embodiment. Step S6501 is a pre-synthesis physical file division constraint generation step. In this step, the physical file division constraint generation step S2801 of the second embodiment is executed for each program constituting the parallelization target program 5761.
図66は、合成前物理ファイル分割制約生成ステップS6501の出力である、合成前物理ファイル分割制約情報5820に格納された合成前物理ファイル分割制約テーブルの例6600である。行6610は実施例1における物理ファイル分割制約テーブル2900の行2910と同一である。行6620と行6630は、実施例2における物理ファイル分割制約テーブル5100の行5110と行5120とそれぞれ同一である。
FIG. 66 is an example 6600 of a pre-combination physical file partitioning constraint table stored in the pre-combination physical file
ステップS6502は、合成前物理ファイル配置制約生成ステップである。本ステップは、実施例2の物理ファイル配置制約生成ステップS5002を、並列化対象プログラム5761を構成する各プログラムについて実行する。 Step S6502 is a pre-synthesis physical file arrangement constraint generation step. In this step, the physical file arrangement constraint generation step S5002 of the second embodiment is executed for each program constituting the parallelization target program 5761.
図67は、合成前物理ファイル配置制約生成ステップS6502の出力である、合成前物理ファイル配置制約テーブルの例6700である。行6710は、実施例2における物理ファイル配置制約テーブル4700の行4710と同一である。
FIG. 67 is an example 6700 of a pre-combination physical file placement constraint table that is the output of the pre-combination physical file placement constraint generation step S6502. A
ステップS6503は、合成方法判定ステップである。並列化対象プログラム5761を構成する各プログラムを別々に処理することで生成した、合成前物理ファイル分割制約情報5820と、合成前物理ファイル配置制約情報5830を合成し、並列化範囲5910に対する制約である、合成後物理ファイル分割制約情報5840と、合成後物理ファイル配置制約情報5850を生成する方法を判定する。
Step S6503 is a synthesis method determination step. This is a constraint on the
図68に、S6503の合成方法判定ステップの処理フローを示す。まず、中間ファイル5940に対する、合成前物理ファイル分割制約を識別する(S6801)。本実施例では、中間ファイル5940は集計FILEである。合成前物理ファイル分割制約テーブル6600を参照し、当該ファイルに対する合成前物理ファイル分割制約「*」を識別する。
FIG. 68 shows a processing flow of the synthesis method determination step in S6503. First, the pre-composition physical file division constraint for the
次に、前記合成前物理ファイル分割制約に基づいて、合成方法を判定する(S6802)。例では、当該制約は「*」である。これは、プログラムP02の並列化においては、分割制約が無い(レコードの境界であれば、どこで分割してもよい)ことを示す。プログラムP01が出力する中間ファイル6041と中間ファイル6042が、集計FILEのどのような分割結果であっても問題ない。よって、合成可能と判定する。合成方法は、「配置制約の変換」と判定する。 Next, a synthesis method is determined based on the pre-synthesis physical file division constraint (S6802). In the example, the constraint is “*”. This indicates that there is no partitioning constraint in the parallelization of the program P02 (the partitioning may be performed anywhere as long as it is a record boundary). There is no problem even if the intermediate file 6041 and the intermediate file 6042 output by the program P01 have any division result of the total file. Therefore, it is determined that composition is possible. The combining method is determined as “placement constraint conversion”.
ステップS6504は、物理ファイル分割制約合成ステップである。本ステップの出力例を図69に示す。 Step S6504 is a physical file division | segmentation restrictions synthetic | combination step. An output example of this step is shown in FIG.
図69は、合成後物理ファイル分割制約情報5840を格納する合成後物理ファイル分割制約テーブル6900である。本テーブルは、並列化範囲5910の入力ファイル5950と、入力ファイル5960に対する分割制約を、それぞれ行6910と行6920に示している。
FIG. 69 shows a post-synthesis physical file division constraint table 6900 that stores post-synthesis physical file
本ステップ(S6504)では、ステップ6503で判定した合成方法に従い、合成前物理ファイル分割制約情報5720から合成後物理ファイル分割制約情報5840を生成する。
In this step (S6504), post-synthesis physical file
合成方法が「配置制約の変換」である場合の処理方法を例を用いて説明する。合成前物理ファイル分割制約テーブル6600のうち、並列化範囲5910の入力ファイルに該当する行を、合成後物理ファイル分割制約テーブル6900に転記する。例では、受注明細FILEと倉庫FILEに該当する行(行6610と行6630)を転記する。
A processing method when the synthesis method is “placement constraint conversion” will be described by using an example. The row corresponding to the input file in the
ステップ6505は、物理ファイル配置制約合成ステップである。本ステップの出力例を図70に示す。
図70は、合成後物理ファイル配置制約情報5850を格納する合成後物理ファイル配置制約テーブル7000である。本テーブルは、並列化範囲5910の入力ファイル5950と、入力ファイル5960に対する配置制約を、行7010に示している。
FIG. 70 is a post-synthesis physical file arrangement constraint table 7000 that stores post-synthesis physical file
本ステップ(S6505)では、ステップ6503で判定した合成方法に従い、合成前物理ファイル配置制約情報5830から、合成後物理ファイル配置制約情報5750を生成する。処理フローを図72に示す。
In this step (S6505), post-composition physical file placement constraint information 5750 is generated from pre-combination physical file
合成方法が「配置制約の変換」である場合の処理の概要を、図71に示す。表現例7110は、合成前物理ファイル分割制約情報5820と合成前物理ファイル配置制約情報5830の表現例である。表現例7120は、合成後物理ファイル分割制約情報5840と合成後物理ファイル配置制約情報5850の表現例である。
FIG. 71 shows an outline of processing when the synthesis method is “placement constraint conversion”. An expression example 7110 is an expression example of pre-combination physical file
表現例7120は、3つの物理ファイルとその分割制約を、ノード7111と、ノード7112と、ノード7113で表現する。配置制約を、エッジ7114で表現する。
In the expression example 7120, three physical files and their partitioning constraints are represented by a node 7111, a
表示例7120は、合成後物理ファイル配置制約情報7000の出力例である。並列化範囲6010に対する2つの入力ファイルに対する分割制約をノード7121とノード7122で表現する。配置制約を、エッジ7124で表現する。ノード7122は、並列化範囲6010の中間ファイルを表現する。
A display example 7120 is an output example of the combined physical file
図72に、合成方法が「配置制約の変換」である場合の、物理ファイル配置制約合成ステップ(S6505)の処理フローを示す。 FIG. 72 shows a processing flow of the physical file placement constraint synthesis step (S6505) when the synthesis method is “placement constraint conversion”.
まず、配置制約のうち、中間ファイルの制約キー項目を用いている配置制約を識別する(S7201)。例では、テーブル6700の行6710の配置制約が該当する。用いている中間ファイルと制約キー項目は、集計FILEの[1−5]である。
First, of the placement constraints, the placement constraint using the constraint key item of the intermediate file is identified (S7201). In the example, the arrangement constraint in the
次に、中間ファイルを出力するプログラムにおいて、WRITE文実行時に、前記制約キー項目の値を格納している出力依存変数を識別する(S7202)。例では、プログラムP01の変数R12−PCODEである。これは、プログラムP01に関するファイルレコード識別テーブル1000に基づいて識別可能である。 Next, in the program that outputs the intermediate file, the output dependent variable storing the value of the restriction key item is identified when the WRITE statement is executed (S7202). In the example, it is the variable R12-PCODE of the program P01. This can be identified based on the file record identification table 1000 related to the program P01.
ステップS7203において、当該出力依存変数が間接依存する、入力論理ファイル項目を識別する。間接依存性の識別方法は、実施例1におけるステップS1703と同一である。例では、変数R12−PCODEは、論理ファイルF11の項目[9−13]に間接依存する。間接依存性の識別結果を、図21と類似の構成を用いて、図73に示す。 In step S7203, an input logical file item on which the output dependency variable depends indirectly is identified. The method for identifying indirect dependency is the same as that in step S1703 in the first embodiment. In the example, the variable R12-PCODE indirectly depends on the item [9-13] of the logical file F11. FIG. 73 shows indirect dependency identification results using a configuration similar to that in FIG.
ステップS7204では、前記入力論理ファイル項目を、物理ファイル項目に変換する。例では、「受注明細ファイル.[9−13]」に変換する。これは、プログラムP01における論理ファイルF11は、集計FILEに該当するからである。 In step S7204, the input logical file item is converted into a physical file item. In the example, it is converted to “Order Details File. [9-13]”. This is because the logical file F11 in the program P01 corresponds to the total FILE.
ステップS7201で識別した配置制約に戻り、当該制約における中間ファイルに対する制約キー項目を、ステップS7204において識別した物理ファイルの項目で置換する(S7205)。例では、図7000の行7010がその結果に該当する。また、図71の表現例では、合成前の配置制約エッジ7114を、合成後の配置制約エッジ7124のように書き換える操作に該当する。これらはともに、集計FILE.[1−5]を、受注明細FILE.[9−13]で置換した結果である。
Returning to the placement constraint identified in step S7201, the constraint key item for the intermediate file in the constraint is replaced with the physical file item identified in step S7204 (S7205). In the example,
以上のステップS7201からステップS7205を、中間ファイルに関する物理ファイル配置制約Cを全てについて実行する。全てについて実行済みであれば、本処理を終了する(S7206)。 The above steps S7201 to S7205 are executed for all physical file placement constraints C related to the intermediate file. If it has been executed for all, this processing is terminated (S7206).
上記の処理フローにより、合成後物理ファイル配置制約テーブル7000を出力する。以上が、本実施例のステップS6505の説明である。 The combined physical file placement constraint table 7000 is output by the above processing flow. The above is description of step S6505 of a present Example.
ステップS6207は、物理ファイル分割配置テンプレート生成ステップである。本ステップは、実施例2における同ステップS3407と同一である。 Step S6207 is a physical file division arrangement template generation step. This step is the same as step S3407 in the second embodiment.
ステップ6207の出力結果の例を図74と図75に示す。図74は、物理ファイル分割テンプレート情報5880に格納された物理ファイル分割テンプレートの例7400である。図75は、物理ファイル配置テンプレート情報5890に格納された物理ファイル配置テンプレートの例7500である。
Examples of the output result of step 6207 are shown in FIGS. FIG. 74 shows an example 7400 of a physical file division template stored in the physical file
本実施例の並列化設計支援システムの使用者は、前記物理ファイル分割配置テンプレート情報5750を参照することで、図60に示す並列化を実現するための設計行為を効率的に行うことができる。 The user of the parallelization design support system of the present embodiment can efficiently perform the design act for realizing the parallelization shown in FIG. 60 by referring to the physical file division arrangement template information 5750.
100:並列化設計支援システム
110:記憶装置
120:メモリ
130:CPU
140:通信ポート
150:並列化設計支援プログラム
160:入力装置
170:出力装置
101:入力情報登録部
102:プログラム構文・依存性解析部
103:ファイルアクセスロジック生成部
104:並列性判定部
105:論理ファイル分割制約生成部
106:物理ファイル分割制約生成部
107:物理ファイル分割テンプレート生成部
210:入力情報
220:プログラム構文・依存性情報
230:ファイルアクセスロジック情報
240:論理ファイル分割制約情報
250:物理ファイル分割制約情報
260:物理ファイル分割テンプレート情報
100: Parallelization design support system 110: Storage device 120: Memory 130: CPU
140: Communication port 150: Parallelization design support program 160: Input device 170: Output device 101: Input information registration unit 102: Program syntax / dependency analysis unit 103: File access logic generation unit 104: Parallelism determination unit 105: Logic File division constraint generation unit 106: Physical file division constraint generation unit 107: Physical file division template generation unit 210: Input information 220: Program syntax / dependency information 230: File access logic information 240: Logical file division constraint information 250: Physical file Division constraint information 260: Physical file division template information
Claims (9)
並列化対象プログラムと、並列実行の多重度と、物理ファイル情報を、入力装置で受付けて記憶装置に登録する入力情報登録部と、
前記並列化対象プログラムを解析し、プログラム構文・依存性解析情報を生成するプログラム構文・依存性解析部と、
前記プログラム構文・依存性解析情報に基づき、前記並列化プログラムが行うファイル入出力処理の制御構造の情報と、前記並列化プログラムが行うファイル入出力処理に使用されるプログラム変数による、入出力ファイルへの依存性の情報から構成される、ファイルアクセスロジック情報を生成する、ファイルアクセスロジック生成部と、
前記ファイルアクセスロジック情報に基づき、前記並列化対象プログラムの並列性を判定する、並列性判定部と、
前記プログラム構文・依存性解析情報と、前記ファイルアクセスロジック情報と、前記物理ファイル情報に基づいて、前記並列化対象プログラムに対する入力ファイルを、分割する際の制約の情報を生成する、ファイル分割制約生成部と、
前記ファイル分割制約情報と、前記多重度に基づいて、前記多重度での前記並列化対象プログラムの並列実行を実現するための、前記並列化対象プログラムの入力ファイルの分割方法を指定する情報を生成する、ファイル分割方法指定情報生成部と、
を備える、
ことを特徴とする、プログラムの並列化のためのデータ分割配置方法の設計を支援するコンピュータシステム。 A computer system for supporting the design of a data division and arrangement method for realizing parallelization of a program,
An input information registration unit that receives the parallelization target program, the multiplicity of parallel execution, and physical file information in the input device and registers them in the storage device;
A program syntax / dependency analysis unit that analyzes the parallelized program and generates program syntax / dependency analysis information;
Based on the program syntax / dependency analysis information, information on the control structure of file input / output processing performed by the parallelized program and an input / output file by a program variable used for file input / output processing performed by the parallelized program A file access logic generation unit that generates file access logic information composed of dependency information,
A parallelism determination unit that determines parallelism of the parallelized program based on the file access logic information;
File division constraint generation that generates constraint information for dividing the input file for the parallelized program based on the program syntax / dependency analysis information, the file access logic information, and the physical file information And
Based on the file division constraint information and the multiplicity, information for specifying a method for dividing an input file of the parallelization target program for realizing parallel execution of the parallelization target program at the multiplicity is generated. A file division method designation information generation unit;
Comprising
A computer system that supports the design of a data division arrangement method for parallelizing programs.
並列化対象プログラムが複数の入力ファイルを扱うプログラムである場合に、前記プログラム構文・依存性解析情報と、前記ファイルアクセスロジック情報と、前記ファイル分割方法指定情報に基づいて、前記ファイル分割方法指定情報で指定された方法で生成する分割後ファイルを、並列実行ノードへ配置する際の制約の情報を生成する、ファイル配置制約生成部を備えることと、
前記ファイル分割方法指定情報生成部は、前記ファイル分割制約情報と、前記物理ファイル情報に加え、前記ファイル配置制約情報に基づいて、ファイル分割方法指定情報を生成することと、
前記ファイル配置制約情報と、前記ファイル分割方法指定情報に基づいて、分割後ファイルの配置方法を指定する情報を生成する、ファイル配置方法指定情報生成部を備えること、
を特徴とする、請求項1に記載のコンピュータシステム。 A computer system comprising:
When the parallelization target program is a program that handles a plurality of input files, the file division method designation information based on the program syntax / dependency analysis information, the file access logic information, and the file division method designation information Including a file placement constraint generation unit that generates constraint information when placing the post-split file generated by the method specified in step 1 into a parallel execution node;
The file division method designation information generating unit generates file division method designation information based on the file division constraint information and the file placement constraint information in addition to the physical file information;
A file placement method designation information generating unit that generates information for designating a placement method of the post-division file based on the file placement constraint information and the file division method designation information;
The computer system according to claim 1, wherein:
並列化対象プログラムが、第一のプログラムと、第二のプログラムから構成され、第一のプログラムの出力が、第二のプログラムの入力である場合に、並列化範囲を第一のプログラムの開始から第二のプログラムまでと定義し、
前記ファイル分割制約生成部は、前記並列化範囲を並列化するためのファイル分割制約を生成することと、
前記ファイル配置制約生成部は、前記並列化範囲を並列化するためのファイル配置制約を生成することと、
前記ファイル分割方法指定情報生成部は、前記並列化範囲を並列化するためのファイル分割方法指定情報を生成することと、
前記ファイル配置方法指定情報生成部は、前記並列化範囲を並列化するためのファイル配置方法指定情報を生成すること、
を特徴とする、請求項2に記載のコンピュータシステム。 A computer system comprising:
When the parallelization target program is composed of the first program and the second program, and the output of the first program is the input of the second program, the parallelization range is set from the start of the first program. Define up to the second program,
The file division constraint generation unit generates a file division constraint for parallelizing the parallelization range;
The file placement constraint generator generates a file placement constraint for parallelizing the parallelization range;
The file division method designation information generation unit generates file division method designation information for parallelizing the parallelization range;
The file placement method designation information generating unit generates file placement method designation information for parallelizing the parallelization range;
The computer system according to claim 2, wherein:
プログラムの並列化を実現するためのデータ分割配置方法設計を支援するシステムとして動作させるプログラムであって、
前記プログラムは、
並列化対象プログラムと、並列実行の多重度と、物理ファイル情報を、入力装置で受付けて記憶装置に登録する入力情報登録部と、
前記並列化対象プログラムを解析し、プログラム構文・依存性解析情報を生成するプログラム構文・依存性解析部と、
前記プログラム構文・依存性解析情報に基づき、前記並列化プログラムが行うファイル入出力処理の制御構造の情報と、前記並列化プログラムが行うファイル入出力処理に使用されるプログラム変数による、入出力ファイルへの依存性の情報から構成される、ファイルアクセスロジック情報を生成する、ファイルアクセスロジック生成部と、
前記ファイルアクセスロジック情報に基づき、前記並列化対象プログラムの並列性を判定する、並列性判定部と、
前記プログラム構文・依存性解析情報と、前記ファイルアクセスロジック情報と、前記物理ファイル情報に基づいて、前記並列化対象プログラムに対する入力ファイルを、分割する際の制約の情報を生成する、ファイル分割制約生成部と、
前記ファイル分割制約情報と、前記多重度に基づいて、前記多重度での前記並列化対象プログラムの並列実行を実現するための、前記並列化対象プログラムの入力ファイルの分割方法を指定する情報を生成する、ファイル分割方法指定情報生成部と、
を備える、
ことを特徴とする、プログラムの並列化のためのデータ分割配置方法の設計を支援するプログラム。 Computer
A program that operates as a system that supports design of a data division arrangement method for realizing parallelization of a program,
The program is
An input information registration unit that receives the parallelization target program, the multiplicity of parallel execution, and physical file information in the input device and registers them in the storage device;
A program syntax / dependency analysis unit that analyzes the parallelized program and generates program syntax / dependency analysis information;
Based on the program syntax / dependency analysis information, information on the control structure of file input / output processing performed by the parallelized program and an input / output file by a program variable used for file input / output processing performed by the parallelized program A file access logic generation unit that generates file access logic information composed of dependency information,
A parallelism determination unit that determines parallelism of the parallelized program based on the file access logic information;
File division constraint generation that generates constraint information for dividing the input file for the parallelized program based on the program syntax / dependency analysis information, the file access logic information, and the physical file information And
Based on the file division constraint information and the multiplicity, information for specifying a method for dividing an input file of the parallelization target program for realizing parallel execution of the parallelization target program at the multiplicity is generated. A file division method designation information generation unit;
Comprising
A program that supports the design of a data division and arrangement method for parallelizing programs.
並列化対象プログラムが複数の入力ファイルを扱うプログラムである場合に、前記プログラム構文・依存性解析情報と、前記ファイルアクセスロジック情報と、前記ファイル分割方法指定情報に基づいて、前記ファイル分割方法指定情報で指定された方法で生成する分割後ファイルを、並列実行ノードへ配置する際の制約の情報を生成する、ファイル配置制約生成部を備えることと、
前記ファイル分割方法指定情報生成部は、前記ファイル分割制約情報と、前記物理ファイル情報に加え、前記ファイル配置制約情報に基づいて、ファイル分割方法指定情報を生成することと、
前記ファイル配置制約情報と、前記ファイル分割方法指定情報に基づいて、分割後ファイルの配置方法を指定する情報を生成する、ファイル配置方法指定情報生成部を備えること、
を特徴とする、請求項4に記載のプログラム。 Said program comprising:
When the parallelization target program is a program that handles a plurality of input files, the file division method designation information based on the program syntax / dependency analysis information, the file access logic information, and the file division method designation information Including a file placement constraint generation unit that generates constraint information when placing the post-split file generated by the method specified in step 1 into a parallel execution node;
The file division method designation information generating unit generates file division method designation information based on the file division constraint information and the file placement constraint information in addition to the physical file information;
A file placement method designation information generating unit that generates information for designating a placement method of the post-division file based on the file placement constraint information and the file division method designation information;
The program according to claim 4, wherein:
並列化対象プログラムが、第一のプログラムと、第二のプログラムから構成され、第一のプログラムの出力が、第二のプログラムの入力である場合に、並列化範囲を第一のプログラムの開始から第二のプログラムまでと定義し、
前記ファイル分割制約生成部は、前記並列化範囲を並列化するためのファイル分割制約を生成することと、
前記ファイル配置制約生成部は、前記並列化範囲を並列化するためのファイル配置制約を生成することと、
前記ファイル分割方法指定情報生成部は、前記並列化範囲を並列化するためのファイル分割方法指定情報を生成することと、
前記ファイル配置方法指定情報生成部は、前記並列化範囲を並列化するためのファイル配置方法指定情報を生成すること、
を特徴とする、請求項5に記載のプログラム。 Said program comprising:
When the parallelization target program is composed of the first program and the second program, and the output of the first program is the input of the second program, the parallelization range is set from the start of the first program. Define up to the second program,
The file division constraint generation unit generates a file division constraint for parallelizing the parallelization range;
The file placement constraint generator generates a file placement constraint for parallelizing the parallelization range;
The file division method designation information generation unit generates file division method designation information for parallelizing the parallelization range;
The file placement method designation information generating unit generates file placement method designation information for parallelizing the parallelization range;
The program according to claim 5, wherein:
並列化対象プログラムと、並列実行の多重度と、物理ファイル情報を、入力装置で受付けて記憶装置に登録するステップと、
前記並列化対象プログラムを解析し、プログラム構文・依存性解析情報を生成するプログラム構文・依存性解析ステップと、
前記プログラム構文・依存性解析情報に基づき、前記並列化プログラムが行うファイル入出力処理の制御構造の情報と、前記並列化プログラムが行うファイル入出力処理に使用されるプログラム変数による、入出力ファイルへの依存性の情報から構成される、ファイルアクセスロジック情報を生成する、ファイルアクセスロジック生成ステップと、
前記ファイルアクセスロジック情報に基づき、前記並列化対象プログラムの並列性を判定する、並列性判定ステップと、
前記プログラム構文・依存性解析情報と、前記ファイルアクセスロジック情報と、前記物理ファイル情報に基づいて、前記並列化対象プログラムに対する入力ファイルを、分割する際の制約の情報を生成する、ファイル分割制約生成ステップと、
前記ファイル分割制約情報と、前記多重度に基づいて、前記多重度での前記並列化対象プログラムの並列実行を実現するための、前記並列化対象プログラムの入力ファイルの分割方法を指定する情報を生成する、ファイル分割方法指定情報生成ステップと、
から構成される、ことを特徴とする、プログラムの並列化のためのデータ分割配置方法の設計を支援する方法。 A method for supporting the design of a data division arrangement method for realizing parallelization of a program,
Receiving a parallelization target program, multiplicity of parallel execution, and physical file information in an input device and registering them in a storage device;
A program syntax / dependency analysis step for analyzing the parallelized program and generating program syntax / dependency analysis information;
Based on the program syntax / dependency analysis information, information on the control structure of file input / output processing performed by the parallelized program and an input / output file by a program variable used for file input / output processing performed by the parallelized program A file access logic generation step for generating file access logic information composed of dependency information,
A parallelism determination step for determining parallelism of the parallelized program based on the file access logic information;
File division constraint generation that generates constraint information for dividing the input file for the parallelized program based on the program syntax / dependency analysis information, the file access logic information, and the physical file information Steps,
Based on the file division constraint information and the multiplicity, information for specifying a method for dividing an input file of the parallelization target program for realizing parallel execution of the parallelization target program at the multiplicity is generated. File splitting method designation information generation step,
A method for supporting the design of a data division and arrangement method for parallelizing programs, characterized by comprising:
並列化対象プログラムが複数の入力ファイルを扱うプログラムである場合に、前記プログラム構文・依存性解析情報と、前記ファイルアクセスロジック情報と、前記ファイル分割方法指定情報に基づいて、前記ファイル分割方法指定情報で指定された方法で生成する分割後ファイルを、並列実行ノードへ配置する際の制約の情報を生成する、ファイル配置制約生成ステップを備えることと、
前記ファイル分割方法指定情報生成ステップは、前記ファイル分割制約情報と、前記物理ファイル情報に加え、前記ファイル配置制約情報に基づいて、ファイル分割方法指定情報を生成することと、
前記ファイル配置制約情報と、前記ファイル分割方法指定情報に基づいて、分割後ファイルの配置方法を指定する情報を生成する、ファイル配置方法指定情報生成ステップを備えること、
を特徴とする、請求項7に記載の設計支援方法。 The design support method,
When the parallelization target program is a program that handles a plurality of input files, the file division method designation information based on the program syntax / dependency analysis information, the file access logic information, and the file division method designation information Including a file placement constraint generation step for generating constraint information when placing the post-split file generated by the method specified in step 1 into a parallel execution node;
The file division method designation information generation step generates file division method designation information based on the file division restriction information and the file placement restriction information in addition to the physical file information;
Providing a file placement method designation information generation step for generating information for designating a placement method of the post-division file based on the file placement constraint information and the file division method designation information;
The design support method according to claim 7, wherein:
並列化対象プログラムが、第一のプログラムと、第二のプログラムから構成され、第一のプログラムの出力が、第二のプログラムの入力である場合に、並列化範囲を第一のプログラムの開始から第二のプログラムまでと定義し、
前記ファイル分割制約生成ステップは、前記並列化範囲を並列化するためのファイル分割制約を生成することと、
前記ファイル配置制約生成ステップは、前記並列化範囲を並列化するためのファイル配置制約を生成することと、
前記ファイル分割方法指定情報生成ステップは、前記並列化範囲を並列化するためのファイル分割方法指定情報を生成することと、
前記ファイル配置方法指定情報生成ステップは、前記並列化範囲を並列化するためのファイル配置方法指定情報を生成すること、
を特徴とする、請求項8に記載の設計支援方法。 The design support method,
When the parallelization target program is composed of the first program and the second program, and the output of the first program is the input of the second program, the parallelization range is set from the start of the first program. Define up to the second program,
The file division constraint generation step generates a file division constraint for parallelizing the parallelization range;
The file placement constraint generation step generates a file placement constraint for parallelizing the parallelization range;
The file division method designation information generation step generates file division method designation information for parallelizing the parallelization range;
The file placement method designation information generating step generates file placement method designation information for parallelizing the parallelization range;
The design support method according to claim 8, wherein:
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011083117A JP2014157384A (en) | 2011-04-04 | 2011-04-04 | Parallelization design support system, program, and method |
PCT/JP2011/077974 WO2012137390A1 (en) | 2011-04-04 | 2011-12-02 | Parallelized design assistance system, program, and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011083117A JP2014157384A (en) | 2011-04-04 | 2011-04-04 | Parallelization design support system, program, and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014157384A true JP2014157384A (en) | 2014-08-28 |
Family
ID=46968811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011083117A Withdrawn JP2014157384A (en) | 2011-04-04 | 2011-04-04 | Parallelization design support system, program, and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2014157384A (en) |
WO (1) | WO2012137390A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016079802A1 (en) * | 2014-11-18 | 2016-05-26 | 株式会社日立製作所 | Batch processing system and control method therefor |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870263B (en) * | 2012-12-17 | 2017-03-29 | 上海华虹宏力半导体制造有限公司 | The manufacture method of mask layout minimal physical rule verification file |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3208870B2 (en) * | 1992-10-30 | 2001-09-17 | 株式会社日立製作所 | Evaluation method of data division pattern |
JPH0744508A (en) * | 1993-08-03 | 1995-02-14 | Hitachi Ltd | Program division method |
JP3563907B2 (en) * | 1997-01-30 | 2004-09-08 | 富士通株式会社 | Parallel computer |
-
2011
- 2011-04-04 JP JP2011083117A patent/JP2014157384A/en not_active Withdrawn
- 2011-12-02 WO PCT/JP2011/077974 patent/WO2012137390A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016079802A1 (en) * | 2014-11-18 | 2016-05-26 | 株式会社日立製作所 | Batch processing system and control method therefor |
Also Published As
Publication number | Publication date |
---|---|
WO2012137390A1 (en) | 2012-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7090778B2 (en) | Impact analysis | |
US7716630B2 (en) | Managing parameters for graph-based computations | |
US7877350B2 (en) | Managing metadata for graph-based computations | |
US5293631A (en) | Analysis and optimization of array variables in compiler for instruction level parallel processor | |
CN110998516A (en) | Automated dependency analyzer for heterogeneous programmed data processing systems | |
US20100175049A1 (en) | Scope: a structured computations optimized for parallel execution script language | |
Benelallam et al. | Distributed model-to-model transformation with ATL on MapReduce | |
JP2006236360A (en) | Parallelizing application of script-driven tool | |
EP1918812A1 (en) | A software development system | |
US20080313610A1 (en) | Discoscript: a simplified distributed computing scripting language | |
JPH08512152A (en) | Incremental generation system | |
Jovanovic et al. | Engine independence for logical analytic flows | |
JP2018510445A (en) | Domain-specific system and method for improving program performance | |
CN105204837B (en) | Method and device for realizing logic programming | |
US10545741B2 (en) | Information processing apparatus, method of compiling, and storage medium | |
Gulati et al. | Apache Spark 2. x for Java developers | |
WO2012137390A1 (en) | Parallelized design assistance system, program, and method | |
Cogumbreiro et al. | Memory access protocols: certified data-race freedom for GPU kernels | |
Burgueño et al. | LinTraP: Primitive Operators for the Execution of Model Transformations with LinTra. | |
JP4405571B1 (en) | program | |
CN117234466B (en) | Enterprise management software development method, system, equipment and storage medium | |
US20230359668A1 (en) | Dataflow graph datasets | |
Evans et al. | CircuitFlow: A Domain Specific Language for Dataflow Programming (with appendices) | |
Covert et al. | Learning Cascading | |
Augustine | Automating adaptive maintenance changes with SrcML and LINQ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140902 |