JP6349837B2 - スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム - Google Patents

スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP6349837B2
JP6349837B2 JP2014062062A JP2014062062A JP6349837B2 JP 6349837 B2 JP6349837 B2 JP 6349837B2 JP 2014062062 A JP2014062062 A JP 2014062062A JP 2014062062 A JP2014062062 A JP 2014062062A JP 6349837 B2 JP6349837 B2 JP 6349837B2
Authority
JP
Japan
Prior art keywords
request
stage
job
information
map
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014062062A
Other languages
English (en)
Other versions
JP2015185003A (ja
Inventor
直記 片岡
直記 片岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014062062A priority Critical patent/JP6349837B2/ja
Publication of JP2015185003A publication Critical patent/JP2015185003A/ja
Application granted granted Critical
Publication of JP6349837B2 publication Critical patent/JP6349837B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、演算処理において複数のジョブをスケジューリングする技術分野に関する。
大規模な計算センターでは、高性能なベクトル型のスーパーコンピュータや汎用のプロセッサを備えたスカラクラスタを多数備え、これらシステムが連携して一つの大きな演算処理を行うことが知られている。このシステムでは、例えば、演算処理を効率よく行うことを目的として、しばしばワークフローが用いられる。尚、以下の説明において、本願では、ワークフローを「WF(Workflow)」と略記する。
ここで、本願出願に先立って存在する代表的な関連技術としては、例えば、特許文献1がある。
特許文献1は、ジョブ管理装置、ジョブ管理方法及びプログラムに関する技術を開示する。特許文献1に開示されたジョブ管理装置は、投入されたジョブの実行に必要となる計算資源(リソース)要件を満たす仮想ノードを当該ジョブに割り当てる。また、当該ジョブ管理装置は、仮想ノードが要求するリソースを有する物理ノードを選択すると共に、その選択した物理ノードを当該ジョブに割り当てる。当該ジョブ管理装置は、物理ノードを選択するに際して、物理ノードのリソースだけでなく、ノード間の構成要件を示す情報に基づき当該物理ノードを選択する。これにより、特許文献1は、クラスタシステムにおいて実行するジョブに割り当てるノード構成の柔軟性とシステムの性能とを向上させることができる。
特開2013−210833号公報
ところで、WFを用いたスケジューリングを可能とするシステムでは、WFの進行に沿い、前工程におけるリクエストの終了を待って逐次的にリクエストをアサインすることが知られている。ところが、通常のジョブ(通常ジョブ)とWFのジョブ(WFジョブ)とが混在する環境において当該システムは、WFジョブを構成するリクエスト(WFリクエスト)と異なる他の通常ジョブを構成するリクエスト(通常リクエスト)が存在することによって、例えば、WFリクエスト間において通常リクエストの割り込みや同時に実行が必要となるリクエストの同期待ちなどが発生する。そのため、当該システムでは、WFジョブ全体として最短のTurn_Around_Time(以降、本願では、「TAT」と略記する)を保障できないという問題がある。
この問題を解決するための技術として、RCPSP(Resource_Constrained_Project_Scheduling_Problem)を適用する方法が考えられる。当該方法は、時間の制約を持つWFリクエストとしてWFジョブを適用することによって、WFリクエストの順序関係を維持しつつWFジョブ、或いは通常リクエストを含むリクエスト全体の最短のTATを保証するスケジューリングが期待できる。
しかしながら、一部のリクエストがキャンセルされる、或いは、緊急を要するリクエストの割り込みなどによりリクエストの状況が変化した場合に、係るシステムでは、最短のTATを保障することができない。その理由は、リクエストの状況が変化した場合に、当該方法は、WFリクエストだけでなく、通常リクエストを含む全てのリクエストについて改めてマップの演算(以降、本願では、「再マップ演算」と称する)を行う必要があるからである。
この再マップ演算には、時間的な制約条件を満たす全ての組み合わせを導出すると共に、導出した組み合わせの中からTATが最短となる組み合わせにおいてスケジューリングする方法やこれに遺伝的アルゴリズムによる最適化を用いる方法などが考えられる。しかしながら、様々な最適化手法を用いたとしても同様に、大規模な演算処理を実行する環境において、係るシステムでは、再マップ演算に莫大な時間を要するだけでなく、再マップ演算自体がジョブの進行に間に合わなくなるという問題がある。即ち、当該システムは、動的にリクエストの状況が変化する大規模な計算機環境において、WFジョブのTATを最短にするようなスケジューリングを行うことができない。
このように、プロジェクト管理ツールにおいて用いられるようなワークフローと違い、大規模な計算環境での利用を背景としたワークフローのインテリジェントなスケジューラは数多く存在しない。特に、WFジョブ毎のTATを短縮すると共に、動的に変化するリクエストの状況に対応しながらバックフィルを行うようなスケジューラは存在しない。
特許文献1に開示されたジョブ管理装置は、バックフィルの特徴であるスケジューラマップを用いたバックフィルスケジューリングを行うという点が類似している。しかしながら、特許文献1には、ワークフローの構造を意識したスケジューリングについて、考慮されておらず何ら述べられていない。
本発明は、動的にリクエストの状況が変化する場合であっても、ワークフローを構成するリクエストにおけるTATをより短くすることが可能なようにスケジューリングするスケジューラ装置等を提供することを主たる目的とする。
上記の課題を達成すべく、本発明の一態様に係るスケジューラ装置は、以下の構成を備えることを特徴とする。
即ち、本発明の一態様に係るスケジューラ装置は、ジョブを構成するリクエストが必要とするノード数と実行時間とを含むリクエスト情報を記憶するリクエスト管理手段と、前記ジョブを対象に、前記リクエストを解析することによって、前記ノード数と前記実行時間とを含む要件情報を求めると共に、前記ジョブがワークフローを構成するリクエストを含むWF(Work Flow ;ワークフロー)ジョブか否かを判別し、前記WFジョブであると判別した場合には、前記リクエストの実行が他の前記リクエストの終了の後に開始できることを表す依存性を解析することにより前記ワークフローの段と、その段の順序関係に関する情報とを含む段情報を求める解析手段と、前記ジョブが前記WFジョブと種類の異なる他のジョブの場合に、前記要件情報に基づきリクエストマップを作成する第1のマッピング処理を実行するマップ演算手段と、前記ジョブが前記WFジョブの場合には、前記要件情報と前記段情報とに基づき第2のマッピング処理を実行し前記リクエストマップを作成し、前記マップ演算手段が前記リクエストマップの空き空間を検出して、前記依存性に基づいて前記空き空間に前記他の前記リクエストをマッピングするバックフィル処理を実行するWF段管理手段と、
を備える。
或いは、同目的は、上記に示すスケジューラ装置を含む演算処理システムによっても達成される。
また、同目的を達成すべく、本発明の一態様に係るスケジューリング方法は、以下の構成を備える。
即ち、本発明の一態様に係るスケジューリング方法は、情報処理装置によって、
ジョブを構成するリクエストが必要とするノード数と実行時間とを含むリクエスト情報を記憶し、前記ジョブを対象に、前記リクエストを解析することによって、前記ノード数と前記実行時間とを含む要件情報を求めると共に、前記ジョブがワークフローを構成するリクエストを含むWF(Work Flow ;ワークフロー)ジョブか否かを判別し、前記WFジョブであると判別した場合には、前記リクエストの実行が他の前記リクエストの終了の後に開始できることを表す依存性を解析することにより前記ワークフローの段と、その段の順序関係に関する情報とを含む段情報を求める解析し、前記ジョブが前記WFジョブと種類の異なる他のジョブの場合に、前記要件情報に基づきリクエストマップを作成する第1のマッピング処理を実行するマップ演算手順と、前記ジョブが前記WFジョブの場合には、前記要件情報と前記段情報とに基づき第2のマッピング処理を実行し前記リクエストマップを作成し、前記マップ演算手段が前記リクエストマップの空き空間を検出して、前記依存性に基づいて前記空き空間に前記他の前記リクエストをマッピングするバックフィル処理を実行する。

尚、同目的は、上記の各構成を有するスケジューラ装置及びスケジューリング方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、読み取り可能な記憶媒体によっても達成される。
本発明によれば、動的にリクエストの状況が変化する場合であっても、ワークフローを構成するリクエストにおけるTATをより短くすることが可能なようにスケジューリングするスケジューラ装置等を提供することができる。
本発明の第1の実施形態におけるスケジューラ装置の構成を示すブロック図である。 本発明の第1の実施形態におけるスケジューラ装置が行うリクエストのスケジューリングする動作を示すフローチャートである。 本発明の第1の実施形態におけるスケジューラ装置が行うバックフィル処理の動作を示すフローチャートである。 本発明の第1の実施形態におけるスケジューラ装置が行う通常リクエストをスケジューリングした態様を概念的に例示する図である。 本発明の第1の実施形態におけるワークフローの構成を具体的に例示する図である。 本発明の第1の実施形態におけるWF段管理部が行うWFリクエストをスケジューリングした態様を概念的に例示する図である。 本発明の第1の実施形態におけるWF段管理部が行う第1の段のバックフィル処理によりスケジューリングする態様を概念的に例示する図である。 本発明の第1の実施形態における第2の段以降の段に含まれるリクエストを、マップ範囲外にスケジューリングした態様を概念的に例示する図である。 本発明の第1の実施形態におけるWF段管理部が行う第2の段のバックフィル処理によりスケジューリングする態様を概念的に例示する図である。 本発明の第1の実施形態における第3の段以降の段に含まれるリクエストを、マップ範囲外にスケジューリングした態様を概念的に例示する図である。 本発明の第1の実施形態におけるWF段管理部が行うバックフィル処理によりスケジューリングした態様を概念的に例示する図である。 本発明の第2の実施形態におけるスケジューラ装置を含む演算処理システムの構成を示すブロック図である。 本発明の第2の実施形態におけるスケジューラ装置が行うリクエストの終了またはキャンセルが発生した際の動作を示すフローチャートである。 第2の実施形態におけるWF段管理部がマップ演算部を用いてバックフィル処理によりスケジューリングする態様を概念的に例示する図である。 本発明に係る各実施形態を実現可能な情報処理装置のハードウェア構成を例示的に説明するブロック図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態におけるスケジューラ装置1の構成を示すブロック図である。
図1において、スケジューラ装置1は、解析部2、リクエスト管理部3、マップ演算部4及びWF段管理部5を備える。
解析部2は、例えば、不図示の外部装置(例えば、図12に示すクライアント装置21)から入力されたジョブ毎に、WFを用いるWFジョブを構成するWFリクエスト、またはWFジョブと種類の異なる他の通常ジョブを構成する通常リクエストを解析する機能を有する。
また、解析部2は、WFリクエストが入力された場合には、WFジョブを構成する1つ以上のWFリクエストにおける依存性を解析する機能を有する。
尚、以下の説明では、説明の便宜上、WFリクエストと通常リクエストとを総称して、単に「リクエスト」と称する。また、リクエストを解析することにより求めた(取得した)要件を示す情報を「要件情報」と称する(以下、各実施形態においても同様)。
より具体的に、解析部2は、通常ジョブを構成する1つ以上の通常リクエスト、またはWFジョブを構成する1つ以上のWFリクエストを解析することによって、当該リクエストが必要とするノード数や実行時間などの要件を示す要件情報を取得する。そして、解析部2は、取得した要件情報を、マップ演算部4またはWF段管理部5に対して与える。
ここで、要件情報は、例えば、リクエストが必要とするノード数及び実行時間を含む情報である。また、入力されたジョブが予約ジョブの場合には、要件情報は、さらに、ジョブを開始する時刻として現在の時刻より先(つまり、未来)の時刻(予約時刻)を含むこととする。
次に、解析部2は、入力されたジョブがWFジョブか否かを、WFリクエストに含まれるWFジョブを識別可能な識別子に基づき判別する。解析部2は、判別した結果、入力されたジョブがWFジョブであると判別した場合には、WFジョブを構成する1つ以上のWFリクエストにおける依存性を解析する。
より具体的に、解析部2は、WFリクエストに含まれるWFジョブを識別可能な識別子の有無を判別することによって、WFジョブか否かを判別する。解析部2は、判別した結果、WFジョブであると判別した場合には、クリティカルパスを構成する1つ以上のWFリクエストのうち、各WFリクエストの依存性を解析する。また、解析部2は、解析した結果、依存性の数(段)と、その段の順序関係に関する情報とを含む情報(段情報)とを求める(取得する)。即ち、解析部2は、1つ以上のWFリクエストにおける依存性により区分けされた段と、段の順序関係に関する情報とを含む段情報を取得する。尚、解析部2が行う依存性の解析については、本実施形態において詳細に後述する。
また、以下の説明では、説明の便宜上、解析部2が求めた依存性の数を、WFの「段」と称する。そして、以下の説明では、説明の便宜上、段と、その段の順序関係に関する情報とを含む情報を、「段情報」と称する(以下、各実施形態においても同様)。
ここで、段情報は、以下の情報を含む。即ち、
・段毎に、その段に含まれるWFリクエストを識別可能なリクエスト識別子(Identification:以降、「ID」と称する)、
・段に含まれる複数のWFリクエストのうち、同時に実行する必要のあるWFリクエストのリクエストID及び
・各段に含まれるWFリクエストの処理が開始される時刻(第1の開始時刻)までに処理が終了していなければならないWFリクエストのリクエストIDを示す情報である。即ち、段毎の第1の開始時刻までに終了する必要のあるWFリクエストのリクエストIDを示す情報である。
次に、リクエスト管理部3は、入力された1つ以上のリクエストの状態を示すリクエスト状態(以下、本願では、「リクエストマップ」または「リクエスト情報」とも称する)を記憶する。より具体的に、リクエスト管理部3は、リクエストが必要とするノード数や実行時間についての情報を保持するリクエストマップ(状態)を記憶する。さらに、リクエスト管理部3は、マップ演算部4からの要求に応じてリクエストマップを更新する機能を有する。
また、リクエスト管理部3は、各リクエストに設定された開始時刻に現在の時刻が達した場合に、例えば、自装置と異なる他の装置(例えば、図12に示す計算装置22)においてジョブを実行するよう制御する機能を有する。
次に、マップ演算部4は、通常リクエストが入力された場合に、解析部2から得られた要件情報に基づいて、第1のマッピング処理を実行する。
より具体的に、マップ演算部4は、要件情報に基づいて、リクエスト管理部3に記憶された現在のリクエストマップを参照する。マップ演算部4は、リクエストマップの中から要件情報を満たす空き空間を検索する。マップ演算部4は、リクエストマップを検索した結果、要件を満たす空き空間があった場合には、その空き空間に通常リクエストを実行するノードと開始時間との決定(以降、本願では、「マッピング」と称する)を行う機能を有する。
そして、マップ演算部4は、マッピングを行った結果に基づきリクエスト管理部3が記憶する現在のリクエストマップを更新するようリクエスト管理部3に対して要求する(を制御する)。
また、マップ演算部4は、例えば、上述した予約ジョブの要件が要件情報に含まれる場合には、リクエストマップの中から要件情報に含まれる現在の時刻より先に指定された予約時刻以降の空き空間を検索すると共に、要件情報を満たす空き空間にマッピングする。即ち、マップ演算部4は、予約機能を持つ。
マップ演算部4は、WF段管理部5からの要求に応じて、特定の段に含まれるWFリクエストの要件を満たす空き空間を検索すると共に、その要件を満たす空き空間に当該WFリクエストをマッピングする機能を有する。
次に、WF段管理部5は、解析部2から得た要件情報と段情報とを記憶する。また、WF段管理部5は、解析部2から得た要件情報と段情報とに基づいて、1つ以上のWFリクエストの第2のマッピング処理を実行する。また、WF段管理部5は、マッピングを行った結果に基づきリクエスト管理部3が記憶するリクエストマップを更新するようリクエスト管理部3に対して要求する。そして、WF段管理部5は、マッピングを行った結果に基づいて、段毎に、その段に含まれるリクエストのうち、最初に開始されるリクエストの開始時刻を第1の開始時刻として記憶する。
より具体的に、WF段管理部5は、段毎に、要件情報と段情報とに基づいて、既にマッピングされているリクエストのうち、最後に終了するリクエストの終了予想時刻以降に1つ以上のWFリクエストの予約(つまり、マッピング)をする。また、WF段管理部5は、段毎に、その段に含まれるWFリクエストのうち、最初に実行されるWFリクエストに配置した時刻(つまり、開始時刻)を、第1の開始時刻として記憶する。即ち、WF段管理部5は、前の段に含まれるWFリクエストの終了予想時刻のうち、最も遅い時刻以降となるように、次の段の開始時刻(第1の開始時刻)に当該次の段に含まれるWFリクエストを配置する。
ここで、終了予想時刻は、段に含まれるWFリクエストの開始時刻に、そのWFリクエストの実行時間を加算することによって求めた時刻である。
次に、WF段管理部5は、先頭の段から順に、マップ演算部4を用いてリクエスト管理部3に記憶されたリクエストマップに基づきバックフィル処理を実行する。
より具体的に、WF段管理部5は、先頭の段から順に、マップ演算部4を用いてリクエスト管理部3に記憶されたリクエストマップを参照すると共に、リクエストマップの中から要件を満たす空き空間を検索する。そして、WF段管理部5は、当該要件を満たす空き空間があった場合には、バックフィル処理の対象であるWFリクエストを、その空き空間にマップ演算部4を用いて移動する。尚、バックフィル処理については、本実施形態において後述する。
次に、以下の説明において、より具体的に、本実施形態におけるスケジューラ装置1の動作について説明する。
図2は、本発明の第1の実施形態におけるスケジューラ装置1が行うリクエストのスケジューリングする動作を示すフローチャートである。係るフローチャートに沿ってスケジューラ装置1の動作手順を説明する。
ステップS1:
解析部2は、通常ジョブを構成する1つ以上の通常リクエスト、またはWFジョブを構成する1つ以上のWFリクエストが入力されるのに応じて、そのリクエストを解析することによって、当該リクエストが必要とするノード数や実行時間などの要件を示す要件情報を取得する。
より具体的に、解析部2は、ジョブスクリプトなどのジョブ要件を解析することにより、WFリクエスト、または通常リクエストが必要とするノード数や実行時間などの要件を示す情報(要件情報)を取得する。
以下の説明では、リクエストは、例えば、ジョブの要件として必要なノード数と実行時間などが記述されたジョブスクリプトなどである。また、WFリクエストには、さらに、WFジョブであることを識別可能な識別子が記述されている。そして、例えば、当該要件には、予約時刻を記述することもできる。即ち、当該リクエストには、予約ジョブの要件を記述することが可能である。
ステップS2:
解析部2は、入力されたリクエストを解析した結果、WFジョブか否かを判別する。
ステップS2において「YES」:
解析部2は、WFジョブか否かを判別した結果、WFジョブであると判別した場合に、処理をステップS6に進める。
ステップS2において「NO」:
解析部2は、WFジョブか否かを判別した結果、WFジョブでないと判別した場合に、処理をステップS3に進める。即ち、解析部2は、入力されたリクエストが通常ジョブであると判別した場合に、処理をステップS3に進める。
ステップS3:
解析部2は、取得した要件情報を、マップ演算部4に対して与える。
ステップS4:
マップ演算部4は、解析部2から得た要件情報に基づいて、マッピング処理を実行する。
より具体的に、マップ演算部4は、要件情報に基づいて、リクエスト管理部3に記憶された現在のリクエストマップを参照する。マップ演算部4は、リクエストマップの中から要件情報を満たす空き空間を検索する。マップ演算部4は、リクエストマップを検索した結果、要件を満たす空き空間があった場合には、その空き空間に通常リクエストをマッピングする。そして、マップ演算部4は、マッピングを行った結果に基づきリクエスト管理部3が記憶する現在のリクエストマップを更新するようリクエスト管理部3に対して要求する。
ステップS5:
リクエスト管理部3は、マップ演算部4からの要求に応じて、リクエストマップを更新する。
ステップS6:
解析部2は、WFジョブを構成する1つ以上のWFリクエストにおける依存性を解析することによって、WFの段と、その段の順序関係に関する情報とを含む段情報を取得する。
ステップS7:
解析部2は、取得した要件情報と段情報とを、WF段管理部5に対して与える。
ステップS8:
WF段管理部5は、解析部2から得た要件情報及び段情報を記憶する。また、WF段管理部5は、要件情報及び段情報に基づいて、第2のマッピング処理を実行する。WF段管理部5は、マッピングを行った結果に基づきリクエストマップを更新するようリクエスト管理部3に対して要求する。そして、WF段管理部5は、マッピングを行った結果に基づいて、段毎に、第1の開始時刻を記憶する。
ステップS9:
WF段管理部5は、先頭の段から順に、マップ演算部4を用いてリクエスト管理部3に記憶されたリクエストマップに基づきバックフィル処理を実行する。
次に、以下の説明において、より具体的に、本実施形態におけるスケジューラ装置1が行うバックフィル処理の動作について説明する。
図3は、本発明の第1の実施形態におけるスケジューラ装置1が行うバックフィル処理の動作を示すフローチャートである。係るフローチャートに沿ってスケジューラ装置1の動作手順を説明する。
ステップS21:
WF段管理部5は、要件情報、段情報及び段毎の第1の開始時刻を、マップ演算部4に対して与える。
ステップS22:
マップ演算部4は、WF段管理部5から得た要件情報、段情報及び段毎の第1の開始時刻に基づいて、リクエスト管理部3に記憶された現在のリクエストマップを参照する。マップ演算部4は、段毎に、リクエストマップの中から要件情報と段情報とを満たす空き空間を検索する。
より具体的に、マップ演算部4は、先頭の段から順に、段に含まれる1つ以上のWFリクエストや同時に実行が必要となるWFリクエスト、各段における第1の開始時刻までに終わっていなければならないWFリクエストなど段情報に含まれる要件と要件情報に含まれる要件とを満たす空き空間を、リクエストマップの中から検索する。
尚、説明の便宜上、図3には図示していないが、マップ演算部4は、バックフィル処理の対象である全ての段に対して処理が終了した際には、バックフィル処理を終了することする。
ステップS23:
マップ演算部4は、要件を満たす空き空間を、リクエストマップの中から検索した結果、空き空間の有無を判別する。
ステップS23において「YES」:
マップ演算部4は、要件を満たす空き空間を、リクエストマップの中から検索した結果、空き空間があると判別する場合に、処理をステップS24に進める。
ステップS23において「NO」:
マップ演算部4は、要件を満たす空き空間を、リクエストマップの中から検索した結果、空き空間がないと判別する場合に、処理をステップS22に戻す。
ステップS24:
マップ演算部4は、要件を満たす空き空間に、WFリクエストをマッピングする。
ステップS25:
マップ演算部4は、マッピングを行った結果に基づき現在のリクエストマップを更新するようリクエスト管理部3に対して要求する。また、マップ演算部4は、マッピングにより変更となったWFリクエストの開始時刻を、そのリクエストを含む段の第1の開始時刻として更新する。
次に、以下の説明では、より具体的に、スケジューラ装置1が通常リクエストをスケジューリングする処理について、図2及び図4を参照して説明する。
図4は、本発明の第1の実施形態におけるスケジューラ装置1が行う通常リクエストをスケジューリングした態様を概念的に例示する図である。
図4は、縦軸にノード数を表す。そして、図4は、横軸に経過時間を表す。また、図4には、リクエストを実行するのに必要となるノード数と実行時間とを矩形領域として示す。図4に示すマップ範囲とは、通常ジョブを構成するリクエストをマッピング可能な領域である。尚、以下の説明では、図6乃至図11及び図14も同様である。そのため、以下の説明において、重複する説明は省略する。
ここでは、説明の便宜上、一例として、通常リクエストとして「リクエストR1」、「リクエストR2」、「リクエストR3」及び「リクエストR4」が、例えば、外部装置から入力されたこととする。
尚、説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、前述した構成にはこれに限定されない(以下の実施形態においても同様)。
まず、解析部2は、通常リクエストが入力されるのに応じて、その通常リクエストを解析することによって、当該通常リクエストが必要とするノード数や実行時間などの要件を示す要件情報を取得する(ステップS1)。解析部2は、入力された通常リクエストを解析した結果、WFリクエストでないと判別する(ステップS2において「NO」)。解析部2は、取得した要件情報を、マップ演算部4に対して与える(ステップS3)。
マップ演算部4は、解析部2から得た要件情報に基づいて、リクエスト管理部3に記憶された現在のリクエストマップを参照する。マップ演算部4は、リクエストマップの中から要件情報を満たす空き空間を検索する。例えば、予約ジョブである場合には、マップ演算部4は、開始時刻を示す予約時刻以降の空間を検索する。マップ演算部4は、リクエストマップを検索した結果、要件を満たす空き空間があった場合には、その空き空間に通常リクエストをマッピングする。そして、マップ演算部4は、マッピングを行った結果に基づき現在のリクエストマップを更新するようリクエスト管理部3に対して要求する(ステップS4)。リクエスト管理部3は、マップ演算部4からの要求に応じて、リクエストマップを更新する(ステップS5)。
このように、スケジューラ装置1は、「リクエストR1」乃至「リクエストR4」に対して、「リクエストR1」から順に、繰り返し処理を実行することにより、図4に示すマップを形成することができる。
次に、以下の説明では、より具体的に、スケジューラ装置1がWFリクエストをスケジューリングする処理について、図2乃至図11を参照して説明する。
ここでは、説明の便宜上、一例として、通常リクエストとして「リクエストR1」、「リクエストR2」、「リクエストR3」及び「リクエストR4」が、例えば、外部装置から入力された状態を初期状態とすることとする。
また、以下の説明では、例えば、WFジョブを構成する1つ以上のWFリクエストとして「リクエストA」、「リクエストX」、「リクエストY」、「リクエストM」、「リクエストN」及び「リクエストB」が外部装置から入力されることとする。
より具体的に、以下の説明では、WFリクエストについて図5を参照して説明する。図5は、本発明の第1の実施形態におけるワークフローの構成を具体的に例示する図である。
図5において、「リクエストX」及び「リクエストY」は、「リクエストA」に示す処理が終了した際に、同時に実行することが指定されていることを示す。また、「リクエストM」及び「リクエストN」は、「リクエストX」に示す処理が終了した際に、順に実行することが指定されていることを示す。尚、「リクエストM」と「リクエストN」との順序に制約は無いこととする。そして、「リクエストB」は、「リクエストM」、「リクエストN」及び「リクエストY」が終了した際に、実行することが指定されていることを示す。
また、これらリクエストの実行時間は、それぞれ「リクエストA」に「a」、「リクエストX」に「x」、「リクエストY」に「y」、「リクエストM」に「m」、「リクエストN」に「n」及び「リクエストB」に「b」が指定されていることとする。
尚、説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、前述した構成にはこれに限定されない(以下の実施形態においても同様)。
まず、解析部2は、WFリクエストが入力されるのに応じて、そのWFリクエストを解析することによって、当該WFリクエストが必要とするノード数や実行時間などの要件を示す要件情報を取得する(ステップS1)。解析部2は、入力されたWFリクエストを解析した結果、WFリクエストであると判別する(ステップS2において「YES」)。解析部2は、WFジョブを構成する1つ以上のWFリクエストにおける依存性を解析することによって、WFの段を含む段情報を取得する(ステップS6)。
より具体的に、図5に示すように、初めに実行されるリクエストは、「リクエストA」だけである。そのため、第1の段は、「リクエストA」を含む。次に、第1の段に含まれるリクエストの終了に依存しているリクエストは、「リクエストX」及び「リクエストY」である。そのため、第2の段は、「リクエストX」及び「リクエストY」を含む。そして、第2の段に含まれるリクエストの終了に依存しているリクエストは、「リクエストM」、「リクエストN」及び「リクエストB」である。しかしながら、「リクエストB」は、「リクエストM」及び「リクエストN」の終了にも依存している。そのため、第3の段は、「リクエストM」及び「リクエストN」を含む。最後に、第3の段に含まれるリクエストの終了に依存しているリクエストは、「リクエストB」である。そのため、第4の段は、「リクエストB」を含む。
このように、解析部2は、WFリクエストを解析することによって、リクエストの終了に依存する数を求める。また、解析部2は、段毎に、段に含まれる1つ以上のリクエストを識別可能なリクエストIDを取得する。
また、解析部2は、段に含まれるリクエストのうち、同時に実行が必要なリクエストのリクエストIDを取得する。より具体的に、解析部2は、同時に実行が必要なリクエストとして「リクエストX」及び「リクエストY」のIDを取得する。
さらに、解析部2は、各段に含まれるリクエストの処理が開始される(つまり、開始時刻)までに処理が終了していなければならないリクエストのリクエストIDを取得する。
より具体的に、第2の段に含まれる「リクエストX」及び「リクエストY」の処理が開始されるまでに処理が終了していなければならないリクエストは、「リクエストA」である。そのため、解析部2は、第2の段の開始までに終わっていなければならないリクエストとして「リクエストA」のIDを取得する。次に、第3の段に含まれる「リクエストM」及び「リクエストN」の処理が開始されるまでに処理が終了していなければならないリクエストは、「リクエストX」である。そのため、解析部2は、第3の段の開始までに終わっていなければならないリクエストとして「リクエストX」のIDを取得する。そして、第4の段に含まれる「リクエストB」の処理が開始されるまでに処理が終了していなければならないリクエストは、「リクエストM」、「リクエストN」及び「リクエストY」である。そのため、解析部2は、第4の段の開始までに終わっていなければならないリクエストとして「リクエストM」、「リクエストN」及び「リクエストY」のIDを取得する。
次に、解析部2は、取得した要件情報と段情報とを、WF段管理部5に対して与える(ステップS7)。
図6は、本発明の第1の実施形態におけるWF段管理部5が行うWFリクエストをスケジューリングした態様を概念的に例示する図である。
図6に示すように、WF段管理部5は、段毎に、要件情報及び段情報に基づいて、既にマッピングされているリクエストのうち、最後に終了するリクエストの終了予想時刻以降に段順となるように予約する。即ち、WF段管理部5は、現在のマップ範囲外に、第1の段、第2の段、第nの段と段順となるようにマッピングする。また、WF段管理部5は、マッピングを行った結果に基づきリクエストマップを更新するようリクエスト管理部3に対して要求する。そして、WF段管理部5は、段毎に、第1の開始時刻を記憶する(ステップS8)。
次に、WF段管理部5は、段毎に、マップ演算部4を用いてリクエスト管理部3が記憶するリクエストマップを参照しつつ、バックフィル処理を実行する。
WF段管理部5は、要件情報、段情報及び段毎の第1の開始時刻を、マップ演算部4に対して与える(ステップS21)。マップ演算部4は、WF段管理部5から得た要件情報、段情報及び段毎の第1の開始時刻に基づいて、リクエスト管理部3に記憶された現在のリクエストマップを参照する。マップ演算部4は、段毎に、リクエストマップの中から要件情報と段情報とを満たす空き空間を検索する(ステップS22)。
以下の説明では、より具体的に、「リクエストA」に対するバックフィル処理について説明する。
図7は、本発明の第1の実施形態におけるWF段管理部5が行う第1の段のバックフィル処理によりスケジューリングする態様を概念的に例示する図である。
マップ演算部4は、リクエストマップの中から第1の段に含まれる「リクエストA」の要件情報と段情報とを満たす空き空間を検索した結果、図7に示す最も早い時刻に要件を満たす空き空間が存在したため、図7に示す矢印方向に「リクエストA」を移動する。それに伴い、マップ演算部4は、配置した「リクエストA」の開始時刻を、第1の段における第1の開始時刻として記憶する。
次に、マップ演算部4は、第2の段乃至第4の段に含まれるリクエストを、図8に示すようにマップ範囲外にマッピングする。
図8は、本発明の第1の実施形態における第2の段以降の段に含まれるリクエストを、マップ範囲外にスケジューリングした態様を概念的に例示する図である。
次に、以下の説明では、より具体的に、第2の段に含まれる「リクエストX」及び「リクエストY」に対するバックフィル処理について説明する。
「リクエストX」及び「リクエストY」は、同時に実行する必要がある。また、第2の段の開始までに終わっていなければならないリクエストは、「リクエストA」である。そのため、マップ演算部4は、第1の段における第1の開始時刻と「リクエストA」の実行時間「a」とに基づいて、「リクエストA」の終了予想時刻を算出する。また、マップ演算部4は、算出した終了予想時刻以降に、「リクエストX」及び「リクエストY」の要件を満たす空き空間を検索する。
尚、「リクエストA」の終了予測時刻は、第1の段における第1の開始時刻に「リクエストA」の実行時間「a」を加算することによって算出することができる。
図9は、本発明の第1の実施形態におけるWF段管理部5が行う第2の段のバックフィル処理によりスケジューリングする態様を概念的に例示する図である。
マップ演算部4は、リクエストマップの中から「リクエストX」及び「リクエストY」の要件情報と段情報とを満たす空き空間を検索した結果、要件を満たす空き空間が「リクエストR2」の処理が終了する時刻(終了予測時刻)以降に存在したため、図9に示す矢印方向に「リクエストX」及び「リクエストY」を移動する。それに伴い、マップ演算部4は、配置した「リクエストX」及び「リクエストY」の開始時刻を、第2の段における第1の開始時刻として記憶する。
次に、マップ演算部4は、第3の段及び第4の段に含まれるリクエストを、図10に示すようにマップ範囲外にマッピングする。
図10は、本発明の第1の実施形態における第3の段以降の段に含まれるリクエストを、マップ範囲外にスケジューリングした態様を概念的に例示する図である。
上述したように、WF段管理部5は、マップ演算部4を用いて第3の段に含まれる「リクエストM」及び「リクエストN」に対してもバックフィル処理を実行する。尚、第3の段に含まれる「リクエストM」及び「リクエストN」に対するバックフィル処理は、上述において説明した処理と同様である。そのため、重複する説明は省略する。また、WF段管理部5は、マップ演算部4を用いて第4の段に含まれる「リクエストB」に対してバックフィル処理を実行した結果、移動可能な空き空間がないため、「リクエストB」の移動を行わない。図11は、本発明の第1の実施形態におけるWF段管理部5が行うバックフィル処理によりスケジューリングした態様を概念的に例示する図である。
このように本実施の形態に係るスケジューラ装置1によれば、動的にリクエストの状況が変化する場合であっても、ワークフローを構成するリクエストにおけるTATをより短くすることが可能なようにスケジューリングすることができる。その理由は、以下に述べる通りである。
即ち、スケジューラ装置1は、クリティカルパスにおける段毎の順序関係や第1の開始時刻などの段情報を管理するWF段管理部5を備えるからである。これにより、スケジューラ装置1は、WFジョブ毎に、WFの順序関係を維持しつつバックフィル処理を実行することができる。即ち、WF段管理部5は、複数のWFジョブのうち、他のWFジョブのバックフィル処理に影響を受けることなく、処理中のWFジョブのバックフィル処理だけを行えるからである。
<第2の実施形態>
次に、上述した本発明の第1の実施形態に係るスケジューラ装置1を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
本発明の第2の実施形態におけるスケジューラ装置10について、図11乃至図14を参照して説明する。
図12は、本発明の第2の実施形態におけるスケジューラ装置10を含む演算処理システム20の構成を示すブロック図である。
図12において、演算処理システム20は、スケジューラ装置10、クライアント装置21及び計算装置22を有する。また、スケジューラ装置10、クライアント装置21及び計算装置22は、通信ネットワーク110を介して通信可能に接続する。スケジューラ装置10は、解析部2、リクエスト管理部11、マップ演算部4、WF段管理部12及び監視部13を備える。
尚、図12において、第2の実施形態では、説明をよりわかりやすくすることを目的として、スケジューラ装置10は、1つのクライアント装置21及び計算装置22と通信ネットワーク110を介して接続する構成を例に説明する。しかしながら、本発明に係る実施形態は、係る構成に限定されない。スケジューラ装置10は、複数のクライアント装置21及び計算装置22と通信ネットワーク110を介して接続する構成を採用することができる。
より具体的に、クライアント装置21は、例えば、ワークステーションなどのサーバ装置を想定している。クライアント装置21は、スケジューラ装置10に対して通常ジョブを構成する1つ以上の通常リクエストまたはWFジョブを構成する1つ以上のWFリクエストを投入する。
計算装置22は、例えば、スーパーコンピュータやHPC(High_Performance_Computing)サーバなどの計算に特化した装置を想定している。計算装置22は、スケジューリングされた通常ジョブまたはWFジョブを実行する。
監視部13は、計算装置22において実行される通常ジョブまたはWFジョブの状態を監視する。また、監視部13は、通常ジョブまたはWFジョブを構成する特定のリクエストの終了やキャンセルを検出した際に、終了またはキャンセルに対応する通知を、リクエスト管理部11及びWF段管理部12に対して発行する。
これにより、リクエスト管理部11は、監視部13から終了またはキャンセルを示す通知を受信するのに応じて、管理するリクエストマップから終了またはキャンセルされた特定のリクエストを削除する。
そして、WF段管理部12は、監視部13から終了またはキャンセルを示す通知を受信するのに応じて、バックフィル処理を実行する。即ち、WF段管理部12は、ジョブが終了した際、またはキャンセルされた際に、再マップ演算処理を実行することができる。
次に、以下の説明において、より具体的に、本実施形態におけるスケジューラ装置10が行うリクエストがキャンセルされた際の処理について、図11、図13及び図14を参照して説明する。
図13は、本発明の第2の実施形態におけるスケジューラ装置10が行うリクエストの終了またはキャンセルが発生した際の動作を示すフローチャートである。係るフローチャートに沿ってスケジューラ装置10の動作手順を説明する。
以下の説明では、説明の便宜上、一例として、第1の実施形態において説明した図11に示す状態から「リクエストR3」のキャンセルが発生したこととする。
説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、前述した構成にはこれに限定されない(以下の実施形態においても同様)。
ステップS31:
監視部13は、計算装置22において実行される通常ジョブまたはWFジョブの状態を監視する。即ち、監視部13は、計算装置22において実行される通常ジョブまたはWFジョブを構成する特定のリクエストの終了、またはキャンセルが発生したか否かを判別する。
ステップS31において「YES」:
監視部13は、判別した結果、特定のリクエストの終了、またはキャンセルが発生したと判別する場合に、終了またはキャンセルが発生したことを示す通知を、リクエスト管理部11及びWF段管理部12に対して発行する。また、監視部13は、処理をステップS32に進める。
ここでは、監視部13は、クライアント装置21から入力されたキャンセルの要求を検出すると共に、リクエスト管理部11及びWF段管理部12に対して「リクエストR3」のキャンセルが発生したことを通知することとする。
ステップS31において「NO」:
監視部13は、判別した結果、特定のリクエストの終了、またはキャンセルが発生していないと判別する場合に、処理をステップS31に戻す。即ち、監視部13は、監視を継続する。
ステップS32:
リクエスト管理部11は、監視部13から通知を受信する。リクエスト管理部11は、受信した通知に基づき、削除すべき特定のリクエストをリクエストマップから削除する。即ち、リクエスト管理部11は、特定のリクエストをリクエストマップから削除することによって、当該リクエストマップを更新する。
ここでは、リクエスト管理部11は、「リクエストR3」を、図11において説明したリクエストマップから削除することとする。
ステップS33:
WF段管理部12は、監視部13から通知を受信する。WF段管理部12は、監視部13から通知を受信するのに応じて、マップ演算部4を用いてバックフィル処理を実行する。
ここでは、WF段管理部12は、図11に示すように「リクエストR3」が占めていた空間に関連する段以降のバックフィル処理を実行することとする。
より具体的に、以下の説明では、WF段管理部12がマップ演算部4を用いて実行するバックフィル処理について、図11及び図14を参照して説明する。
図14は、第2の実施形態におけるWF段管理部12がマップ演算部4を用いてバックフィル処理によりスケジューリングする態様を概念的に例示する図である。
WF段管理部12は、マップ演算部4を用いて図11に示すリクエストマップにおける第3の段から順に空き空間を検索する。
より具体的に、WF段管理部12は、要件情報、段情報及び段毎の第1の開始時刻をマップ演算部4に対して与える。マップ演算部4は、WF段管理部12から得た情報に基づきリクエストマップの中から要件を満たす空き空間を検索する。マップ演算部4は、得た情報に基づき空きの空間を検索した結果、WFリクエストの要件を満たす空間があると判別する場合には、その空間にWFリクエストをマッピングすることによって、リクエスト管理部11が記憶するリクエストマップを更新するようリクエスト管理部11に対して要求する。
ここでは、第2の段については、第2の段における第1の開始時刻と「リクエストR3」の予約時刻とが同じである。そのため、第2の段については、バックフィル処理を実行することができない。
そして、第3の段については、第3の段における第1の開始時刻が「リクエストR3」の予約時刻より後に設定されているため、バックフィル処理を実行可能である。そのため、マップ演算部4は、第3の段に含まれる「リクエストM」を、「リクエストN」の予約時刻を示す位置に移動する。即ち、マップ演算部4は、「リクエストM」を、図14に示す矢印方向に移動する。
次に、以下の説明では、第4の段の処理について説明する。
第4の段に含まれる「リクエストB」を開始する前に終了していなければならないWFリクエストは、「リクエストM」、「リクエストN」及び「リクエストY」である。マップ演算部4は、「リクエストM」、「リクエストN」及び「リクエストY」のうち、最も終了予想時刻の遅い「リクエストM」の終了予想時刻が更新されたため、「リクエストB」のバックフィル処理を実行する。即ち、マップ演算部4は、「リクエストM」の終了予想時刻以降に、「リクエストB」の要件を満たす空きの空間を検索する。マップ演算部4は、「リクエストB」をマッピングすることによって、リクエスト管理部11が記憶するリクエストマップを更新するようリクエスト管理部11に対して要求する。また、「リクエストB」をマッピングすることにより第1の開始時刻が変更となるため、WF段管理部12は、「リクエストB」における第1の開始時刻を、マッピング後の開始時刻(第1の開始時刻)に更新する。
ここでは、マップ演算部4は、第4の段に含まれる「リクエストB」を、「リクエストM」の終了予想時刻後となるように移動する。即ち、マップ演算部4は、「リクエストB」を、図14に示す矢印方向に移動する。
このように本実施の形態に係るスケジューラ装置10によれば、第1の実施形態において説明した効果を享受できると共に、さらに、動的にリクエストの状況が変化する場合であっても、ワークフローを構成するリクエストにおけるTATをより短くすることが可能なようにスケジューリングすることができる。
その理由は、スケジューラ装置10は、さらに、計算装置22において実行される通常ジョブまたはWFジョブを構成する特定のリクエストの終了、またはキャンセルが発生したか否かを監視する監視部13を備えるからである。また、スケジューラ装置10は、監視部13からの通知に応じて、リクエストマップを更新するリクエスト管理部11と、バックフィル処理を実行するWF段管理部12とを備えるからである。
そして、スケジューラ装置10は、段毎に、バックフィル処理の実行制御が行える。その理由は、スケジューラ装置10は、必要最小限の段にのみ、再マップ演算処理を行えるためである。
(ハードウェア構成例)
上述した実施形態において図面に示した各部は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。これらの各ソフトウェアモジュールは、専用のハードウェアによって実現してもよい。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定されうる。この場合のハードウェア環境の一例を、図15を参照して説明する。
図15は、本発明の模範的な実施形態に係るスケジューラ装置を実行可能な情報処理装置300(コンピュータ)の構成を例示的に説明する図である。即ち、図15は、図1に示したスケジューラ装置1、或いは、図12に示したスケジューラ装置10、の全体または一部のスケジューラ装置を実現可能なサーバ等のコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
図15に示した情報処理装置300は、CPU(Central_Processing_Unit)301、ROM(Read_Only_Memory)302、RAM(Random_Access_Memory)303、ハードディスク304(記憶装置)、並びに外部装置との通信インタフェース(Interface:以降、「I/F」と称する)305、CD−ROM(Compact_Disc_Read_Only_Memory)等の記憶媒体307に格納されたデータを読み書き可能なリーダライタ308を備え、これらの構成がバス306(通信線)を介して接続された一般的なコンピュータである。
そして、上述した実施形態を例に説明した本発明は、図15に示した情報処理装置300に対して、その説明において参照したブロック構成図(図1、図12)或いはフローチャート(図2、図3、図13)の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのCPU301に読み出して実行することによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ(RAM303)またはハードディスク304等の不揮発性の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータ・プログラムの供給方法は、CD−ROM等の各種記憶媒体307を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが格納された記憶媒体によって構成されると捉えることができる。
本発明は、上述した各実施形態には限定されない。本発明は、大規模な計算環境におけるワークフローを処理可能なジョブスケジューラの実装として適用可能である。
1 スケジューラ装置
2 解析部
3 リクエスト管理部
4 マップ演算部
5 WF段管理部
10 スケジューラ装置
11 リクエスト管理部
12 WF段管理部
13 監視部
20 演算処理システム
21 クライアント装置
22 計算装置
110 通信ネットワーク
300 情報処理装置
301 CPU
302 ROM
303 RAM
304 ハードディスク
305 通信インタフェース
306 バス
307 記憶媒体
308 リーダライタ

Claims (9)

  1. ジョブを構成するリクエストが必要とするノード数と実行時間とを含むリクエスト情報を記憶するリクエスト管理手段と、
    前記ジョブを対象に、前記リクエストを解析することによって、前記ノード数と前記実行時間とを含む要件情報を求めると共に、前記ジョブがワークフローを構成するリクエストを含むWF(Work Flow ;ワークフロー)ジョブか否かを判別し、前記WFジョブであると判別した場合には、前記リクエストの実行が他の前記リクエストの終了の後に開始できることを表す依存性を解析することにより前記ワークフローの段と、その段の順序関係に関する情報とを含む段情報を求める解析手段と、
    前記ジョブが前記WFジョブと種類の異なる他のジョブの場合に、前記要件情報に基づきリクエストマップを作成する第1のマッピング処理を実行するマップ演算手段と、
    前記ジョブが前記WFジョブの場合には、前記要件情報と前記段情報とに基づき第2のマッピング処理を実行し前記リクエストマップを作成し、前記マップ演算手段が前記リクエストマップの空き空間を検出して、前記依存性に基づいて前記空き空間に前記他の前記リクエストをマッピングするバックフィル処理を実行するWF段管理手段と、
    を備えることを特徴とするスケジューラ装置。
  2. 前記WF段管理手段は、前記第2のマッピング処理として、
    前記段毎に、既にマッピングされているリクエストのうち、最後に終了するリクエストの終了予想時刻以降となるように前記リクエストをマッピングすると共に、そのマッピング結果を前記リクエスト管理手段に対して前記リクエスト情報に記憶するよう制御し、前記段毎に、その段に含まれるリクエストのうち、最初に開始されるリクエストの第1の開始時刻を記憶する
    ことを特徴とする請求項1に記載のスケジューラ装置。
  3. 前記WF段管理手段は、前記バックフィル処理として、
    前記要件情報、前記段情報及び前記第1の開始時刻に基づき前記マップ演算手段に対して前記バックフィル処理を実行するよう制御し
    前記マップ演算手段は、
    前記制御に応じて、前記要件情報、前記段情報及び前記第1の開始時刻に基づき前記リクエスト情報を参照すると共に、前記リクエスト情報の中から要件を満たす空き空間を検索し、前記要件を満たす空き空間がある場合には、前記段毎に、前記リクエストをマッピングし、そのマッピング結果に基づき前記リクエスト管理手段に対して前記リクエスト情報に記憶するよう制御すると共に前記第1の開始時刻を更新する
    ことを特徴とする請求項2に記載のスケジューラ装置。
  4. 前記段情報は、
    1つ以上の前記リクエストにおける依存性により区分けされたWFの前記段と、それぞれの段に含まれるリクエストを識別可能なリクエストIDと、段毎の前記第1の開始時刻までに終了する必要のあるリクエストのリクエストIDと、前記段に含まれるリクエストのうち、同時に実行が必要となるリクエストのリクエストIDとを含む
    ことを特徴とする請求項1乃至請求項3の何れかに記載のスケジューラ装置。
  5. 1つ以上の前記リクエストのうち、特定のリクエストの終了またはキャンセルの発生を検出するのに応じて、前記WF段管理手段及びリクエスト管理手段に対して通知する監視手段を、さらに備え、
    前記リクエスト管理手段は、
    前記通知を受信するのに応じて、前記特定のリクエストを前記リクエスト情報から削除することにより該リクエスト情報を更新し、
    前記WF段管理手段は、
    前記通知を受信するのに応じて、前記要件情報、前記段情報及び前記第1の開始時刻に基づき前記マップ演算処理手段に対して前記バックフィル処理を実行するよう制御する
    ことを特徴とする請求項1乃至請求項4の何れかに記載のスケジューラ装置。
  6. 前記マップ演算手段は、前記第1のマッピング処理として、
    前記要件情報に基づいて、前記リクエスト情報を参照すると共に、前記リクエスト情報の中から要件を満たす前記リクエストマップでの空き空間を検索し、前記要件を満たす空き空間に前記リクエストをマッピングすると共に、そのマッピング結果に基づき前記リクエスト管理手段に対して前記リクエスト情報に記憶するよう制御する
    ことを特徴とする請求項1に記載のスケジューラ装置。
  7. 請求項1乃至請求項6の何れかに記載されたスケジューラ装置と、前記スケジューラ装置と通信ネットワークを介して通信可能に接続する前記ジョブを入力可能なクライアント装置と、前記ジョブを実行可能な計算装置とを備え、
    前記リクエスト管理手段は、
    前記リクエストに設定された開始時刻が現在の時刻に達した場合に、該リクエストに基づき処理を実行するよう前記計算装置を制御する
    ことを特徴とする演算処理システム。
  8. 情報処理装置によって、
    ジョブを構成するリクエストが必要とするノード数と実行時間とを含むリクエスト情報を記憶し、
    前記ジョブを対象に、前記リクエストを解析することによって、前記ノード数と前記実行時間とを含む要件情報を求めると共に、前記ジョブがワークフローを構成するリクエストを含むWF(Work Flow ;ワークフロー)ジョブか否かを判別し、前記WFジョブであると判別した場合には、前記リクエストの実行が他の前記リクエストの終了の後に開始できることを表す依存性を解析することにより前記ワークフローの段と、その段の順序関係に関する情報とを含む段情報を求め、
    前記ジョブが前記WFジョブと種類の異なる他のジョブの場合に、前記要件情報に基づきリクエストマップを作成する第1のマッピング処理を実行するマップ演算手順と
    前記ジョブが前記WFジョブの場合には、前記要件情報と前記段情報とに基づき第2のマッピング処理を実行し前記リクエストマップを作成し、前記マップ演算手段が前記リクエストマップの空き空間を検出して、前記依存性に基づいて前記空き空間に前記他の前記リクエストをマッピングするバックフィル処理を実行する、
    ことを特徴とするスケジューリング方法。
  9. ジョブを構成するリクエストが必要とするノード数と実行時間とを含むリクエスト情報を記憶するリクエスト管理機能と、
    前記ジョブを対象に、前記リクエストを解析することによって、前記ノード数と前記実行時間とを含む要件情報を求めると共に、前記ジョブがワークフローを構成するリクエストを含むWF(Work Flow ;ワークフロー)ジョブか否かを判別し、前記WFジョブであると判別した場合には、前記リクエストの実行が他の前記リクエストの終了の後に開始できることを表す依存性を解析することにより前記ワークフローの段と、その段の順序関係に関する情報とを含む段情報を求める解析機能と、
    前記ジョブが前記WFジョブと種類の異なる他のジョブの場合に、前記要件情報に基づきリクエストマップを作成する第1のマッピング処理を実行するマップ演算機能と、
    前記ジョブが前記WFジョブの場合には、前記要件情報と前記段情報とに基づき第2のマッピング処理を実行し前記リクエストマップを作成し、前記マップ演算手段が前記リクエストマップの空き空間を検出して、前記依存性に基づいて前記空き空間に前記他の前記リクエストをマッピングするバックフィル処理を実行するWF段管理機能と、
    をコンピュータに実現させることを特徴とするコンピュータ・プログラム。
JP2014062062A 2014-03-25 2014-03-25 スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム Active JP6349837B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014062062A JP6349837B2 (ja) 2014-03-25 2014-03-25 スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014062062A JP6349837B2 (ja) 2014-03-25 2014-03-25 スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2015185003A JP2015185003A (ja) 2015-10-22
JP6349837B2 true JP6349837B2 (ja) 2018-07-04

Family

ID=54351433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014062062A Active JP6349837B2 (ja) 2014-03-25 2014-03-25 スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP6349837B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6364880B2 (ja) * 2014-03-31 2018-08-01 富士通株式会社 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法
JP7238616B2 (ja) 2019-06-11 2023-03-14 富士通株式会社 並列処理装置、ジョブ管理プログラム、及びジョブ管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182199A (ja) * 2009-02-06 2010-08-19 Nec Corp ジョブスケジューリングシステム、方法、及びプログラム
JP5684629B2 (ja) * 2011-03-31 2015-03-18 日本電気株式会社 ジョブ管理システム及びジョブ管理方法
JP2013164750A (ja) * 2012-02-10 2013-08-22 Nomura Research Institute Ltd ジョブ実行管理システム

Also Published As

Publication number Publication date
JP2015185003A (ja) 2015-10-22

Similar Documents

Publication Publication Date Title
JP5971334B2 (ja) タスク配置装置、タスク配置方法、および、コンピュータ・プログラム
JP6515708B2 (ja) 情報処理装置、並列計算機システム、ジョブスケジュール設定プログラムおよびジョブスケジュール設定方法
JP7050957B2 (ja) タスクスケジューリング
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
US8458710B2 (en) Scheduling jobs for execution on a computer system
CN109144697A (zh) 一种任务调度方法、装置、电子设备及存储介质
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
JP6349837B2 (ja) スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム
CN108228323B (zh) 基于数据本地性的Hadoop任务调度方法及装置
JP5419134B2 (ja) ベクトルプロセッサ及びベクトル命令発行方法
JP5776813B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
KR101771183B1 (ko) 인메모리 캐시를 관리하는 방법
KR101470695B1 (ko) 그리드 컴퓨팅 스케쥴링을 위한 생물지리학적 최적화 방법 및 시스템
JP6753521B2 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
US9705985B1 (en) Systems and methods for cross protocol automatic sub-operation scheduling
US9304829B2 (en) Determining and ranking distributions of operations across execution environments
US9459916B2 (en) System and method for controlling execution of jobs performed by plural information processing devices
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置
JP6222354B2 (ja) 情報処理装置、制御方法及び制御プログラム
CN116755893B (zh) 面向深度学习的分布式计算系统的作业调度方法和装置
JP6322968B2 (ja) 情報処理装置、情報処理方法およびプログラム
CN112084297B (zh) 数据处理方法、装置、电子设备及存储介质
JP3931883B2 (ja) ジョブスケジューリング方法、計算機システムおよびジョブスケジューリングプログラム
JP2006065658A (ja) 並列計算機システムおよびジョブ投入方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180521

R150 Certificate of patent or registration of utility model

Ref document number: 6349837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150