(57)【特許請求の範囲】
【請求項１】
複数の一連の処理手続きの実行を遂行する処理装置において、
使用されているデータセットに関するデータセット一覧表リストを作成し、
連続する処理手続きが使用するデータセットについて、データセットを排他利用する処理手続きの組み合わせを調べてパイプデータセットの適用が可能であるか否かを判断して、適用不可能なデータセットのデータセット一覧表をデータセット一覧表リストから削除し、
データセット名一覧表にある各データセットの使用区間でジョブステップが並列実行可能かを検査して、並列実行不可能なデータセット名一覧表をデータセット名一覧表リストから削除し、
データセット名一覧表リストのパイプデータセット適用可能なデータセットの使用区間をもとに、並列に実行可能なジョブステップ群を同一のグループとして決定する並列化検査手段を備えたこと、
を特徴とする並列処理手続き選定装置。
【請求項２】
上記並列化検査手段は処理手続き命令を解析する処理手続き命令解析手段を備えたこと、
を特徴とする請求項１に記載の並列処理手続き選定装置。
【請求項３】
上記並列化検査手段は複数処理手続き指定の処理手続き命令を読み込む処理手続き読込手段を備えたこと、
を特徴とする請求項１乃至請求項２に記載の並列処理手続き選定装置。
【請求項４】
上記並列化検査手段は検査の結果リストを編集して出力するリスト編集手段を備えたこと、
を特徴とする請求項１乃至請求項３に記載の並列処理手続き選定装置。
【請求項５】
上記処理手続き並列化検査手段からの検査結果をもとに並列処理手続きの実行に必要な処理手続きの実行命令を出力する処理手続き出力手段を備えていること、
を特徴とする請求項１乃至請求項４に記載の並列処理手続き選定装置。
【請求項６】
前記請求項１乃至請求項５に記載の並列化実行処理手段と、その出力により並列実行可能な処理手続きを並列に実行させる処理手続き並列実行手段を設けたことを特徴とする並列処理実行処理装置。
【請求項７】
前記請求項１乃至請求項６に記載の並列化実行処理手段は、ジョブを対象とし、処理手続きとして各ジョブステップを検査することを特徴とする並列処理実行処理装置。
【請求項８】
前記請求項１乃至請求項７に記載の複数処理手続きとして、各手続きの属性をもとに選出した手続き群を対象として並列列実行可能の検査をすること、
を特徴とする並列処理実行装置。
【請求項９】
使用されているデータセットに関するデータセット一覧表リストを作成し、
連続する処理手続きが使用するデータセットについてデータセットを排他利用する処理手続きの組み合わせを調べてパイプデータセットの適用が可能であるか否かを判断して、適用不可能なデータセットのデータセット一覧表をデータセット一覧表リストから削除し、
データセット名一覧表にある各データセットの使用区間でジョブステップが並列実行可能かを検査して、並列実行不可能なデータセット名一覧表をデータセット名一覧表リストから削除し、
データセット名一覧表リストのパイプデータセット適用可能なデータセットの使用区間をもとに、並列に実行可能なジョブステップ群を同一のグループとして決定する並列化検査ステップを備えたことを特徴とする並列処理手続き選定方法。
【請求項１０】
前記並列化検査ステップが処理手続き命令を解析する処理手続き命令解析ステップを備えたこと、
を特徴とする請求項９に記載の並列処理手続き選定方法。
【請求項１１】
前記並列化検査ステップが複数処理手続き指定の処理手続き命令を読み込む処理手続き読込ステップを備えたこと、
を特徴とする請求項９乃至請求項１０に記載の並列処理手続き選定方法。
【請求項１２】
前記並列化検査ステップは検査の結果リストを編集して出力するリスト編集ステップを備えたこと、
を特徴とする請求項９乃至請求項１１に記載の並列処理手続き選定方法。
【請求項１３】
前記処理手続き並列化検査ステップからの検査結果をもとに並列処理手続きの実行に必要な処理手続きの実行命令を出力する処理手続き出力ステップを備えること、
を特徴とする請求項９乃至請求項１２に記載の並列処理手続き選定方法。
【請求項１４】
前記請求項９乃至請求項１３に記載の並列化実行処理ステップと、その出力により並列実行可能な処理手続きを並列に実行させる処理手続き並列実行ステップを設けたことを特徴とする並列処理実行処理方法。
【請求項１５】
前記請求項９乃至請求項１４に記載の上記特許請求の並列化実行処理ステップは、ジョブを対象とし、処理手続きとして各ジョブステップを検査することを特徴とする並列処理実行処理方法。
【請求項１６】
前記請求項９乃至請求項１５に記載の複数処理手続きとして、各手続きの属性をもとに選出した手続き群を対象として並列列実行可能の検査をすることを特徴とする並列処理実行方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は，排他利用したデータセットやパイプデータセットに基付く一連のパラレルな処理手続き群（本願ではこの一連の処理手続きを以下単に「複数ジョブステップＪＣＬ」と呼ぶ）を考慮せずに作成した処理手続き群を対象として、以上のデータセットと処理手続きとの関係を検査し、並列に実行可能な処理手続き（以下単に「ジョブステップ」と呼ぶ）を選定する装置及び方法に関する。
【０００２】
【従来の技術の問題点】
従来から手続きの命令を記述したＪＣＬ（ジョブ制御文）に記述されたジョブステップは記述された順に各ジョブステップが実行されるべき約束であった。複数の命令実行処理部を持つ計算機では、各ジョブのジョブステップが支障がなければ並列に実行されるとシステム効率が向上する。特に先行ジョブステップが出力したデータセットのデータを後続のジョブステップが入力して処理する場合、データセットを直接アクセス記憶装置または、磁気テープ装置を利用せずにシステム記憶に仮想的ファイルを確保しパイプデータセットとして確保する方式が採用される。この時、複数のジョブステップで指定した同一パイプデータセット間の関係や排他利用したデータセットの関係から、並列に実行可能なジョブステップを正確に並列実行させるＪＣＬを生成することはたいへん困難であった。
【０００３】
【発明が解決しようとする課題】
本願は複数ジョブステップのＪＣＬを対象とし、パイプデータセット適用可能検査と排他利用したデータセットの検査結果から並列実行可能なパイプデータセットを選別すること、および、パイプデータセット適用可能データセットの使用区間を検査すること、並列に実行出来るジョブステップのパラレルグループを決定することを目的とする。
【０００４】
また本願は、ＪＣＬを読み、読み込まれたＪＣＬの構文およびデータセットの使用方法を検査し、ジョブステップ並列化を検査し、ジョブステップ並列化の結果を編集および出力してジョブステップを並列に実行させるＪＣＬ生成案を提示することを目的とする。
また本願は、ＪＣＬを読み、読み込まれたＪＣＬの構文およびデータセットの使用方法を検査し、ジョブステップ並列化実行を検査し、複数ジョブステップ用ＪＣＬからジョブステップの並行実行を可能とする並列ジョブステップＪＣＬを生成することを目的とする。
【０００５】
また本願は、ＪＣＬを読み、読み込まれたＪＣＬの構文およびデータセットの使用方法を検査し、この出力により並列にジョブステップの実行を可能とすることを目的とする。
【０００６】
【課題を解決するための手段】
図１は本願実施の概略図であり、この図に沿って解決手段の概略を述べる。図１の１００はジョブステップ並列化検査装置で、１１１は本願で新たに発明した並列化検査手段である。複数ジョブステップＪＣＬ１２０をＪＣＬ読込解析部１０１が読み込み、並列化検査手段１１１が、以下パラレルジョブステップの検査を実行する。
【０００７】
並列化検査手段１１１の各構成要素は以下の様に動作する。データセット名一覧表作成部１０２では、検査するＪＣＬ中で使用されている全てのデータセットに関するデータセット名一覧表リストを作成する。
データセット適用可能検査部１０３では、データセット名一覧表リストを使い、排他利用したデータセットで区切られたパイプデータセットの並列実行適用可能な区間内で、ジョブステップが並列実行可能なデータセットを選びだす。適用不可能なデータセットのデータセット一覧表は削除される。
【０００８】
並列実行可能検査部１０４では、データセット名一覧表リストにある並列実行の適用可能なパイプデータセットの使用区間内で、ジョブステップが並列実行可能かを検査する。並列実行不可能な区間を持つデータセットのデータセット一覧表は削除される。
パラレルグループ決定部１０５では、データセット名一覧表リストのパイプデータセット適用可能なデータセットの使用区間をもとに、並列に実行可能なジョブステップ群を同一のパラレルグループとして決定する。
【０００９】
リスト編集部１０６は、並列実行可能なパラレルグループを印刷用に編集したり、ＪＣＬ出力部の出力を印刷用に編集出力する。
ＪＣＬ出力部１０７は、複数ジョブステップＪＣＬ、または、並列ジョブステップＪＣＬを外部ファイル１４０に出力する。
並列ジョブステップ実行装置１１０はパラレルグループ決定部１０５の出力を直接または、並列ジョブステップＪＣＬ用のファイル１４０を入力として、並列ジョブステップを実行させる。
【００１０】
【作用】
本願は、複数ジョブステップＪＣＬからデータセット名の一覧表を作成し，データセットの使用方法の情報によりパイプデータセットの適用が不可能と判断されるデータセットのデータセット名一覧表が削除され、削除される際にジョブステップ間でのデータセットの排他的使用によりジョブステップの並列実行が不可能となるジョブステップグループ情報が更新されていく。データセット名の一覧表に残ったデータセットの使用開始から終了までの区間の情報と、ジョブステップの並列実行が不可能となるジョブステップグループの情報により、パイプデータセット適用可能なデータセットとパラレルグループの決定が行われる。
【００１１】
更に本願は複数ジョブステップＪＣＬが読み込まれると、ＪＣＬの構文とデータセットの使用方法について検査され、その情報をもとにジョブステップ並列化検査方法によってジョブステップ並列化検査が行われ，その結果から検査結果リストが編集され出力される。
さらに本願は、複数ジョブステップＪＣＬを読込、ＪＣＬの構文とデータセットの使用方法について検査し、その情報をもとにジョブステップ並列化検査方法によってジョブステップ並列化検査を行い、その結果から、入力した複数ジョブステップＪＣＬに修正が加えられパラレルジョブステップとパイプデータセットを適用した並列ジョブステップ指定のＪＣＬに変換され，出力される。
【００１２】
さらに本願は、複数ジョブステップＪＣＬを読込、ＪＣＬの構文とデータセットの使用方法について検査し、並列ジョブステップの実行に必要な情報が作成され、並列化されたジョブを実行させる。
【００１３】
【実施例】
図２はパイプデータセットによるパラレルジョブステップ間のデータの受け渡しを示す図である。
パイプデータセットとは、並列実行するジョブステップ間でのデータの受け渡しに使用するシステム記憶上のデータセットである。
【００１４】
書込み側のジョブステップが作成・出力したデータは、直ちにパイプデータセットを経由して読込み側のジョブステップに渡される。読込み側のジョブステップにデータが渡された後、パイプデータセット内のデータは削除されるため、引継ぎするデータ量がどんなに大量でもシステム記憶上のわずかな領域（６４Ｋバイト〜数１００Ｋバイト）で処理が可能であり、システム記憶の有効利用が図れる。
【００１５】
ジョブステップ１から３の中での最初のパイプデータセットのオープン時（ジョブステップ２が最初にオープンしたとするとその時）に、システム記憶上にパイプデータセット用のシステム記憶ファイルを獲得する、最初のオープン時以外の場合には、パイプデータセット用のシステムファイルへのアクセス環境を整える。
【００１６】
読込み側（例えばジョブステップ２）が先にオープンし読込みを開始したが、書込み側（ジョブステップ１）がまだ動作していなかったり、書込みを開始していない場合には、その読込み処理で書込み側がデータを書き込むのを待つ。
書込み側ではＢ１，Ｂ２，Ｂ３，・・，Ｂｎ，Ｂｎ+1，・・（ブロック単位）の順に、データをパイプデータセットに書込む。データはシステム記憶ファイル上に一時的に蓄積される。
【００１７】
読込み側（ジョブステップ２，ジョブステップ３）は、データが書き込まれると同時に読込み可能となり、Ｂ１，Ｂ２，Ｂ３，・・・の順にデータを読み込む。すべての読込み側ジョブステップには，同じデータが渡る。同一データがすべての読込み側ジョブステップで読み込まれると、そのデータを蓄積したシステム記憶ファイル上の領域が解放される。システム記憶ファイル上の領域はサイクリックに使用される。
【００１８】
データの書き込み時に、パイプデータセットが蓄積データで一杯になっている場合には、読込み側がデータを読み込んでパイプデータセットに空きができるまで書込み側ジョブステップが待つ。また、データの読込み時に、パイプデータセット上にデータがない場合には、書込み側ジョブステップがデータを書き込むまで読込側ジョブステップが待つ。
【００１９】
以上により，書込み側（ジョブステップ１），読込み側（ジョブステップ２，ジョブステップ３）ともに非同期に並列実行しながらデータの受け渡しが可能となる。
表１はデータセットの排他使用とみなすＤＩＳＰパラメタの指定を示している。データセットの排他使用の判定については、ＪＣＬ中のＤＤ文に指定されたＤＩＳＰパラメタによって決定される。データセットを排他使用しているとみなすＤＩＳＰパラメタの指定を以下に示す。
【００２０】
なお、ＤＤ文にＤＩＳＰパラメタが指定されないときは、ＤＩＳＰ＝（ＮＥＷ，ＤＥＬＥＴＥ，ＤＥＬＥＴＥ）が指定されたものとみなされる。この右辺の第１パラメータはデータセットを確保する時の最初の状態であり（ＮＥＷは新規生成，ＯＬＤは既存，ＳＨＲは共用読出）、第２パラメータは正常終了時のデータセットの処置（ＫＥＥＰは保存，ＰＡＳＳは後続ジョブステップ利用、ＤＥＬＥＴＥは削除）、第３パラメータは異常終了時のデータセットの処置（第２と同じ）である。
【００２１】
【表１】
0003755165.tif 000002
図１のデータセット名一覧表作成部１０２では検査するＪＣＬ中で使用されている全てのデータセットに関するデータセット名一覧表と、各データセット名一覧表をつないだデータセット名一覧表リストを作成する。
【００２２】
データセット名一覧表は図３のようにデータセット名，データセットを使用しているジョブステップ番号，ＤＤ文番号を格納するエントリからなり、エントリ数は１つまたは複数である．
１つのデータセット名一覧表中のエントリはジョブステップ番号が昇順になるように並べる。また、データセット名一覧表どうしは先頭エントリのジョブステップ番号が昇順になるように、またジョブステップ番号が等しいときはＤＤ文番号が昇順になるように並べるものとする。
【００２３】
図１のデータセット適用可能検査部１０３ではデータセット名一覧表にあるデータセットについて、パイプデータセット適用不可能なデータセット名一覧表を削除し、そのデータセットを排他使用しているジョブステップ番号の組をジョブステップマトリクスに並列実行不可能なジョブステップのグループとして登録する。
【００２４】
ジョブステップマトリクスは，図４のようにジョブステップ番号が行，列にとってあるマトリクスで、並列実行不可能なジョブステップの組をマトリクス上に印を付けていく。図４の例ではジョブステップ番号２とジョブステップ番号５のジョブステップの組み合わは並列実行不可能なことを示している。ジョブステップマトリクスは初期状態では全てのジョブステップが並列実行可能な状態となっている。
【００２５】
図１の並列実行可能検査１０４ではデータセット名一覧表リストにある各データセットの使用区間でジョブステップが並列実行可能かをジョブステップマトリクスにより検査し、並列実行不可能ならデータセット名一覧表をデータセット名一覧表リストから削除される。
並列実行可能なら、図５に示すような先頭ジョブステップ番号と終了ジョブステップ番号からなる並列実行必須区間と使用区間をあわせた区間で、並列実行可能かを検査し、並列実行可能なら並列実行必須区間を更新し、並列実行不可能ならデータセット名一覧表を削除する。
【００２６】
データセット名一覧表を削除する際には、データセットの排他使用の検査を行い、排他使用しているジョブステップの組をジョブステップマトリクスに登録する。
図１のパラレルグループ決定部１０５ではデータセット名一覧表のパイプデータセット適用可能なデータセットの使用区間と、どのパイプデータセット適用可能なデータセットの使用区間にも属さないジョブステップとを、並列実行可能かをジョブステップマトリクスにより検査してパラレルグループリストを作成し、同一のパラレルグループとして動作可能なジョブステップの組を決定する。
【００２７】
パラレルグループリストは第６図の様にパラレルグループ先頭番号とパラレルグループ終了番号からなるエントリを複数持ち、１つのエントリで示される区間のジョブステップが同一のパラレルグループとして動作可能となっている。
図７〜１０の４っの図は実際にどのような仕組みでデータを受け渡しているかの詳細なフローチャートであり、ジョブステップ並列化検査における手順を示している。以下図７〜１０に従い、図１１の検査対象となるＪＣＬの一例図を例としその処理に沿って説明するが、同時に図１２データセットの検査一覧表，図１３データセットの検査一覧表リストの作成完了時の状態と並び，図１４ジョブステップマトリックス，図１５データセット名一覧表リスト，図１６〜１７並列実行必須区間，図１８データセット名一覧，図１９ジョブマトリックス，図２０並列実行必須区間，図２１〜２８パラレルグループリスト，図２９データセット名の一覧表リストを用いて説明する。また、以下単にステップと言うのは図７〜１０の各フロー構成ステップであり、ジョブステップとは別である。
【００２８】
図８の検査対象となるＪＣＬの一例図であり、ジョブステップ番号１のＤＤ文番号１と，ジョブステップ番号４のＤＤ文番号２と，ジョブステップ番号７のＤＤ文番号１でデータセットＺを定義している。
（図７〜１０）ステップ１はＪＣＬの先頭から使用されているデータセットを調査し、図１２に示すようなデータセット名一覧表を作成する。
【００２９】
同様にしてデータセット＆＆Ａ，＆＆Ｂ，＆＆Ｃ，＆＆Ｄについてもデータセット名一覧表を作成する。データセット名一覧表は先頭エントリのジョブステップ番号の小さい方から、ジョブステップ番号が同一ならＤＤ文番号が小さい方から順に並べる。これでデータセット名一覧表の作成は終了となる。この時点でのデータセット名一覧表とその並びを図１３データセット名一覧表作成終了時の状態と並びに示す。
【００３０】
ステップ２は先頭のデータセット名一覧表のデータセットＺについて，パイプデータセット適用可能検査を行う。ここでパイプデータセット適用不可能とされる条件には、データセットをジョブ内の１ＤＤ文のみで定義している場合、データセットを新規に作成しない場合、１つのジョブステップ中に同一名のデータセットを複数個ＤＤ文で定義している場合等がある。
【００３１】
ここでデータセットＺはジョブステップ番号１，４，７のＤＤ文で，ともにＤＩＳＰ＝ＯＬＤまたはＳＨＲとしていてデータセットを新規に作成していないので、パイプデータセット適用不可能と判定される（ステップ３ＹＥＳ）。
ステップ４のデータセット排他使用検査では、データセット名一覧表の各エントリで示されるＤＤ文で、データセットの排他使用を指定しているかを検査する。データセットＺは先頭のエントリで示されるジョブステップ番号１のＤＤ文でＤＩＳＰ＝ＯＬＤとしているので、排他使用ありと判定される（ステップ５ＹＥＳ）。
【００３２】
ステップ６のジョブステップマトリクス設定では、排他使用しているジョブステップ番号と同一データセット名一覧表中の他のジョブステップ番号の全ての組を、並列実行不可能なジョブステップの組としてジョブステップマトリクスに設定する。データセットＺの場合、ジョブステップ番号１とそれ以外の番号の組、つまりジョブステップ番号１と４の組、１と７の組が並列実行不可能なジョブステップの組として設定される。ジョブステップマトリクスに設定する際に、例えば２と４の組と４と２の組は同じ意味を持つので、ジョブステップ番号の小さい方を行、大きい方を列の番号として設定する、よってドットで示した部分は未使用部分である。
【００３３】
この時点でのジョブステップマトリクスの状態は図１４に示すように、ジョブステップ１の行はジョブステップ４と７の位置に並列実行不可の表示を付加する。
ステップ７でデータセットＺについてのデータセット名一覧表はパイプデータセット適用可能ではなく、又データセットのステップ間での排他使用の検査が終了したのでデータセット名一覧表リストから削除する。
【００３４】
ステップ８の終了検査では、全てのデータセット名一覧表の検査が終了していないと（ステップ８ＮＯ）、続いてデータセット＆＆Ａについてパイプデータセット適用可能検査を行う。データセット＆＆Ａはパイプデータセット適用不可能となる条件に当てはまらない（ステップ３ＮＯ）。同様にして、データセット＆＆Ｂ，＆＆Ｃ，＆＆Ｄの順にパイプデータセット適用可能検査を行う。データセット＆＆Ｂ，＆＆Ｃ，＆＆Ｄともにパイプデータセット適用不可能になる条件に当てはまらないのでパイプデータセット適用可能となる。
【００３５】
この時点でのデータセット名一覧表とその並びの状態を第１５図データセット名一覧表リストに示す。ジョブステップマトリクスの状態は、パイプデータセット適用不可能となるデータセットがデータセットＺ以外にはないので、第１１図の状態は変化しない。
ステップ８で全てのデータセット名一覧表の検査が終了すると、ステップ９で並列実行必須区間を初期化する。初期化した時点での並列実行必須区間は図１６並列実行必須区間で示す様に先頭ジョブステップも最終ジョブステップも共に第１ジョブステップの値となっている。
【００３６】
ステップ１０の並列実行可能検査では、データセット＆＆Ａの使用区間で、区間内のジョブステップが並列実行可能か検査する。データセット＆＆Ａの使用区間は、データセット名一覧表の先頭エントリと最終エントリのジョブステップ番号から、ジョブステップ番号１から３までとなるので（これを使用区間（１，３）とする）、ジョブステップマトリクスでジョブステップ番号１と２，１と３，２と３の組が全て並列実行可能となっていれば、データセット＆＆Ａの使用区間（１，３）でジョブステップが並列実行可能となる。
【００３７】
この場合、データセット＆＆Ａの使用区間内では全てのジョブステップが並列実行可能と判定される（ステップ１１ＹＥＳ）。
また、並列実行必須区間は（１，１）で、データセット＆＆Ａの使用区間は（１，３）なので、区間は重複していると判定される（ステップ１２ＹＥＳ）。
ステップ１３は重複した区間を合わせて１つの区間としたときに、その区間内のジョブステップが全て並列実行可能かを検査する。並列実行必須区間（１，１）は使用区間（１，３）に含まれているため、２つの区間を合わせた区間内のジョブステップは明らかに並列実行可能となる（ステップ１４ＹＥＳ）。
【００３８】
ステップ１５は並列実行必須区間の更新処理を行う。並列実行必須区間の終了ジョブステップ番号の１とデータセット使用区間の終了ジョブステップ番号の３と比較して大きい方の３を並列実行必須区間の終了ジョブステップ番号とする。
この時点での並列実行必須区間の状態を図１７に示す。
ステップ２０ではまだデータセット＆＆Ｂ，＆＆Ｃ，＆＆Ｄについての検査が終了していないので（ＮＯ）、ステップ１０にもどり次のデータセット＆＆Ｂについて並列実行可能検査を行う。
【００３９】
データセット＆＆Ａと同様にしてジョブステップマトリクスを検査すると、ジョブステップ番号２と３，２と４，３と４が並列実行可能なので、データセット＆＆Ｂの使用区間（２，４）では、全てのジョブステップが並列実行可能となる（ステップ１０，１１）。また、ステップ１３では、並列実行必須区間（１，３）と使用区間（２，４）はジョブステップが重複するので（ステップ１２ＹＥＳ）、２つの区間を合わせた区間（１，４）で全てのジョブステップが並列実行可能か検査する。ところが、ジョブステップマトリクスではジョブステップ番号１と４が並列実行不可能となっているので（ステップ１４ＮＯ）、データセット＆＆Ｂについてステップ１６でデータセット排他使用検査を行う。
【００４０】
ステップ１７でデータセット＆＆Ｂは、ジョブステップ番号２，４で排他使用（ＤＩＳＰ＝ＮＥＷまたはＯＬＤ）なので（ＹＥＳ）、排他使用しているジョブステップ番号とデータセット名一覧表中の他の全てのジョブステップ番号の組（ジョブステップ番号２，４の組）を、並列実行不可能なジョブステップとしてジョブステップマトリクスにステップ１８で登録し、データセット＆＆Ｂのデータセット名一覧表をデータセット名一覧表リストからステップ１９で削除する。
【００４１】
この時点でのデータセット名一覧表リストを図１８に、ジョブステップマトリクスの状態を図１９に示す。並列実行必須区間は図１７のままで変化はない。
データセット＆＆Ｃ，＆＆Ｄについての検査は終了していないので（ステップ２０ＮＯ）、次のデータセット＆＆Ｃについて、ステップ１０以下の処理を行う。
【００４２】
ジョブステップマトリクスからジョブステップ番号４と５は並列実行可能となるので、データセット＆＆Ｃの使用区間（４，５）では全てのジョブステップが並列実行可能となり（ステップ１１ＹＥＳ）、並列実行必須区間（１，３）と使用区間（４，５）はジョブステップが重複しないので（ステップ１２ＮＯ）、使用区間を新たな並列実行必須区間とする（ステップ１５）。
【００４３】
この時点での並列実行必須区間は，図２０で示す状態になっている。
データセット＆＆Ｄについての検査が終了していないので（ステップ２０ＮＯ）、データセット＆＆Ｄについてステップ１０以下の処理を行う。
図１９ジョブステップマトリクスからジョブステップ番号５と６は並列実行可能となるので、データセット＆＆Ｄの使用区間（５，６）では全てのジョブステップが並列実行可能となる（ステップ１１ＹＥＳ）。
【００４４】
並列実行必須区間（４，５）と使用区間（５，６）はジョブステップが重複するので（ステップ１２ＹＥＳ）、２つを合わせた区間（４，６）で全てのジョブステップが並列実行できるかジョブステップマトリクスを検査する。ジョブステップ番号４と５，４と６，５と６は並列実行可能なので、区間（４，６）では全てのジョブステップが並列実行可能となり（ステップ１４でＹＥＳ）、並列実行必須区間の終了ジョブステップ番号を６に更新する（ステップ１５）。
【００４５】
全てのデータセット名一覧表を検査終了したので（ステップ２０ＹＥＳ）、ステップ１８のジョブステップマトリクス設定を行ったか検査する。データセット＆＆Ｂを検査した際にジョブステップマトリクスを更新したので（ステップ２１ＹＥＳ）、ステップ９以下の処理を再び行う。
ステップ９の並列実行必須区間初期化処理後のデータセット名一覧表は図１８に、ジョブステップマトリクスは図１９、並列実行必須区間は図１６の状態になっている。
【００４６】
全てのデータセット名一覧表についてステップ１０から２０の処理を行うと、削除されるデータセット名一覧表や，ジョブステップマトリクスを更新することなくステップ２０まで終了するので（ステップ２１ＮＯ）、ステップ２２以下の処理に進む。
ステップ２２はパラレルグループリストを初期化し処理中エントリとする。この時点でのパラレルグループリストの状態を図２１に示す。
【００４７】
データセット＆＆Ａのデータセット名一覧表を検査し、データセットの使用区間と処理中エントリが示すグループ区間が重複するか検査する（ステップ２３）。
データセットの使用区間（１，３）とグループ区間（１，１）はジョブステップが重複するので（ステップ２４ＹＥＳ）、処理中エントリのパラレルグループ終了番号をデータセットの使用区間の終了ジョブステップ番号で更新する。この時点でのパラレルグループリストの状態を図１９に示す。
【００４８】
検査していないデータセット名一覧表があるので（ステップ２６ＮＯ）、残りのデータセット名一覧表について検査する。データセット＆＆Ｂは使用区間（４，５）がデータセット＆＆Ｃは使用区間（５，６）がグループ区間（１，３）とジョブステップが重複しないので（ステップ２４ＮＯ）、処理中エントリの更新は行わない。  全てのデータセット名一覧表を検査したので（ステップ２６ＹＥＳ）、処理中エントリのパラレルグループ終了番号が最終ジョブステップ番号と等しいか検査する。最終ジョブステップ番号は７で等しくないので（ステップ２７ＮＯ）、次のエントリを処理中エントリのパラレルグループ終了番号＋１の値で初期化し、次エントリを処理中エントリとする（ステップ２８）。この時点でのパラレルグループリストの状態を図２３に示す。
【００４９】
再度、全てのデータセット名一覧表について、ステップ２３から２６の処理を行う。データセット＆＆Ａの使用区間（１，３）は処理中エントリのグループ区間（４，４）とジョブステップが重複しないが、データセット＆＆Ｂの使用区間（４，５）のジョブステップが重複するので処理中エントリを更新する。更新後のパラレルグループリストの状態を図２４に示す。
【００５０】
データセット＆＆Ｃの使用区間（５，６）もグループ区間（４，５）と重複するので処理中エントリを更新する。更新後のパラレルグループリストを図２５に示す。
全てのデータセット名一覧表を検査したが、処理中エントリのパラレルグループ終了番号が最終ジョブステップ番号の７に等しくないので、次のエントリを処理中エントリのパラレルグループ終了番号＋１の値で初期化し、次エントリを処理中エントリとする。この時点でのパラレルグループリストの状態を図２６に示す。
【００５１】
再度、全てのデータセット名一覧表について、ステップ２３から２６の処理を行う。処理中エントリのグループ区間（７，７）と重複するデータセットの使用区間はないので、処理中エントリの更新はされない。処理中エントリのパラレルグループ終了番号が最終ジョブステップ番号と等しくなるので（ステップ２７ＹＥＳ）、処理中エントリを先頭のエントリにして（ステップ２９）、ステップ３０以下の処理を行う。この時点でのパラレルグループリストの状態を図２７に示す。
【００５２】
処理中エントリのグループ区間（１，３）と次エントリのグループ区間（４，６）を合わせた区間で、並列実行可能かジョブステップマトリクスをステップ３０で検査する。
ジョブステップ番号１と４，２と４の組が並列実行不可能となり、２つのグループ区間を合わせた区間では並列実行不可能と判定されるので（ステップ３１ＮＯ）、ステップ３２で処理中エントリを次エントリに設定する。
【００５３】
全エントリの処理を終えていないので（ステップ３５ＮＯ）、ステップ３１に戻り処理を続ける。
処理中エントリのグループ区間（４，６）と次エントリのグループ区間（７，７）を合わせた区間で、並列実行可能かジョブステップマトリクスを検査する。
並列実行不可能となるジョブステップの組がないので、２つのグループ区間を合わせた区間で並列実行可能となる（ステップ３１ＹＥＳ）。
【００５４】
処理中エントリのグループ区間と次エントリのグループ区間を合わせた区間を、ステップ３３で処理中エントリの新たなグループ区間とし、次エントリを削除する（ステップ３４）。この時点でのパラレルグループリストの状態を図２８に示す。
処理中エントリが最終エントリになり、全エントリの処理が終了したので（ステップ３５ＹＥＳ）、ステップ３６でパラレルグループリスト内でパラレルグループ先頭番号とパラレルグループ終了番号が等しくなっている単独ジョブステップのエントリを削除する。今回は単独ジョブステップのエントリが存在しないので。パラレルグループリストは変化しない。
【００５５】
以上で，ジョブステップの並列化検査は終了となる．最終的なパラレルグループリストの状態は図２８、データセット名一覧表は図２９に示す。
この検査結果を用いれば、ＪＣＬのどの部分を変更すればパラレルジョブステップとパイプデータセットを適用可能かわかるので、検査結果リストやパラレルジョブステップの表示や出力、パイプデータセットを適用した複数ジョブステップ指定のＪＣＬに変換等が行える。例として挙げたＪＣＬでは、データセット名一覧表にあるデータセット＆＆Ａ，＆＆Ｃ，＆＆Ｄがパイプデータセット適用可能データセットとなる。データセット＆＆Ａにパイプデータセットを適用するならば、ジョブステップ番号１，ＤＤ文番号２とジョブステップ番号３，ＤＤ文番号１のＤＤ文を変更すればよい。また、パラレルグループリストの各エントリで示されるジョブステップ番号１から３，４から７の区間がそれぞれ並列実行可能なパラレルグループとなるので、各ジョブステップ番号のＥＸＥＣ文にパラレルグループの指定をすればよいと分かる。この検査結果を用いて出力した検査結果リストの例を図３０に示す。図３０はで、ＪＣＬを変更する場合に修正が必要になる行に対し「＜＝」の記号より右側に修正する内容を示している。ＰＡＲＡＧＲＰの項はパラレルグループ名で、パラレルグループの指定をする必要があることを示している。パラレルグループ名が同一になっているジョブステップが同一のパラレルグループとなる。次のＰＩＰＥの項はパイプデータセット名で、パイプデータセットの指定をする必要があることを示している。パラレルグループ名はパラレルグループリストのエントリ番号の前にＧを付した形式、パイプデータセット名はデータセット名一覧表に通番を付し、その通番の前にＰを付した形式としている。
【００５６】
図３１は並列ジョブステップ指定用に変換出力されたＪＣＬの例で、図１の並列ジョブステップＪＣＬ１４０に出力されたＪＣＬの一例を示しており、各ジョブステップ制御文に新たにパラレルグループのパラメータとしてＰＡＲＡＧＲＰ＝Ｇ００１，ＰＡＲＡＧＲＰ＝Ｇ００２が付加されている。また、データセット名をパイプデータセット名に変更し、ＵＮＩＴパラメータを付加する。
【００５７】
以上本願では処理手続きとしてはジョブステップを対象とし、並列実行する一連の処理手続きの単位としてはジョブを想定して説明したが本願はこれに限られる物ではなく複数の連続したプロセスを複数の処理装置で実施する場合には応用可能である。
従って、処理手続きとして並列実行の検査対象となる処理手続きは必ずしも連続している必要はなく、飛び飛びに選択された手続きであってもかまわない。また、その手続きの選択はジョブの単位とは限らず、手続きの属性（種類、実行時間帯、利用資源、所有者、所属、等）を考えた手続き群を対象として、並列実行可能な手続きを選定することができる。
【００５８】
【発明の効果】
ジョブステップ並列化検査装置及び方法により、複数ジョブステップ用のＪＣＬを対象とし、排他使用のデータセットおよびパイプデータセットを検査し、並列実行可能なジョブステップのパラレルグループを決定すること、決定したパラレルジョブステップを使用したＪＣＬの生成や、決定したパラレルジョブステップを直接実行させることができるようになった。特に排他使用のデータセットとパイプデータセットの複合的な解析により、複雑な並列実行ジョブステップの実施が簡易に実行可能となった。
【図面の簡単な説明】
【図１】本願発明の構成図である。
【図２】パイプデータセットとパラレルジョブステップ説明図である。
【図３】本願発明のデータセット名一覧表リストの図である。
【図４】本願発明のジョブステップマトリクスの図である。
【図５】本願発明の並列実行必須区間の図である。
【図６】本願発明のパラレルグループリストの図である。
【図７】本願発明の構成フローチャート（その１）である。
【図８】本願発明の構成フローチャート（その２）である。
【図９】本願発明の構成フローチャート（その３）である。
【図１０】本願発明の構成フローチャート（その４）である。
【図１１】複数ジョブステップのＪＣＬの例を示す図である。
【図１２】データセットＺについてのデータセット名の一覧表を示す図である。
【図１３】データセット名一覧表リストの図である。
【図１４】ジョブステップマトリクスの図である。
【図１５】データセット名一覧表リストの図である。
【図１６】並列実行必須区間の図である。
【図１７】並列実行必須区間の図である。
【図１８】データセット名一覧リストの図である。
【図１９】ジョブステップマトリクスの図である。
【図２０】並列実行必須区間の図である。
【図２１】パラレルグループリストの図である。
【図２２】パラレルグループリストの図である。
【図２３】パラレルグループリストの図である。
【図２４】パラレルグループリストの図である。
【図２５】パラレルグループリストの図である。
【図２６】パラレルグループリストの図である。
【図２７】パラレルグループリストの図である。
【図２８】パラレルグループリストの図である。
【図２９】データセット名一覧表リストの図である。
【図３０】診断結果リストの例を示す図である。
【図３１】並列ジョブステップ用ＪＣＬの例を示す図である。
【図１】
0003755165.tif 000003
【図２】
0003755165.tif 000004
【図３】
0003755165.tif 000005
【図４】
0003755165.tif 000006
【図５】
0003755165.tif 000007
【図６】
0003755165.tif 000008
【図７】
0003755165.tif 000009
【図８】
0003755165.tif 000010
【図９】
0003755165.tif 000011
【図１０】
0003755165.tif 000012
【図１１】
0003755165.tif 000013
【図１２】
0003755165.tif 000014
【図１３】
0003755165.tif 000015
【図１４】
0003755165.tif 000016
【図１５】
0003755165.tif 000017
【図１６】
0003755165.tif 000018
【図１７】
0003755165.tif 000019
【図１８】
0003755165.tif 000020
【図１９】
0003755165.tif 000021
【図２０】
0003755165.tif 000022
【図２１】
0003755165.tif 000023
【図２２】
0003755165.tif 000024
【図２３】
0003755165.tif 000025
【図２４】
0003755165.tif 000026
【図２５】
0003755165.tif 000027
【図２６】
0003755165.tif 000028
【図２７】
0003755165.tif 000029
【図２８】
0003755165.tif 000030
【図２９】
0003755165.tif 000031
【図３０】
0003755165.tif 000032
【図３１】
0003755165.tif 000033