JP2008159019A - プログラムの実行処理装置 - Google Patents
プログラムの実行処理装置 Download PDFInfo
- Publication number
- JP2008159019A JP2008159019A JP2007075759A JP2007075759A JP2008159019A JP 2008159019 A JP2008159019 A JP 2008159019A JP 2007075759 A JP2007075759 A JP 2007075759A JP 2007075759 A JP2007075759 A JP 2007075759A JP 2008159019 A JP2008159019 A JP 2008159019A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- job
- priority
- program
- key
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ジョブ実行に伴うスケジューリング誤差を削減する従来技術においては、処理時間が比較的大きなジョブがある時間帯に偏ることは考慮されていない。例えば、商品の受発注においては、売上の比較的な大きなものなどを含む主力商品のデータ量が大きくなってしまう。このため、処理時間にばらつきが生じてしまい、処理時間が大きなジョブが後半にスケジューリングされた場合には、ジョブ群の終了時に多重度が1の状態となり後続のジョブ群に実行待ちが生じてしまう非効率を防止する。
【解決手段】ジョブのスケジューリングは原則、区分化キーの昇順とし、パラメータで優先指定した区分値を指定した順番で最初に実行する。ジョブの割り当ては資源の空いている順番に順次割り当てる(OS、DC等のスケジューリング通りに行う)優先指定する区分値は直近のジョブログから実行時間(実績)を取得し、パラメータを作成する。
【選択図】図1
【解決手段】ジョブのスケジューリングは原則、区分化キーの昇順とし、パラメータで優先指定した区分値を指定した順番で最初に実行する。ジョブの割り当ては資源の空いている順番に順次割り当てる(OS、DC等のスケジューリング通りに行う)優先指定する区分値は直近のジョブログから実行時間(実績)を取得し、パラメータを作成する。
【選択図】図1
Description
本発明は、電子計算機を用いた並列処理を実現するための分散処理方法及び装置に関し、特に計算資源の利用率を向上し安定的な処理パフォーマンスを得る技術に関する。この中でも特に、商品などの受発注(要求)に際し、並列処理を実行するものに関する。
従来、電子計算機での並列処理を行うものとして、特許文献1がある。特許文献1においては、並列計算機システムにおいて、ジョブ実行に伴うスケジューリング誤差を削減し、計算機資源の利用効率を向上させることを目的とし、以下の構成を取っている。つまり、キューイングシステム32からプロセッサエレメント(PE)に投入されたジョブ41、42は、スケジューラ31による動的スケジューリングにより、他のPEに移動したり、凍結されて外部補助記憶装置23に書き出されたりする。スケジューラ31は、各ジョブの実行残り時間を推定し、移動/凍結コストと比較して、移動/凍結対象のジョブを決定する。
しかしながら、特許文献1においては、処理時間が比較的大きなジョブがある時間帯に偏ることは考慮されていない。例えば、商品の受発注においては、売上の比較的な大きなものなどを含む主力商品のデータ量が大きくなってしまう。このため、商品によって、処理時間にばらつきが生じてしまう。特に、処理時間が非常に大きいジョブが後半にスケジューリングされた場合に並列ジョブ群の終了時に多重度が1の状態となり後続のジョブ群に実行待ちが生じ非効率となる。
そこで、本発明では、以下のような制御を行う。
すなわち、実行キューに処理順序を規定する優先実行区分キーを付与し、これに基づいた順序で実行キーを吐き出す制御を行う。より詳細には、入力される処理要求に対する情報処理を実行するプログラムの実行処理装置において、前記処理要求である実行キューに対し、処理の優先順位を示す優先区分化キーを付与する手段と、前記実行キューを所定の条件を満たすまで、保持する手段と、前記所定の条件を満たすことを検知した場合、前記実行キューを、当該実行キューに付与された前記優先区分キーに従って情報処理されるよう制御する手段とを有することを特徴とするプログラムの実行処理装置である。また、このプログラムの実行処理装置において、前記保持する手段は、前記実行キューを、対応する優先区分キーに従った順序に並べて保持することを特徴とするプログラムの実行処理装置も本発明に含まれる。また、このプログラムの実行処理装置において、前記制御する手段は、前記保持する手段に保持された実行キューを、優先区分キーに従った順序で出力することで、前記優先区分キーに従った順序で情報処理されるよう制御することを特徴とするプログラムの実行処理装置も本発明に含まれる。
すなわち、実行キューに処理順序を規定する優先実行区分キーを付与し、これに基づいた順序で実行キーを吐き出す制御を行う。より詳細には、入力される処理要求に対する情報処理を実行するプログラムの実行処理装置において、前記処理要求である実行キューに対し、処理の優先順位を示す優先区分化キーを付与する手段と、前記実行キューを所定の条件を満たすまで、保持する手段と、前記所定の条件を満たすことを検知した場合、前記実行キューを、当該実行キューに付与された前記優先区分キーに従って情報処理されるよう制御する手段とを有することを特徴とするプログラムの実行処理装置である。また、このプログラムの実行処理装置において、前記保持する手段は、前記実行キューを、対応する優先区分キーに従った順序に並べて保持することを特徴とするプログラムの実行処理装置も本発明に含まれる。また、このプログラムの実行処理装置において、前記制御する手段は、前記保持する手段に保持された実行キューを、優先区分キーに従った順序で出力することで、前記優先区分キーに従った順序で情報処理されるよう制御することを特徴とするプログラムの実行処理装置も本発明に含まれる。
さらに、これらのプログラム実行処理装置において、前記保持する手段は、複数の保持エリアを有し、前記複数の保持エリアそれぞれに、実行キューで実行される情報処理に要する時間が各保持エリアにおいて平均化されるよう分散して保持することを特徴とするプログラムの実行処理装置も本発明に含まれる。
なお、本発明には、上述のプログラム実行処理装置を用いた実行方法や本実行方法をコンピュータに実現させるためのコンピュータプログラムも含まれる。
また、本発明には、以下の態様も含まれる。
・ジョブのスケジューリングは原則、区分化キーの昇順とし、パラメータで優先指定した区分値を指定した順番で最初に実行する。
・ジョブの割り当ては資源の空いている順番に順次割り当てる(OS、DC等のスケジューリング通りに行う)
・優先指定する区分値は直近のジョブログから実行時間(実績)を取得し、パラメータを作成する。
・並列処理を行う際のシステム構成に依らず、任意の多重度、任意のノード数、任意のプロセサ数に対応できる。
・日々のデータ量の変化、周期的(季節性)なデータ量の変化、経年変化によるデータ量の増減に柔軟に対応できる。
・ジョブのスケジューリングは原則、区分化キーの昇順とし、パラメータで優先指定した区分値を指定した順番で最初に実行する。
・ジョブの割り当ては資源の空いている順番に順次割り当てる(OS、DC等のスケジューリング通りに行う)
・優先指定する区分値は直近のジョブログから実行時間(実績)を取得し、パラメータを作成する。
・並列処理を行う際のシステム構成に依らず、任意の多重度、任意のノード数、任意のプロセサ数に対応できる。
・日々のデータ量の変化、周期的(季節性)なデータ量の変化、経年変化によるデータ量の増減に柔軟に対応できる。
すなわち、図13に記載するような制御を行う。
・季節要因で処理データ量が急激に増加した初日において発生する並列ジョブ群の終了時に多重度が1の状態となり後続のジョブ群に実行待ちが生じる問題の改良として、
過去のジョブログの履歴から周期的なデータ量の変化を把握し優先して実行する区分値として保存し、それらを最優先で実行するよう制御し問題を解決する。
・季節要因で処理データ量が急激に増加した初日において発生する並列ジョブ群の終了時に多重度が1の状態となり後続のジョブ群に実行待ちが生じる問題の改良として、
過去のジョブログの履歴から周期的なデータ量の変化を把握し優先して実行する区分値として保存し、それらを最優先で実行するよう制御し問題を解決する。
すなわち、図22に記載するような制御を行う。
本発明によれば、処理時間がかかるジョブの実行順序を入れ替えて構成したことで、並列ジョブ群としての処理時間を短縮できる。
本発明の実施の形態について、図面を用いて説明する。本実施の形態は、キューイングシステムにおけるバッチプログラムのスケジューリングを例に説明するが、本発明はそれに限定されるものではない。
まず、本実施の形態におけるシステム構成図を図1に示す。各コンピュータは、ネットワーク50を介して互いに接続されている。また、各コンピュータは、メモリ、ハードディスクを含む記憶装置20と記憶装置40、CPUなどのジョブ実行装置32、ジョブ実行装置34、ジョブ実行装置35、ジョブ実行装置36をもつ、処理装置10と処理装置30を有し、記憶装置に格納されたプログラム11に従って、処理装置が情報処理を実行するものである。図2及び図3はキューイングプログラム11がキューイングシステム・マネージャ12に対して実行要求をキューへ登録する場合の処理手順の実施の形態を示すフロチャートであり、図4は実行要求をキューへ登録する際の登録順序の決定手順の実施の形態を示すフロチャートである。
以下、本実施の形態の処理内容について、説明する。
まず、図1において、処理装置10は記憶装置20に格納されたキューイングプログラム11を読み込み実行する。キューイングプログラム11は、図2及び図3に示す処理手順に従って処理の実行要求をキューイングシステム・マネージャ12に対して行う。キューイングシステム・マネージャ12は実行要求をキューイングシステム13及びキューイングシステム14に1件ずつ順番に振り分けて登録する。キューイングシステム13及びキューイングシステム14に登録されたリクエストは各々のキューイングシステムに対して括り付いているスケジューラ31及びスケジューラ33により対応するジョブ実行装置32、ジョブ実行装置35、及びジョブ実行装置34、ジョブ実行装置36に割り当てられ実行される。キューイングプログラム11は実行時に記憶装置40上にジョブログ41及びジョブログ42を書き込む。記憶装置20及び記憶装置40には、ジョブログ41及びジョブログ42を記憶装置40から記憶装置20へネットワーク50を中継して情報転送し、ジョブログ23にマージするための手段が格納されている。
まず、図1において、処理装置10は記憶装置20に格納されたキューイングプログラム11を読み込み実行する。キューイングプログラム11は、図2及び図3に示す処理手順に従って処理の実行要求をキューイングシステム・マネージャ12に対して行う。キューイングシステム・マネージャ12は実行要求をキューイングシステム13及びキューイングシステム14に1件ずつ順番に振り分けて登録する。キューイングシステム13及びキューイングシステム14に登録されたリクエストは各々のキューイングシステムに対して括り付いているスケジューラ31及びスケジューラ33により対応するジョブ実行装置32、ジョブ実行装置35、及びジョブ実行装置34、ジョブ実行装置36に割り当てられ実行される。キューイングプログラム11は実行時に記憶装置40上にジョブログ41及びジョブログ42を書き込む。記憶装置20及び記憶装置40には、ジョブログ41及びジョブログ42を記憶装置40から記憶装置20へネットワーク50を中継して情報転送し、ジョブログ23にマージするための手段が格納されている。
次に、図2、図3及び図4のフロチャートに基いてキューイングプログラム11が行う動作を説明する。
(ステップ100)図2で、キューイングプログラム11が起動される。
(ステップ101)起動されたキューイングプログラム11は、図4の処理手順に従って優先実行区分化キー22(図5に示すテーブル)を生成し記憶装置22に格納する。
(ステップ100)図2で、キューイングプログラム11が起動される。
(ステップ101)起動されたキューイングプログラム11は、図4の処理手順に従って優先実行区分化キー22(図5に示すテーブル)を生成し記憶装置22に格納する。
次に、優先実行区分化キー22を決定する処理手順について、図4で、説明する。
(ステップ301)ジョブログ41とジョブログ42をキューイングプログラム11の実行前までにあらかじめマージしておき、基準日(降順)、ジョブID(昇順)、区分化キー(昇順)の順にレコードを並べ替えて、ジョブログ23(図7のテーブル)とする。
(ステップ302)図7のジョブログ23のレコードのうち、基準日とジョブIDが一致するものを、優先して実行する区分化キーの分析に使用するレコードとして抽出する。基準日とジョブIDはキューイングプログラム11の実行時に外部からパラメータで与えられる。図7のテーブルで、ジョブIDが“JBAL0001”と等しく、かつ区分化キーが“001”、“002”、“003”、“090”と等しい4つのレコードが対象として抽出される。
(ステップ301)ジョブログ41とジョブログ42をキューイングプログラム11の実行前までにあらかじめマージしておき、基準日(降順)、ジョブID(昇順)、区分化キー(昇順)の順にレコードを並べ替えて、ジョブログ23(図7のテーブル)とする。
(ステップ302)図7のジョブログ23のレコードのうち、基準日とジョブIDが一致するものを、優先して実行する区分化キーの分析に使用するレコードとして抽出する。基準日とジョブIDはキューイングプログラム11の実行時に外部からパラメータで与えられる。図7のテーブルで、ジョブIDが“JBAL0001”と等しく、かつ区分化キーが“001”、“002”、“003”、“090”と等しい4つのレコードが対象として抽出される。
(ステップ303)ステップ302でジョブログ23から抽出したレコードから、ジョブID、区分化キーを取得し、実行コストテーブル24(図9)に格納する。実行コストテーブル24(図9)の実行コストについては、ステップ302でジョブログ23から抽出したレコードの実行時間を使用し実行コストテーブル24(図9)に格納する。ジョブログ23の実行時間はジョブログ23の書き込み時に、終了日時から開始日時を減算して計算した結果が格納される。
(ステップ304)実行コストテーブル24(図9)の情報を実行コストの降順に並べ替える。(図10となる)
(ステップ305)記憶装置20上に格納されている実行コストの閾値25を読み込む。(図11では閾値は900.000秒を読み込む)
(ステップ311)記憶装置20上に前もって算出し格納されている各優先実行区分化キー(季節要因)63(図21)を読み込み、読んだ順に区分化キーを優先実行区分化キー22(図5)に追加する。
(ステップ305)記憶装置20上に格納されている実行コストの閾値25を読み込む。(図11では閾値は900.000秒を読み込む)
(ステップ311)記憶装置20上に前もって算出し格納されている各優先実行区分化キー(季節要因)63(図21)を読み込み、読んだ順に区分化キーを優先実行区分化キー22(図5)に追加する。
次に、優先実行区分化キー(季節要因)63(図21)の作成手順について、図14で、説明する。
優先実行区分化キー(季節要因)63は、記憶装置20に格納されたパラメータ作成プログラム15を実行し、プログラムを作成する。この処理は他の処理に先駆けて実行してもよい。
(ステップ401)ジョブログ51(図16のテーブル)をパラメータ作成プログラム15の実行前までにあらかじめ、ジョブID(昇順)、区分化キー(昇順)、基準日(降順)の順にレコードを並べ替えて、ジョブログ52(図17のテーブル)とする。
(ステップ402)図17のジョブログ52のレコードのうちジョブIDが一致するものを、優先して実行する区分化キー(季節要因)の分析に使用するレコードとして抽出する。ジョブIDはパラメータ作成プログラム15の実行時に外部からパラメータで与えられる。図17のテーブルで、ジョブIDが“JBAL0001”と等しいレコードがすべて抽出され、ジョブログ53(図18のテーブル)を作成する。
(ステップ403)記憶装置20上に格納されている平均実行コストの閾値(倍率)62(図20のテーブル)を読み込む。倍率として3.000が読み込まれる。
(ステップ404)区分化キーごとの平均実行コストを計算するため、個数を格納する変数nと実行コストの集計を行う実行コスト(累計)をゼロで初期化する。
(ステップ405)ジョブログ53(図18のテーブル)の最初のレコードを読み込む。
(ステップ402)図17のジョブログ52のレコードのうちジョブIDが一致するものを、優先して実行する区分化キー(季節要因)の分析に使用するレコードとして抽出する。ジョブIDはパラメータ作成プログラム15の実行時に外部からパラメータで与えられる。図17のテーブルで、ジョブIDが“JBAL0001”と等しいレコードがすべて抽出され、ジョブログ53(図18のテーブル)を作成する。
(ステップ403)記憶装置20上に格納されている平均実行コストの閾値(倍率)62(図20のテーブル)を読み込む。倍率として3.000が読み込まれる。
(ステップ404)区分化キーごとの平均実行コストを計算するため、個数を格納する変数nと実行コストの集計を行う実行コスト(累計)をゼロで初期化する。
(ステップ405)ジョブログ53(図18のテーブル)の最初のレコードを読み込む。
(ステップ406)ステップ405で読み込んだレコードの区分化キーの値を区分化キー(OLD)に設定する。本例では、区分化キー(OLD)の内容を“001”にする。
ステップ405でジョブログ53のレコードを読めた場合は、平均実行コストテーブル61(図19)にエントリを追加する。ジョブIDが“JBAL0001”、区分化キーが“001”、平均実行コスト(時間)が“0”、最大実行コスト(時間)が“0”のエントリを作成する。
(ステップ407)ジョブログ53(図18のテーブル)が、ファイルの終了かを判定し、ファイルの終了の場合はステップ422を行う。ファイルの終了ではない場合はステップ408を行う。
(ステップ408)既に読み込んでいるジョブログ53(図18)のレコードの終了日時と開始日時からジョブの実行コスト(時間)を計算する。ジョブログ53(図18)の1番目のレコードでは、開始日時が“20時25分30.0秒”、終了日時が“20時25分50.1秒”であり実行時間は“20.1秒”となる。
(ステップ409)読み込み中のジョブログ53(図18)の区分化キーと区分化キー(OLD)を比較し、値が一致しない場合ステップ410行い、値が一致した場合はステップ417を行う。ジョブログ53(図18)の1番目のレコードでは、区分化キーが“001”、区分化キー(OLD)が“001”で一致しステップ417を行う。
(ステップ410)実行コスト(累計)÷nを計算し、平均実行コストテーブル61(図19)の該当するエントリの平均実行コスト(時間)に設定する。
ステップ405でジョブログ53のレコードを読めた場合は、平均実行コストテーブル61(図19)にエントリを追加する。ジョブIDが“JBAL0001”、区分化キーが“001”、平均実行コスト(時間)が“0”、最大実行コスト(時間)が“0”のエントリを作成する。
(ステップ407)ジョブログ53(図18のテーブル)が、ファイルの終了かを判定し、ファイルの終了の場合はステップ422を行う。ファイルの終了ではない場合はステップ408を行う。
(ステップ408)既に読み込んでいるジョブログ53(図18)のレコードの終了日時と開始日時からジョブの実行コスト(時間)を計算する。ジョブログ53(図18)の1番目のレコードでは、開始日時が“20時25分30.0秒”、終了日時が“20時25分50.1秒”であり実行時間は“20.1秒”となる。
(ステップ409)読み込み中のジョブログ53(図18)の区分化キーと区分化キー(OLD)を比較し、値が一致しない場合ステップ410行い、値が一致した場合はステップ417を行う。ジョブログ53(図18)の1番目のレコードでは、区分化キーが“001”、区分化キー(OLD)が“001”で一致しステップ417を行う。
(ステップ410)実行コスト(累計)÷nを計算し、平均実行コストテーブル61(図19)の該当するエントリの平均実行コスト(時間)に設定する。
(ステップ411)平均実行コストテーブル61(図19)の該当するエントリの最大実行時間と平均実行時間×ステップ403で取得した閾値(倍率)を比較し、最大実行時間と等しいかまたは最大実行時間ほうが大きい場合は、ステップ412を行う。それ以外の場合は、ステップ413に進む。
(ステップ412)優先実行区分化キー(季節要因)63(図21)にエントリを追加する。ジョブID、区分化キー、最大実行時間は、平均実行コストテーブル61(図19)の参照中のエントリの値を設定する。
(ステップ413)平均実行コストテーブル61(図19)にエントリを追加する。読み込み中のジョブログ53(図18)のジョブID、区分化キーを平均実行コストテーブル61(図19)のジョブID、区分化キーに設定し、ステップ408で計算した実行コストを平均実行コストテーブル61(図19)の最大実行時間に設定する。その際、平均実行時間は“0”を設定する。
(ステップ414)ステップ408で計算した実行コストを実行コスト(累計)に設定する。
(ステップ415)nを“1”で初期化する。
(ステップ412)優先実行区分化キー(季節要因)63(図21)にエントリを追加する。ジョブID、区分化キー、最大実行時間は、平均実行コストテーブル61(図19)の参照中のエントリの値を設定する。
(ステップ413)平均実行コストテーブル61(図19)にエントリを追加する。読み込み中のジョブログ53(図18)のジョブID、区分化キーを平均実行コストテーブル61(図19)のジョブID、区分化キーに設定し、ステップ408で計算した実行コストを平均実行コストテーブル61(図19)の最大実行時間に設定する。その際、平均実行時間は“0”を設定する。
(ステップ414)ステップ408で計算した実行コストを実行コスト(累計)に設定する。
(ステップ415)nを“1”で初期化する。
(ステップ416)読み込み中のジョブログ53(図18)の区分化キーの値を区分化キー(OLD)に設定する。ステップ421を行う。
(ステップ417)ステップ408で計算した実行コストと平均実行コストテーブル61(図19)の区分化キーが一致するエントリの最大実行時間を比較し、ステップ408で計算した実行コストのほうが大きい場合は、ステップ418を行う。それ以外の場合はステップ419を行う。実行コストは“20.1秒”、最大実行時間は“0秒”となりステップ418を行う。
(ステップ418)平均実行コストテーブル61(図19)の該当するエントリの最大実行時間をステップ408で計算した実行コストで上書きする。
(ステップ419)ステップ408で計算した実行コストを実行コスト(累計)に加算する。実行コストは“20.1秒”、実行コスト(累計)は“0秒”なので実行コスト(累計)が“20.1秒”となる。
(ステップ420)nに1を加算する。ステップ421を行う。nが“0”から“1”になる。
(ステップ417)ステップ408で計算した実行コストと平均実行コストテーブル61(図19)の区分化キーが一致するエントリの最大実行時間を比較し、ステップ408で計算した実行コストのほうが大きい場合は、ステップ418を行う。それ以外の場合はステップ419を行う。実行コストは“20.1秒”、最大実行時間は“0秒”となりステップ418を行う。
(ステップ418)平均実行コストテーブル61(図19)の該当するエントリの最大実行時間をステップ408で計算した実行コストで上書きする。
(ステップ419)ステップ408で計算した実行コストを実行コスト(累計)に加算する。実行コストは“20.1秒”、実行コスト(累計)は“0秒”なので実行コスト(累計)が“20.1秒”となる。
(ステップ420)nに1を加算する。ステップ421を行う。nが“0”から“1”になる。
(ステップ421)ジョブログ53(図18のテーブル)の次のレコードを読み込む。以降、ステップ407を行いファイルの終了になるまで繰り返す。
(ステップ422)実行コスト(累計)÷nを計算し、平均実行コストテーブル61(図19)の該当するエントリの平均実行コスト(時間)に設定する。
(ステップ423)平均実行コストテーブル61(図19)の該当するエントリの最大実行時間と平均実行時間×ステップ403で取得した閾値(倍率)を比較し、最大実行時間と等しいかまたは最大実行時間ほうが大きい場合は、ステップ424を行う。それ以外の場合は、ステップ425を行う。
(ステップ424)優先実行区分化キー(季節要因)63にエントリを追加する。ジョブID、区分化キー、最大実行時間は、平均実行コストテーブル61(図19)の参照中のエントリの値を設定する。
(ステップ425)優先実行区分化キー(季節要因)63(図21)の内容を最大実行時間の降順にソートする。
(ステップ422)実行コスト(累計)÷nを計算し、平均実行コストテーブル61(図19)の該当するエントリの平均実行コスト(時間)に設定する。
(ステップ423)平均実行コストテーブル61(図19)の該当するエントリの最大実行時間と平均実行時間×ステップ403で取得した閾値(倍率)を比較し、最大実行時間と等しいかまたは最大実行時間ほうが大きい場合は、ステップ424を行う。それ以外の場合は、ステップ425を行う。
(ステップ424)優先実行区分化キー(季節要因)63にエントリを追加する。ジョブID、区分化キー、最大実行時間は、平均実行コストテーブル61(図19)の参照中のエントリの値を設定する。
(ステップ425)優先実行区分化キー(季節要因)63(図21)の内容を最大実行時間の降順にソートする。
(ステップ306)実行コストの降順に並べ替え済みの実行コストテーブル24(図10)の最初のエントリを参照し、実行コストを得る。(図10の1180.000秒を得る)
(ステップ307)実行コストテーブル24(図10)のすべてのエントリ情報の参照が終了したかどうかを判定する。終了した場合または終了フラグがオンの場合は、図2のステップ102に進む。終了していない場合は、ステップ308を行う。
(ステップ307)実行コストテーブル24(図10)のすべてのエントリ情報の参照が終了したかどうかを判定する。終了した場合または終了フラグがオンの場合は、図2のステップ102に進む。終了していない場合は、ステップ308を行う。
(ステップ308)実行コストテーブル24(図10)の参照中のエントリの実行コストとステップ305で読み込んだ閾値25を比較し、参照中の実行コストテーブル24の実行コスト(図10のテーブル)≧閾値25(図11のテーブル)の条件が成立した場合は、ステップ309を行う。条件が成立しない場合は、ステップ312を行う。
参照中の実行コストテーブル24の実行コストで1件目の“1180.000秒”及び2件目の“930.000秒”が閾値25の“900.000秒”以上であり条件が成立する。
参照中の実行コストテーブル24の実行コストで1件目の“1180.000秒”及び2件目の“930.000秒”が閾値25の“900.000秒”以上であり条件が成立する。
(ステップ309)参照中の実行コストテーブル24(図10)から取得したジョブIDと区分化キーを、区分化キーの値が優先実行区分化キー(季節要因)63(図21)に存在しない場合、優先実行区分化キー22(図5)に追加する。なお、本追加処理は、区分化キーが“002”と“090”のエントリが優先実行区分化キー22(図5)に追加される。
(ステップ312)終了フラグをオンとし、ステップ310を行う。
(ステップ310)実行コストテーブル24(図10)の次のエントリを参照し、ステップ307に戻り、実行コストテーブル24(図10)のすべてのエントリ情報の参照が終了するまで繰り返す。
(ステップ310)実行コストテーブル24(図10)の次のエントリを参照し、ステップ307に戻り、実行コストテーブル24(図10)のすべてのエントリ情報の参照が終了するまで繰り返す。
次に、優先して実行する区分化キーに該当するトランザクションレコード21(図12)を特定し実行リクエスト情報を編集し、キューイングシステム・マネージャ12に対し、ジョブの実行依頼を行う処理手順について、説明する。
(ステップ102)トランザクションレコード21を区分化キーの昇順に並べ替える。(図12)
(ステップ103)優先して実行する区分化キーの最初の1件を優先実行区分化キー22(図5)から読み込む。図5で優先して実行する区分化キーとして“002”を得る。
(ステップ104)トランザクションレコード21(図12)の最初の1件を読み込む。
図12で、区分化キーが“001”かつ科目が“10”のレコードを得る。
(ステップ102)トランザクションレコード21を区分化キーの昇順に並べ替える。(図12)
(ステップ103)優先して実行する区分化キーの最初の1件を優先実行区分化キー22(図5)から読み込む。図5で優先して実行する区分化キーとして“002”を得る。
(ステップ104)トランザクションレコード21(図12)の最初の1件を読み込む。
図12で、区分化キーが“001”かつ科目が“10”のレコードを得る。
(ステップ105)優先実行区分化キー22(図5)及びトランザクションレコード21(図12)のすべてのレコードの取得が終了したかどうかを判定する。終了した場合は、図3のステップ201に進む。終了していない場合は、ステップ106を行う。
終了判定条件の代案として、(優先して実行する区分化キーの最後のエントリ < トランザクションレコードの区分化キー) または (優先して実行する区分化キーの終わり かつ トランザクションレコードの終わりか?)とすることで、トランザクションレコードの区分化キーが優先して実行する区分化キーの最後のエントリより大きくなるようなトランザクションレコードを空読みせずに済むため効率的である。優先して実行する区分化キーの最後のエントリを判断する方法は、優先実行区分化キー22の生成時にエントリ数を記録し判断する。
終了判定条件の代案として、(優先して実行する区分化キーの最後のエントリ < トランザクションレコードの区分化キー) または (優先して実行する区分化キーの終わり かつ トランザクションレコードの終わりか?)とすることで、トランザクションレコードの区分化キーが優先して実行する区分化キーの最後のエントリより大きくなるようなトランザクションレコードを空読みせずに済むため効率的である。優先して実行する区分化キーの最後のエントリを判断する方法は、優先実行区分化キー22の生成時にエントリ数を記録し判断する。
(ステップ106)ステップ104またはステップ108で取得したトランザクションレコード21(図12)のレコードの区分化キーとステップ103またはステップ109で読み込んだ優先実行区分化キー22(図5)を比較し、読み込んだトランザクションレコード21(図12)のレコードの区分化キー=読み込んだ優先実行区分化キー22(図5)の条件が成立した場合は、ステップ107を行い、次にステップ108を行う。読み込んだトランザクションレコード21(図12)のレコードの区分化キー<読み込んだ優先実行区分化キー22(図5)の条件が成立した場合は、ステップ108を行う。読み込んだトランザクションレコード21(図12)のレコードの区分化キー>読み込んだ優先実行区分化キー22(図5)の条件が成立した場合は、ステップ109を行う。
(ステップ107)取得済みのトランザクションレコード21(図12)から実行リクエスト情報を編集し、キューイングシステム・マネージャ12に対し、ジョブの実行依頼を行う。
(ステップ108)次のトランザクションレコード21を図12から1件読み込む。
(ステップ109)次の優先実行区分化キー22を図5から1件読み込む。
(ステップ107)取得済みのトランザクションレコード21(図12)から実行リクエスト情報を編集し、キューイングシステム・マネージャ12に対し、ジョブの実行依頼を行う。
(ステップ108)次のトランザクションレコード21を図12から1件読み込む。
(ステップ109)次の優先実行区分化キー22を図5から1件読み込む。
次に、優先して実行する区分化キーに該当しないトランザクションレコード21(図12)の実行リクエスト情報を編集し、キューイングシステム・マネージャ12に対し、ジョブの実行依頼を行う処理手順について、説明する。
(ステップ201)優先実行区分化キー22(図5)を区分化キーの昇順に並べ替える。
(ステップ202)ステップ201で並べ替えた優先して実行する区分化キーの最初の1件を読み込む。優先して実行する区分化キーとして“002”を得る。
(ステップ203)トランザクションレコード21(図12)の最初の1件を読み込む。
図12で、区分化キーが“001”かつ科目が“10”のレコードを得る。
(ステップ204)ステップ201で並べ替えた優先実行区分化キー22及びトランザクションレコード21(図12)のすべてのレコードの取得が終了したかどうかを判定する。終了した場合は、ジョブの実行依頼を終了する。終了していない場合は、ステップ205を行う。終了判定条件の代案として、「トランザクションレコードの終わりか?」とすることで優先して実行する区分化キーを終わりまで読む必要がなくなり効率的である。
(ステップ201)優先実行区分化キー22(図5)を区分化キーの昇順に並べ替える。
(ステップ202)ステップ201で並べ替えた優先して実行する区分化キーの最初の1件を読み込む。優先して実行する区分化キーとして“002”を得る。
(ステップ203)トランザクションレコード21(図12)の最初の1件を読み込む。
図12で、区分化キーが“001”かつ科目が“10”のレコードを得る。
(ステップ204)ステップ201で並べ替えた優先実行区分化キー22及びトランザクションレコード21(図12)のすべてのレコードの取得が終了したかどうかを判定する。終了した場合は、ジョブの実行依頼を終了する。終了していない場合は、ステップ205を行う。終了判定条件の代案として、「トランザクションレコードの終わりか?」とすることで優先して実行する区分化キーを終わりまで読む必要がなくなり効率的である。
(ステップ205)ステップ203またはステップ207で取得したトランザクションレコード21(図12)のレコードの区分化キーとステップ202またはステップ208で読み込んだ優先実行区分化キー22を比較し、読み込んだトランザクションレコード21(図12)のレコードの区分化キー<読み込んだ優先実行区分化キー22の条件が成立した場合は、ステップ206を行い、次にステップ207を行う。読み込んだトランザクションレコード21(図12)のレコードの区分化キー=読み込んだ優先実行区分化キー22の条件が成立した場合は、ステップ207を行う。読み込んだトランザクションレコード21(図12)のレコードの区分化キー>読み込んだ優先実行区分化キー22の条件が成立した場合は、ステップ208を行う。
(ステップ206)取得済みのトランザクションレコード21(図12)から実行リクエスト情報を編集し、キューイングシステム・マネージャ12に対し、ジョブの実行依頼を行う。
(ステップ207)次のトランザクションレコード21を図12から1件読み込む。
(ステップ208)次の優先実行区分化キー22をステップ201で並べ替えた優先実行区分化キー22から1件読み込む。
(ステップ207)次のトランザクションレコード21を図12から1件読み込む。
(ステップ208)次の優先実行区分化キー22をステップ201で並べ替えた優先実行区分化キー22から1件読み込む。
最後に、キューイングシステム・マネージャ12に対しジョブの実行依頼が行われると、キューイングシステム13及びキューイングシステム14、スケジューラ31及びスケジューラ33を経由して、順にジョブ実行装置32及びジョブ実行装置34で処理が実行される。
10…処理装置
20…記憶装置
30…処理装置
40…記憶装置
50…ネットワーク
20…記憶装置
30…処理装置
40…記憶装置
50…ネットワーク
Claims (4)
- 入力される処理要求に対する情報処理を実行するプログラムの実行処理装置において、
前記処理要求である実行キューに対し、処理の優先順位を示す優先区分化キーを付与する手段と、
前記実行キューを所定の条件を満たすまで、保持する手段と、
前記所定の条件を満たすことを検知した場合、前記実行キューを、当該実行キューに付与された前記優先区分キーに従って情報処理されるよう制御する手段とを有することを特徴とするプログラムの実行処理装置。 - 請求項1に記載のプログラムの実行処理装置において、
前記保持する手段は、前記実行キューを、対応する優先区分キーに従った順序で保持することを特徴とするプログラムの実行処理装置。 - 請求項2に記載のプログラムの実行処理装置において、
前記制御する手段は、前記保持する手段に保持された実行キューを、優先区分キーに従った順序で出力することで、前記優先区分キーに従った順序で情報処理されるよう制御することを特徴とするプログラムの実行処理装置。 - 請求項1乃至3のいずれかに記載のプログラム実行処理装置において、
前記保持する手段は、複数の保持エリアを有し、前記複数の保持エリアそれぞれに、実行キューで実行される情報処理に要する時間が各保持エリアにおいて平均化されるよう分散して保持することを特徴とするプログラムの実行処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007075759A JP2008159019A (ja) | 2006-12-01 | 2007-03-23 | プログラムの実行処理装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006325131 | 2006-12-01 | ||
JP2007075759A JP2008159019A (ja) | 2006-12-01 | 2007-03-23 | プログラムの実行処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008159019A true JP2008159019A (ja) | 2008-07-10 |
Family
ID=39659822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007075759A Pending JP2008159019A (ja) | 2006-12-01 | 2007-03-23 | プログラムの実行処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008159019A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014199534A (ja) * | 2013-03-29 | 2014-10-23 | 富士通株式会社 | 情報処理装置、処理要求プログラム、および処理要求方法 |
US9157468B2 (en) | 2010-06-04 | 2015-10-13 | S.P.M. Flow Control, Inc. | Packing nut lock and method of use |
-
2007
- 2007-03-23 JP JP2007075759A patent/JP2008159019A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9157468B2 (en) | 2010-06-04 | 2015-10-13 | S.P.M. Flow Control, Inc. | Packing nut lock and method of use |
JP2014199534A (ja) * | 2013-03-29 | 2014-10-23 | 富士通株式会社 | 情報処理装置、処理要求プログラム、および処理要求方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810051B1 (en) | Autoscaling using file access or cache usage for cluster machines | |
US7979864B2 (en) | Apparatus for setting used license of executing job into unused license state and allocating the set unused license to a to be executed job based on priority | |
US8595735B2 (en) | Holistic task scheduling for distributed computing | |
JP5552449B2 (ja) | データ分析及び機械学習処理装置及び方法及びプログラム | |
JP2005108214A (ja) | プラグ可能スケジューラのフレームワーク | |
JPH11353196A (ja) | タイム・スケジュ―ルされたプロセス管理用ガバナ | |
US7681196B2 (en) | Providing optimal number of threads to applications performing multi-tasking using threads | |
CN101727357A (zh) | 用于分配计算中心中资源的方法和装置 | |
CN107977275B (zh) | 基于消息队列的任务处理方法及相关设备 | |
CN111708639A (zh) | 任务调度系统及方法、存储介质及电子设备 | |
US20110023044A1 (en) | Scheduling highly parallel jobs having global interdependencies | |
US8612597B2 (en) | Computing scheduling using resource lend and borrow | |
US20090158294A1 (en) | Dynamic critical-path recalculation facility | |
TWI554945B (zh) | 例行工作的分配方法及應用其之多核心電腦 | |
CN113741961B (zh) | 基于Kubernetes容器编排软件提交大数据计算作业的方法及装置 | |
US10048991B2 (en) | System and method for parallel processing data blocks containing sequential label ranges of series data | |
EP2095276B1 (en) | Method and system for reducing difference in the time of retrieval of data retrieved from different sources | |
JP2012018438A (ja) | トレースシステム | |
US8650571B2 (en) | Scheduling data analysis operations in a computer system | |
US9170839B2 (en) | Method for job scheduling with prediction of upcoming job combinations | |
JP2008107875A (ja) | ジョブ制御装置及びジョブ制御プログラム | |
JP2008159019A (ja) | プログラムの実行処理装置 | |
US8832176B1 (en) | Method and system for processing a large collection of documents | |
JP6753521B2 (ja) | 計算資源管理装置、計算資源管理方法、及びプログラム | |
JP2005107632A (ja) | Eaiサーバおよびeaiサーバのプログラム |