以下に、図面を参照して、本発明にかかる並列処理装置、および並列処理装置の保守方法の実施の形態を詳細に説明する。
(実施の形態にかかる並列処理装置100の保守方法の一実施例)
図1は、実施の形態にかかる並列処理装置100の保守方法の一実施例を示す説明図である。図1において、並列処理装置100は、並列処理システムを実現する複数のノードNに対する保守作業を管理するコンピュータである。保守作業は、例えば、ノードNのシステムソフトのバージョンアップなどを含む。システムソフトは、例えば、OS(Operation System)などである。
並列処理システムでは、管理用ノードが設けられ、管理用ノードが、ジョブをいずれの時間帯にいずれのノードに実行させるかを予め決定し、ノードでのジョブの実行予定を管理する。管理用ノードは、例えば、ジョブスケジューラにより、並列処理システムの利用者から端末装置を介して実行依頼されたジョブのスケジューリングを実施し、ジョブの実行開始予定時刻になると、ジョブを1以上のノードに実行させる。
ここで、並列処理システムが、多数の利用者によって利用される場合、利用者は、利用したいノードの台数と利用したい時間の長さとを指定して、端末装置を介してジョブスケジューラにジョブを実行依頼する傾向がある。これに対し、ジョブスケジューラは、指定された台数のノードを、指定された時間の長さ分の時間帯だけ、ジョブの実行のために確保し、ジョブの実行予定を決定し、決定したジョブの実行予定を利用者に通知する。ジョブスケジューラについては、例えば、下記参考文献1を参照することができる。
参考文献1:Etsion, Yoav, and Dan Tsafrir. “A short survey of commercial cluster batch schedulers.” School of Computer Science and Engineering, The Hebrew University of Jerusalem 44221 (2005): 2005−13.
また、並列処理システムでは、複数のノードに対する保守作業が実施されることがある。この際、並列処理システムでは、下記(1)〜(5)に示すような、様々な事項が実現されるように望まれる傾向がある。
(1)ジョブスケジューラがジョブの実行予定を決定した後、ノードの保守作業が実施されたりして並列処理システムの状況が変化した場合、実行予定通りにジョブが実行されず、ジョブの実行開始時刻が、実行開始予定時刻から遅延してしまうことがある。ジョブの実行開始時刻が、実行開始予定時刻から遅延するほど、利用者の業務や研究活動に支障を来す可能性が大きくなり、利用者との契約違反が生じる可能性も大きくなるため、ジョブの実行開始時刻の、実行開始予定時刻からの遅延を抑制することが望まれる。
(2)また、並列処理システムでは、ネットワーク部分のコストをノード部分のコストに対して一定比率以下に抑制する観点から、ネットワークトポロジーをメッシュ状またはトーラス状にすることがある。そして、異なるジョブの通信が干渉しないように、それぞれのジョブに割り当てる1以上のノードが、サブメッシュ状またはサブトーラス状になるようにすることが望まれる。
(3)また、並列処理システムでは、ノードの保守作業が実施される場合、保守作業が実施中であるノードにおいて、利用者から実行依頼されたジョブを実行しないようにすることが望まれることがある。例えば、利用者から実行依頼されたジョブの目的、保守作業の性質などによっては、保守作業が実施中であるノードにおいて、利用者から実行依頼されたジョブを実行しないようにすることが望まれる。
(4)そして、緊急性が比較的小さい保守作業については、すべてのノードに対して一律保守作業を実施させるよりも、いくつかのノードごとに段階的に保守作業を実施させ、並列処理システム全体を利用不可能な期間を発生させないことが望まれる。例えば、保守作業にかかる期間より長めに保守作業の実施を許可する期間を設定し、設定した期間内でいくつかのノードごとに段階的に保守作業を実施させることが望まれる。
(5)また、段階的に保守作業を実施させる場合、段階的に保守作業を実施させる途中で、保守作業が実施されたノードと、保守作業が実施されていないノードとが混在してしまい、システムソフトの互換性がないノードが混在してしまうことがある。システムソフトの互換性がないノードを、1つのジョブに割り当てることはできないため、システムソフトの互換性がないノードが混在しづらいように段階的に保守作業を実施させることが望まれる。
以上のように、並列処理システムでは、複数のノードに対する保守作業が実施される際、ノードに対する保守作業によるノードで実行予定のジョブへの悪影響を抑制しつつ、ジョブに1以上のノードを効率よく割り当てやすくすることが望まれる。
そこで、本実施の形態では、複数のノードを複数のグループに分けて所定期間内で時間帯をずらして保守作業を実施させる複数のスケジュールを、所定期間内に実行予定の処理への影響に基づいて評価することができる保守方法について説明する。
並列処理装置100は、保守情報を取得する。保守情報は、例えば、第1時刻と第2時刻とを含む。第1時刻は、保守作業の実施を許可する期間の開始時刻である。第2時刻は、保守作業の実施を許可する期間の終了時刻である。時刻は、何時かを指定してもよいし、何時何分かを指定してもよい。時刻は、さらに、日付を指定してもよい。
並列処理装置100は、取得した第1時刻から第2時刻までの期間に、複数のノードNのそれぞれのノードNに対する保守作業を実施させることを規定する、複数のスケジュール候補を生成する。スケジュール候補は、複数のノードNを複数のグループに分け、取得した第1時刻から第2時刻までの期間における、グループに含まれるノードNの保守作業にかかる所定時間分の時間帯を、グループ間で重複しないように割り当てることを規定する情報である。所定時間は、秒単位、分単位、時間単位、日単位などであってもよい。
スケジュール候補Sは、具体的には、複数のノードNを、グループG1,G2に分け、第1時刻から第2時刻までの期間のうち、時間帯AをグループG1に割り当て、時間帯BをグループG2に割り当て、保守作業を実施させることを規定する。
並列処理装置100は、取得した第1時刻から第2時刻までの期間におけるノードNによる処理の実行予定を取得する。処理は、例えば、ジョブである。実行予定は、例えば、処理の実行開始予定時刻を含む。実行予定は、例えば、処理の実行終了予定時刻を含んでもよい。
並列処理装置100は、生成した複数のスケジュール候補のそれぞれのスケジュール候補を、取得した第1時刻から第2時刻までの期間におけるノードNによる処理の実行予定に基づいて評価する。並列処理装置100は、例えば、それぞれのスケジュール候補の評価値を、ノードNによる処理の実行開始時刻が実行開始予定時刻より遅延する度合いが小さいほど評価値が大きくなるように算出する。
並列処理装置100は、評価した結果に基づいて、複数のスケジュール候補のいずれかのスケジュール候補を出力する。並列処理装置100は、例えば、算出した評価値が最も大きいスケジュール候補を出力する。並列処理装置100は、出力したスケジュール候補に基づいて、複数のノードNによる処理の実行予定を調整し、複数のノードNに保守作業を実施させる。
これにより、並列処理装置100は、複数のノードNを複数のグループに分けて段階的に保守作業を実施させ、ノードNの保守作業によるノードNで実行予定の処理への悪影響を抑制しつつ、処理に1以上のノードNを効率よく割り当てやすくすることができる。
並列処理装置100は、例えば、それぞれのスケジュール候補をノードNによる処理の実行予定に基づいて評価するため、処理の実行開始時刻の、最初の実行開始予定時刻からの遅延を抑制することができる。このため、並列処理装置100は、並列処理システムの利便性の向上を図ることができる。
並列処理装置100は、複数のノードNを複数のグループに分ける際、グループにサブメッシュ状またはサブトーラス状になる1以上のノードNが含まれるようにすることが可能である。このため、並列処理装置100は、グループに含まれる1以上のノードNの保守作業が実施された後、グループに含まれる1以上のノードNをまとめて処理に割り当てて、他の処理の通信と干渉しないようにすることができる。
並列処理装置100は、出力したスケジュール候補に基づいて、複数のノードNによる処理の実行予定を調整するため、保守作業が実施中であるノードNにおいて、利用者から実行依頼された処理を実行しないようにすることができる。このため、並列処理装置100は、保守作業も、利用者から実行依頼された処理も不安定になることを防止することができる。
並列処理装置100は、例えば、複数のノードNを複数のグループに分けて段階的に保守作業を実施させるため、並列処理システム全体を利用不可能な期間を発生させないようにすることができる。このため、並列処理装置100は、並列処理システムの利便性の向上を図ることができる。
並列処理装置100は、グループに含まれるノードNの保守作業にかかる所定時間分の時間帯を、グループ間で重複しないように割り当てる際、それぞれのグループに割り当てる時間帯が連続するように割り当てることが可能である。このため、並列処理装置100は、システムソフトの互換性がないノードNが混在しづらくなるように、段階的に保守作業を実施させることができる。
ここでは、並列処理装置100が、複数のスケジュール候補を生成して、それぞれのスケジュール候補を評価する場合について説明したが、これに限らない。例えば、並列処理装置100が、予め用意された複数のスケジュール候補を取得し、または、過去に生成した複数のスケジュール候補を流用し、それぞれのスケジュール候補を評価する場合があってもよい。
(並列処理システム200の一例)
次に、図2を用いて、図1に示した並列処理装置100を適用した、並列処理システム200の一例について説明する。
図2は、並列処理システム200の一例を示す説明図である。図2において、並列処理システム200は、並列処理装置100と、利用者装置201と、管理者装置202と、複数のノードNとを含む。
並列処理システム200において、並列処理装置100と、利用者装置201と、管理者装置202とは、有線または無線のネットワーク210を介して接続される。また、並列処理システム200において、並列処理装置100と、複数のノードNのそれぞれのノードNとは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。また、並列処理システム200において、複数のノードNは、1次元トーラス状に接続される。
並列処理装置100は、ジョブの実行依頼203を受け付け、ノードNによるジョブの実行を管理するジョブスケジューラ204を有する。並列処理装置100は、ノードNに対する保守作業の実施を管理する保守スケジューラ205を有する。並列処理装置100は、スケジュール情報を記憶するスケジュールDB(Data Base)206を有する。
スケジュール情報は、例えば、ノードNの利用状況を示す情報、および、ジョブの実行予定を示す情報などを含む。スケジュール情報は、ジョブの実行履歴を示す情報を含んでもよい。実行履歴は、例えば、実行済みのジョブが使用したノードNの数を含む。
ジョブスケジューラ204は、ジョブの実行依頼203を受け付けると、スケジュールDB206に記憶されたスケジュール情報に基づいて、ジョブのスケジューリングを実施する。ジョブスケジューラ204は、ジョブの実行開始予定時刻になると、ジョブを1以上のノードNに実行させる。
(2−1)保守スケジューラ205は、保守情報を含む保守依頼を、管理者装置202から受信する。保守情報は、例えば、第1時刻と第2時刻とを含む。第1時刻は、保守作業の実施を許可する期間の開始時刻である。第2時刻は、保守作業の実施を許可する期間の終了時刻である。以下の説明では、保守作業の実施を許可する期間の開始時刻を「保守開始時刻」と表記し、保守作業の実施を許可する期間の終了時刻を「保守終了時刻」と表記し、保守作業の実施を許可する期間を「保守予定期間」と表記する場合がある。保守情報は、さらに、ノードNの保守作業にかかる所定時間の長さを含んでもよい。以下の説明では、ノードNの保守作業にかかる所定時間を「保守時間」と表記する場合がある。
(2−2)保守スケジューラ205は、スケジュールDB206に記憶されたスケジュール情報に基づいて、複数のノードNを複数のグループに分けた結果を示す、複数のグループリストを生成する。以下の説明では、グループを「保守領域候補」と表記し、グループリストを「保守領域候補リスト」と表記する場合がある。保守領域候補リストを生成する具体例は、例えば、実施例1において図9および図10を用いて後述する。
(2−3)保守スケジューラ205は、生成した複数の保守領域候補リストのそれぞれの保守領域候補リストについて、ノードNの保守作業にかかる保守時間分の時間帯を、保守領域ごとに重複しないように割り当て、複数のスケジュール候補を生成する。以下の説明では、ノードNの保守作業にかかる保守時間分の時間帯を「保守時間帯」と表記する場合がある。
保守スケジューラ205は、生成した複数の保守領域候補リストのいずれかの保守領域候補リストを選択し、ノードNの保守作業にかかる保守時間分の時間帯を、保守領域ごとに重複しないように割り当て、複数のスケジュール候補を生成してもよい。いずれかの保守領域候補リストを選択する具体例は、例えば、実施例1において図11を用いて説明する。複数のスケジュール候補を生成する具体例は、例えば、実施例1において図12を用いて説明する。
(2−4)保守スケジューラ205は、いずれかのスケジュール候補を含む再スケジューリング依頼を、ジョブスケジューラ204に送信する。ジョブスケジューラ204は、いずれかのスケジュール候補に基づいて、再スケジューリングする。再スケジューリングする具体例は、例えば、実施例1において図13および図14を用いて後述する。並列処理装置100は、例えば、サーバやPC(Personal Computer)などである。
利用者装置201は、並列処理システム200の利用者が使用するコンピュータである。利用者装置201は、利用者から、ジョブの実行に使用する1以上のノードNの形状と、ノードNを使用する時間の長さなどの指定を受け付け、ジョブの実行依頼203を並列処理装置100に送信する。利用者装置201は、例えば、ジョブの実行依頼203を並列処理装置100のジョブスケジューラ204に送信する。利用者装置201は、例えば、PC、ノートPC、タブレット端末、スマートフォンなどである。
管理者装置202は、並列処理システム200の管理者が使用するコンピュータである。管理者装置202は、管理者から、保守情報の指定を受け付け、保守依頼を並列処理装置100に送信する。管理者装置202は、例えば、保守依頼を並列処理装置100の保守スケジューラ205に送信する。管理者装置202は、例えば、PC、ノートPC、タブレット端末、スマートフォンなどである。
ノードNは、ジョブスケジューラ204の制御にしたがって、ジョブを実行するコンピュータである。ノードNは、例えば、ジョブ実行機構207を有し、ジョブ実行機構207によりジョブを実行する。ノードNは、ジョブスケジューラ204の制御にしたがって、保守作業を実施する。ノードNは、例えば、サーバやPCなどである。
ここでは、並列処理装置100がジョブスケジューラ204を有する場合について説明したが、これに限らない。例えば、並列処理装置100がジョブスケジューラ204を有さない場合があってもよい。この場合、例えば、並列処理装置100がジョブスケジューラ204を有する他のコンピュータと通信可能であり、並列処理装置100が他のコンピュータにジョブの実行予定を管理させる。
(並列処理装置100のハードウェア構成例)
次に、図3を用いて、並列処理装置100のハードウェア構成例について説明する。
図3は、並列処理装置100のハードウェア構成例を示すブロック図である。図3において、並列処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、並列処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303には、例えば、モデムやLANアダプタなどを採用することができる。
記録媒体I/F304は、CPU301の制御にしたがって記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、並列処理装置100から着脱可能であってもよい。
並列処理装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、並列処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(利用者装置201のハードウェア構成例)
利用者装置201のハードウェア構成例は、例えば、図3に示した並列処理装置100のハードウェア構成例と同様であるため、説明を省略する。
(管理者装置202のハードウェア構成例)
管理者装置202のハードウェア構成例は、例えば、図3に示した並列処理装置100のハードウェア構成例と同様であるため、説明を省略する。
(ノードNのハードウェア構成例)
ノードNのハードウェア構成例は、例えば、図3に示した並列処理装置100のハードウェア構成例と同様であるため、説明を省略する。
(並列処理装置100の機能的構成例)
次に、図4を用いて、並列処理装置100の機能的構成例について説明する。
図4は、並列処理装置100の機能的構成例を示すブロック図である。並列処理装置100は、取得部401と、設定部402と、評価部403と、割当部404と、出力部405とを含む。
記憶部400は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。
取得部401〜出力部405は、制御部となる機能である。取得部401〜出力部405は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部400は、並列処理システム200を実現する複数のノードNの管理情報を記憶する。複数のノードNは、例えば、1次元トーラス状に接続される。管理情報は、例えば、ノードNの座標やノードN間の接続関係などを示す情報を含む。記憶部400は、スケジュール情報を記憶する。スケジュール情報は、例えば、ノードNの利用状況を示す情報、および、ノードNによる処理の実行予定を示す情報などを含む。処理は、例えば、ジョブである。
記憶部400は、保守情報を記憶する。保守情報は、例えば、第1時刻と第2時刻とを含む。第1時刻は、保守予定期間についての保守開始時刻である。第2時刻は、保守予定期間についての保守終了時刻である。保守予定期間は、保守作業の実施が許可された期間である。保守情報は、さらに、保守時間の長さを含んでもよい。保守時間は、ノードNの保守作業にかかる所定時間である。記憶部400は、複数のノードNを複数のグループに分ける際に、いずれかのグループに含めることが好ましいノードNの数を示す所定数を記憶する。これにより、記憶部400は、各機能部の処理に用いられる情報を、各機能部が参照可能にすることができる。
取得部401は、第1時刻と第2時刻とを取得する。取得部401は、例えば、保守予定期間についての保守開始時刻と保守終了時刻とを取得する。取得部401は、具体的には、保守予定期間についての保守開始時刻と保守終了時刻とを含む保守情報を、管理者装置202から受信する。これにより、取得部401は、いずれの期間に保守作業の実施が許可されているかを特定可能にすることができる。
設定部402は、複数のスケジュール候補を生成する。スケジュール候補は、複数のノードNを複数のグループに分け、保守予定期間における、グループに含まれるノードNの保守作業にかかる保守時間分の保守時間帯を、グループ間で重複しないように割り当てることを規定する情報である。保守時間帯は、ノードNの保守作業にかかる保守時間分の時間帯である。
設定部402は、例えば、スケジュール情報に含まれる、保守予定期間におけるノードNによる処理の実行予定に基づいて、第1条件にしたがって複数のスケジュール候補を生成する。第1条件は、例えば、それぞれのグループに含まれる、保守予定期間において処理の実行予定があるノードNの数が小さくなるようにすることである。
設定部402は、具体的には、それぞれのグループに含まれる、保守予定期間において処理の実行予定があるノードNの数が小さくなるように、複数のノードNを複数のグループに分ける、複数のスケジュール候補を生成する。これにより、設定部402は、ジョブの実行予定に与える悪影響についての観点から、比較的好ましい複数のスケジュール候補を生成することができ、比較的好ましくないスケジュール候補を生成しなくてもよいようにすることができる。このため、設定部402は、評価部403における評価の対象になるスケジュール候補の数を抑制し、評価部403における評価にかかる処理量の低減化を図ることができる。
設定部402は、例えば、管理情報に含まれる、ノードNの座標やノードN間の接続関係などを示す情報に基づいて、第2条件にしたがって複数のスケジュール候補を生成する。第2条件は、例えば、複数のグループの少なくともいずれかのグループが、所定数以上のノードNを含むようにすることである。
設定部402は、具体的には、複数のグループの少なくともいずれかのグループが、所定数以上のノードNを含むように、複数のノードNを複数のグループに分ける、複数のスケジュール候補を生成する。これにより、設定部402は、いずれかのグループに含まれるノードNが保守作業を実施すれば、所定数のノードNが使用可能になるようにすることができ、処理が使用するノードNが不足することを防止しやすくすることができる。
設定部402は、例えば、管理情報に含まれる、ノードNの座標やノードN間の接続関係などを示す情報に基づいて、第3条件にしたがって複数のスケジュール候補を生成する。第3条件は、例えば、複数のグループの少なくともいずれかのグループが、連続的に接続された複数のノードNを含むようにすることである。
設定部402は、具体的には、複数のグループの少なくともいずれかのグループが、連続的に接続された2以上のノードNを含むように、複数のノードNを複数のグループに分ける、複数のスケジュール候補を生成する。これにより、設定部402は、いずれかのグループに含まれるノードNが保守作業を実施すれば、連続的に接続された2以上のノードNが使用可能になるようにすることができる。このため、設定部402は、処理がサブメッシュ状またはサブトーラス状になる1以上のノードNを使用する場合に対応することができ、他の処理の通信と干渉しないようにすることができる。
設定部402は、例えば、第4条件にしたがって複数のスケジュール候補を生成する。第4条件は、例えば、それぞれのグループに割り当てる保守時間帯が連続するように、保守予定期間における、保守時間分の保守時間帯を、グループ間で重複しないように割り当てることである。
設定部402は、具体的には、それぞれのグループに割り当てる保守時間帯が連続するように、保守予定期間における、保守時間分の保守時間帯を、グループ間で重複しないように割り当てる、複数のスケジュール候補を生成する。これにより、設定部402は、システムソフトの互換性がないノードNが混在しづらくなるように、段階的に保守作業を実施させることができる。
設定部402は、第1条件〜第4条件のいくつかの条件にしたがって複数のスケジュール候補を生成してもよい。また、設定部402は、第1条件〜第4条件のすべてにしたがって複数のスケジュール候補を生成してもよい。
設定部402は、実行済みの処理に用いられたノードNの数の平均値に基づいて、いずれかのグループに含めることが好ましいノードNの数を示す所定数を設定する。設定部402は、例えば、実行済みの処理に用いられたノードNの数の平均値を、いずれかのグループに含めることが好ましいノードNの数を示す所定数として設定し、記憶部400に記憶する。これにより、設定部402は、いずれかのグループに含めることが好ましいノードNの数を示す所定数として、過去に処理に用いられたノードNの数の平均値に基づいて適当な数と判断される数を自動で設定することができる。
評価部403は、複数のスケジュール候補のそれぞれのスケジュール候補を、保守予定期間におけるノードNによる処理の実行予定に基づいて評価する。評価部403は、例えば、それぞれのスケジュール候補の評価値を、ノードNによる処理の実行開始時刻が実行開始予定時刻より遅延する度合いが小さいほど、評価が高いことを示すように算出する。これにより、評価部403は、ノードNで実行予定の処理への悪影響が小さいスケジュール候補が、相対的に高く評価されるようにすることができる。
割当部404は、評価した結果に基づいて、複数のスケジュール候補のいずれかのスケジュール候補を出力する。割当部404は、例えば、いずれかのスケジュール候補に基づいて、複数のノードNを複数のグループに分けて段階的に保守作業を実施させ、保守予定期間におけるノードNによる処理の実行予定を変更し、記憶部400に記憶されたスケジュール情報を更新する。
割当部404は、具体的には、評価値が最も評価が高いことを示すスケジュール候補に基づいて、複数のノードNを複数のグループに分けて段階的に保守作業を実施させる。また、割当部404は、評価値が最も評価が高いことを示すスケジュール候補に基づいて、ジョブスケジューラ204を制御し、保守予定期間におけるノードNによる処理の実行予定を変更し、記憶部400に記憶されたスケジュール情報を更新する。これにより、割当部404は、ノードNに対する保守作業によるノードNで実行予定の処理への悪影響を抑制しつつ、処理に1以上のノードNを効率よく割り当て直すことができる。
出力部405は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。出力部405は、例えば、各機能部の処理結果を、管理者装置202に送信する。これにより、管理者は、各機能部の処理結果を把握し、並列処理システム200の管理に利用可能になる。
出力部405は、並列処理装置100がジョブスケジューラ204を有さなければ、ジョブスケジューラを有する他のコンピュータに、評価値が最も評価が高いことを示すスケジュール候補を送信してもよい。これにより、出力部405は、ジョブスケジューラを有する他のコンピュータに、複数のノードNを複数のグループに分けて段階的に保守作業を実施させることができる。
(実施例1)
次に、図5〜図14を用いて、実施例1について説明する。実施例1は、並列処理システム200を実現するノードNの数が、1つの保守領域当たりに含めることが好ましいノードNの数を示す所定数で割り切れる場合についての実施例である。
図5〜図14は、実施例1を示す説明図である。実施例1では、並列処理システム200は、12個のノードNを含む。12個のノードNは、1次元トーラス状に接続される。それぞれのノードNは、座標Xが割り当てられる。以下の説明では、それぞれのノードNを区別する場合、ノードNxと表記する場合がある。また、実施例1では、保守開始時刻は05であるとする。また、実施例1では、保守終了時刻は10であるとする。時刻は、例えば、1単位時間ごとに区切られている。また、実施例1では、保守時間は1単位時間であるとする。ここで、図5の説明に移行する。
<複数のノードNによる複数のジョブの実行予定>
図5は、実施例1の初期状態における、複数のノードNによる複数のジョブの実行予定を示す。具体的には、図5のグラフ500は、複数のノードNによる複数のジョブの実行予定を示す。図5のグラフ500の縦軸は、ノードNの座標を示す。図5のグラフ500の横軸は、01〜11までの時刻を示す。
図5のグラフ500内の四角形は、ジョブに対して、いずれのノードNと、いずれの時間帯とが割り当てられたかを示す。図5のグラフ500内の四角形の縦軸方向の辺の長さは、ジョブに対して割り当てられたノードNの数を示す。図5のグラフ500内の四角形の横軸方向の辺の長さは、ジョブに対して割り当てられた時間帯の長さを示す。
図5の例では、例えば、ジョブJ1に対して、ノードN1〜N6と、時刻01〜06の時間帯とを割り当てた実行予定がある。ジョブJ2に対して、ノードN9〜N12と、時刻01〜03の時間帯とを割り当てた実行予定がある。ジョブJ3に対して、ノードN7〜N9と、時刻03〜07の時間帯とを割り当てた実行予定がある。ジョブJ4に対して、ノードN1〜N6と、時刻06〜10の時間帯とを割り当てた実行予定がある。ジョブJ5に対して、ノードN8〜N11と、時刻07〜11の時間帯とを割り当てた実行予定がある。ここで、図6の説明に移行し、並列処理装置100が、上述したノードNの座標をどのように記憶するかについて説明する。
<ノード管理DB600の記憶内容の一例>
図6は、ノードNの座標を記憶するノード管理DB600の記憶内容の一例を示す。並列処理装置100は、上述したノードNの座標を、ノード管理DB600を用いて記憶する。ノード管理DB600は、例えば、図3に示した並列処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図6に示すように、ノード管理DB600は、計算機名と座標とのフィールドを有する。ノード管理DB600は、ノードNごとに各フィールドに情報を設定することにより、ノードN管理情報がレコードとして記憶される。
計算機名のフィールドには、ノードNを識別する名称が設定される。ノードNを識別する名称は、例えば、「Nx」である。ノードNを識別する名称は、具体的には、「N1〜N12」である。座標のフィールドには、ノードNの座標が設定される。ノードNの座標は、例えば、「X」である。ここで、図7の説明に移行し、並列処理装置100が、上述した複数のジョブの実行予定をどのように記憶するかについて説明する。
<実行予定DB700の記憶内容の一例>
図7は、複数のジョブの実行予定を記憶する実行予定DB700の記憶内容の一例を示す。並列処理装置100は、上述した複数のジョブの実行予定を、実行予定DB700を用いて記憶する。実行予定DB700は、例えば、図3に示した並列処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図7に示すように、実行予定DB700は、IDと、X座標最大値(Xmax)と、X座標最小値(Xmin)と、ジョブ開始予定時刻(Jstart)と、ジョブ終了予定時刻(Jend)とのフィールドを有する。実行予定DB700は、ジョブごとに各フィールドに情報を設定することにより、実行予定情報がレコードとして記憶される。
IDのフィールドには、ジョブを識別するIDが設定される。X座標最大値のフィールドには、IDが示すジョブに割り当てられたノードNの座標の最大値が設定される。X座標最小値のフィールドには、IDが示すジョブに割り当てられたノードNの座標の最小値が設定される。
ジョブ開始予定時刻のフィールドには、IDが示すジョブに割り当てられた時間帯の先頭時刻であり、IDが示すジョブが実行開始される実行開始予定時刻が設定される。ジョブ終了予定時刻のフィールドには、IDが示すジョブに割り当てられた時間帯の末尾時刻であり、IDが示すジョブが実行終了される実行終了予定時刻が設定される。ここで、図8の説明に移行し、並列処理装置100が、上述した保守開始時刻、保守終了時刻、および保守時間などの保守情報を、どのように記憶するかについて説明する。
<保守情報DB800の記憶内容の一例>
図8は、保守情報を記憶する保守情報DB800の記憶内容の一例を示す。並列処理装置100は、上述した保守情報を、保守情報DB800を用いて記憶する。保守情報DB800は、例えば、図3に示した並列処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図8に示すように、保守情報DB800は、保守開始時刻(Hstart)と、保守終了時刻(Hend)と、一回の保守時間(Hlong)とのフィールドを有する。保守情報DB800は、各フィールドに情報を設定することにより、保守情報がレコードとして記憶される。
保守開始時刻のフィールドには、保守作業の実施が許可された保守予定期間の先頭時刻が設定される。保守終了時刻のフィールドには、保守作業の実施が許可された保守予定期間の末尾時刻が設定される。一回の保守時間のフィールドには、保守作業にかかる所定時間が設定される。ここで、図9〜図11の説明に移行し、並列処理装置100が、保守領域候補リストを生成する具体例について説明する。
<保守領域候補リストを生成する具体例>
図9〜図11は、保守領域候補リストを生成する具体例を示す。図9〜図11において、並列処理装置100は、システムソフトの互換性がないノードNが混在し、ジョブが使用するノードNが不足することを防止しやすくするために、ノードNがどのくらいの数のノードNを使用する傾向があるかを特定しておく。
そして、並列処理装置100は、特定した数を、1つの保守領域当たりに含めることが好ましいノードNの数を示す所定数として設定し、保守領域候補リストを生成する。結果として、並列処理装置100は、保守領域に含まれるノードNが保守作業を実施すれば、所定数のノードNが使用可能になるようにすることができ、ジョブが使用するノードNが不足することを防止しやすくすることができる。
図9において、並列処理装置100は、スケジュール情報に基づいて、実行済みのジョブが使用したノードNの数を取得する。並列処理装置100は、取得したノードNの数の平均値を算出し、保守領域に含めることが好ましいノードNの数を示す所定数として設定する。
実施例1では、並列処理装置100は、取得したノードNの数の平均値「6」を算出し、保守領域に含めることが好ましいノードNの数を示す所定数「6」として設定する。並列処理装置100は、設定した保守領域に含めることが好ましいノードNの数を示す所定数を、形状DBを用いて記憶する。形状DBは、例えば、図3に示した並列処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図9に示すように、形状DB900は、計算機数(Hnum)と、X座標の長さ(Hlen(X))とのフィールドを有する。形状DB900は、各フィールドに情報を設定することにより、所定数情報がレコードとして記憶される。
計算機数のフィールドには、実行済みのジョブが使用したノードNの数の平均値が設定される。X座標の長さのフィールドには、保守領域に含めることが好ましいノードNの数を示す所定数であり、グラフ上での保守領域の縦軸方向の長さを示す所定数が設定される。
ここでは、並列処理装置100が、ジョブが使用したノードNの数の平均値を、保守領域に含めることが好ましいノードNの数を示す所定数として設定する場合について説明したが、これに限らない。例えば、並列処理装置100が、ジョブが使用したノードNの数について、平均値以外の統計値を算出し、算出した統計値を保守領域に含めることが好ましいノードNの数を示す所定数として設定する場合があってもよい。統計値は、例えば、中央値や最頻値などである。
ここでは、並列処理装置100が、ジョブが使用したノードNの数の平均値を、保守領域に含めることが好ましいノードNの数を示す所定数として設定する場合について説明したが、これに限らない。例えば、並列処理装置100が、ジョブが使用したノードNの数の平均値の代わりに、管理者によって指定された数を、保守領域に含めることが好ましいノードNの数を示す所定数として設定してもよい。ここで、図10の説明に移行する。
図10において、並列処理装置100は、ノード管理DB600や形状DB900に基づいて、複数の保守領域候補リストを生成する。まず、並列処理装置100は、例えば、1つ目の保守領域の始点となる座標Horgを決定する。並列処理装置100は、決定した保守領域の始点となる座標Horgから、設定されたX座標の長さHlen(X)になる保守領域を、1つ目の保守領域H(1)として設定する。次に、並列処理装置100は、1つ目の保守領域H(1)と隣接し、設定されたX座標の長さHlen(X)になる保守領域H(2)を設定する。
並列処理装置100は、すべてのノードNが保守領域に含まれるまで、同様に保守領域を設定し、設定した保守領域の組み合わせを、保守領域候補リストHList(1)として生成する。ここで、並列処理装置100は、並列処理システム200を実現するノードNの数が、1つの保守領域当たりに含めることが好ましいノードNの数を示す所定数で割り切れなければ、割り切れない余りの分のノードNを、1つの保守領域として設定する。
並列処理装置100は、1つ目の保守領域の始点となる座標Horgを一つずつずらしながら、同様に、保守領域候補リストHList(2)〜HList(6)を生成する。並列処理装置100が、複数の保守領域候補リストを生成する具体例は、例えば、図16に後述する保守領域候補リスト作成処理手順によって実現される。
並列処理装置100は、生成した保守領域候補リストHList(1)〜HList(6)を、保守領域候補リストDBを用いて記憶する。保守領域候補リストDBは、例えば、図3に示した並列処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図10に示すように、保守領域候補リストDB1000は、リスト名と、保守領域H(1)のX座標の始まりと、保守領域H(1)のX座標の終わりと、保守領域H(2)のX座標の始まりと、保守領域H(2)のX座標の終わりとのフィールドを有する。保守領域候補リストDB1000は、各フィールドに情報を設定することにより、保守領域候補リストがレコードとして記憶される。
リスト名のフィールドには、保守領域候補リストを識別する名称が設定される。保守領域H(1)のX座標の始まりのフィールドには、保守領域H(1)の始点になるX座標が設定される。保守領域H(1)のX座標の終わりのフィールドには、保守領域H(1)の終点になるX座標が設定される。
保守領域H(2)のX座標の始まりのフィールドには、保守領域H(2)の始点になるX座標が設定される。保守領域H(2)のX座標の終わりのフィールドには、保守領域H(2)の終点になるX座標が設定される。ここで、図11の説明に移行する。
<保守領域候補リストを選択する具体例>
図11は、保守領域候補リストを選択する具体例を示す。図11において、並列処理装置100は、複数の保守領域候補リストのうち、ジョブの実行予定に与える悪影響についての観点から、比較的好ましい保守領域候補リストを選択する。
並列処理装置100は、スケジュールDB206に基づいて、保守開始時刻から保守終了時刻までの保守期間において実行予定のジョブを特定し、それぞれの保守領域候補リストと比較し、比較的好ましい、いずれかの保守候補リストを選択する。
ここで、保守期間において、保守領域に含まれるノードNで、ジョブの実行予定があると、保守作業を実施した際に、ジョブの実行予定を変更することになり、ジョブの実行開始時刻が実行開始予定時刻から遅延してしまう可能性が大きくなる。このため、並列処理装置100は、保守期間においてジョブの実行予定があるノードNと、保守領域との重複度合いが相対的に小さくなる、保守領域候補リストを選択することが好ましい。
並列処理装置100は、具体的には、それぞれの保守領域候補リストの保守領域のX座標の最大値から最小値までの範囲と、ジョブに割り当てられた1以上のノードNの座標の最大値から最小値までの範囲とを比較する。そして、並列処理装置100は、比較した結果に基づいて、保守期間において、保守領域に含まれるノードNでの実行予定があるジョブを特定し、保守領域に含まれるノードNでの実行予定があるジョブの数を算出する。
並列処理装置100は、特定したジョブと、算出したジョブの数とを、比較結果DBを用いて記憶する。比較結果DBは、例えば、図3に示した並列処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図11に示すように、比較結果DB1100は、リスト名と、保守領域H(1)と重なるジョブと、保守領域H(2)と重なるジョブと、重なるジョブの数とのフィールドを有する。比較結果DB1100は、各フィールドに情報を設定することにより、比較結果がレコードとして記憶される。
リスト名のフィールドには、保守領域候補リストを識別する名称が設定される。保守領域H(1)と重なるジョブのフィールドには、保守領域H(1)に含まれるノードNでの実行予定があるジョブを識別する名称が設定される。保守領域H(2)と重なるジョブのフィールドには、保守領域H(2)に含まれるノードNでの実行予定があるジョブを識別する名称が設定される。
重なるジョブの数のフィールドには、保守領域H(1)に含まれるノードNでの実行予定があるジョブの数と、保守領域H(2)に含まれるノードNでの実行予定があるジョブの数との和が設定される。並列処理装置100は、重なるジョブの数が最小である、保守領域候補リストHList(1)を選択する。
並列処理装置100が、保守領域候補リストを選択する具体例は、例えば、図17に後述する保守領域候補リスト選択処理手順によって実現される。ここで、図12の説明に移行し、並列処理装置100が、複数のスケジュール候補を生成する具体例について説明する。
<保守時間帯を割り当て、複数のスケジュール候補を生成する具体例>
図12は、保守時間帯を割り当て、複数のスケジュール候補を生成する具体例を示す。図12において、並列処理装置100は、選択した保守領域候補リストにおける保守領域H(1)と保守領域H(2)とに、重複せずに連続する保守時間帯を割り当てた、複数のスケジュール候補を生成し、評価値を算出する。
並列処理装置100は、図12の表1200に示すように、保守領域H(1)と保守領域H(2)とに保守時間帯を割り当てた、複数のスケジュール候補S(1)〜S(8)を生成する。図12の表1200の列は、保守領域H(1)に割り当てた保守時間帯の先頭時刻を示している。図12の表1200の行は、保守領域H(2)に割り当てた保守時間帯の先頭時刻を示している。
並列処理装置100は、それぞれのスケジュール候補S(1)〜S(8)の評価値を算出する。評価値は、スケジュール候補にしたがって保守作業を実施する場合に、ジョブの実行開始時刻が、実行開始予定時刻から遅延する時間の長さの分、値が大きくなる。評価値は、いずれかのジョブの実行開始時刻が遅延した結果、さらに他のジョブの実行開始時刻が、実行開始予定時刻から遅延する場合、他のジョブの実行開始時刻が、実行開始予定時刻から遅延する時間の長さの分、値が大きくなる。
図12の表1200の「H(1):a」は、保守領域H(1)に応じて評価値に加算される値aを示している。図12の表1200の「H(2):b」は、保守領域H(2)に応じて評価値に加算される値bを示している。図12の表1200の「合計」は、評価値を示している。並列処理装置100が、複数のスケジュール候補を生成し、評価値を算出する具体例は、例えば、図18に後述する評価値算出処理手順によって実現される。ここで、図13の説明に移行する。
<ジョブの実行予定を変更する具体例>
図13は、ジョブの実行予定を変更する具体例を示す。図13において、並列処理装置100は、評価値が最小であるスケジュール候補S(3)を選択する。そして、並列処理装置100は、選択したスケジュール候補S(3)にしたがって、保守作業の実施予定を設定し、ジョブの実行予定を変更する。
並列処理装置100が、保守作業を実施する実施予定を設定し、ジョブの実行予定を変更した結果は、図13に示すようになる。具体的には、図13のグラフ1300は、複数のノードNによる、保守作業の実施予定と、複数のジョブの実行予定とを示す。図13のグラフ1300の縦軸は、ノードNの座標を示す。図13のグラフ1300の横軸は、01〜11までの時刻を示す。
図13のグラフ1300内の四角形は、保守作業またはジョブに対して、いずれのノードNと、いずれの時間帯とが割り当てられたかを示す。図13のグラフ1300内の四角形の縦軸方向の辺の長さは、保守作業またはジョブに対して割り当てられたノードNの数を示す。図13のグラフ1300内の四角形の横軸方向の辺の長さは、保守作業またはジョブに対して割り当てられた時間帯の長さを示す。
図13の例では、ジョブJ1,J2,J3の実行予定は、図5と同様である。保守作業H1に対して、ノードN1〜N6と、時刻06〜07の時間帯とを割り当てた実施予定が設定される。保守作業H2に対して、ノードN7〜N12と、時刻07〜08の時間帯とを割り当てた実施予定が設定される。
ジョブJ4の実行予定は、保守作業H1により1単位時刻遅延することになる。ジョブJ4の実行予定は、ノードN1〜N6と、時刻07〜11の時間帯とを割り当てた実行予定に変更される。ジョブJ5の実行予定は、保守作業H2により1単位時刻遅延することになる。ジョブJ5の実行予定は、ノードN8〜N11と、時刻08〜12の時間帯とを割り当てた実行予定に変更される。ここで、図14の説明に移行し、並列処理装置100が、保守作業の実施予定をどのように記憶するかについて説明する。
<実施予定DB1400の記憶内容の一例>
図14は、保守作業の実施予定を記憶する実施予定DB1400の記憶内容の一例を示す。並列処理装置100は、設定した保守作業の実施予定を、実施予定DB1400を用いて記憶する。実施予定DB1400は、例えば、図3に示した並列処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図14に示すように、実施予定DB1400は、保守領域IDと、X座標の最小値と、X座標の最大値と、保守開始時刻と、保守終了時刻とのフィールドを有する。実施予定DB1400は、保守領域ごとに各フィールドに情報を設定することにより、実施予定情報がレコードとして記憶される。
保守領域IDのフィールドには、保守領域を識別するIDが設定される。X座標の最小値のフィールドには、保守領域IDが示す保守領域に含まれる1以上のノードNの座標の最小値が設定される。X座標の最大値のフィールドには、保守領域IDが示す保守領域に含まれる1以上のノードNの座標の最大値が設定される。
保守開始時刻のフィールドには、保守領域IDが示す保守領域に割り当てられた保守時間帯の先頭時刻であり、保守領域IDが示す保守領域について保守作業が実施開始される開始時刻が設定される。保守終了時刻のフィールドには、保守領域IDが示す保守領域に割り当てられた保守時間帯の末尾時刻であり、保守領域IDが示す保守領域について保守作業が実施終了される終了時刻が設定される。
これにより、並列処理装置100は、複数のノードNを複数の保守領域に分けて段階的に保守作業を実施させ、ノードNの保守作業によるノードNで実行予定の処理への悪影響を抑制しつつ、処理に1以上のノードNを効率よく割り当てやすくすることができる。
並列処理装置100は、例えば、それぞれの保守領域に含まれる、保守期間でジョブの実行予定があるノードNの数が小さくなるように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。並列処理装置100は、具体的には、複数の保守領域候補リストから、それぞれの保守領域に含まれる、保守期間でジョブの実行予定があるノードNの数が最小である保守領域候補リストを選択して、複数のスケジュール候補を生成することができる。
結果として、並列処理装置100は、ジョブの実行予定に与える悪影響についての観点から、比較的好ましい複数のスケジュール候補を生成することができる。このため、並列処理装置100は、評価の対象になるスケジュール候補の数を抑制し、評価にかかる処理量の低減化を図ることができる。
並列処理装置100は、例えば、少なくともいずれかの保守領域が、所定数以上のノードNを含むように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。並列処理装置100は、具体的には、少なくともいずれかの保守領域が、1つの保守領域当たりに含めることが好ましい所定数のノードNを含むように、保守領域候補リストを生成することができる。
結果として、並列処理装置100は、所定数のノードNを含むいずれかの保守領域について、所定数のノードNに一斉に保守作業を実施させれば、所定数のノードNが使用可能になるようにすることができる。そして、並列処理装置100は、所定数のノードNを使用するジョブが発生しても、所定数のノードNを使用するジョブに割り当てるノードNが不足することを防止しやすくすることができる。
並列処理装置100は、例えば、実行済みのジョブに用いられたノードNの数の平均値を基に、少なくともいずれかの保守領域に含めることが好ましいノードNの数を示す所定数を設定することができる。結果として、並列処理装置100は、少なくともいずれかの保守領域に含めることが好ましいノードNの数を示す所定数として、過去にジョブに用いられたノードNの数の平均値に基づいて、適当な数と判断される数を自動で設定することができる。このため、並列処理装置100は、管理者の負担を低減化することができる。
並列処理装置100は、少なくともいずれかの保守領域が、連続的に接続された2以上のノードNを含むように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。並列処理装置100は、具体的には、少なくともいずれかの保守領域が、連続的に接続された2以上のノードNを含むように、保守領域候補リストを生成することができる。
結果として、並列処理装置100は、連続的に接続された2以上のノードNを含むいずれかの保守領域について、連続的に接続された2以上のノードNに一斉に保守作業を実施させ、連続的に接続された2以上のノードNが使用可能になるようにすることができる。このため、並列処理装置100は、ジョブがサブメッシュ状またはサブトーラス状になる1以上のノードNを使用する場合に対応することができ、他のジョブの通信と干渉しないようにすることができる。
並列処理装置100は、いずれかのスケジュール候補に基づいて、複数のノードNによるジョブの実行予定を調整することができる。結果として、並列処理装置100は、ノードNに対する保守作業によるノードNで実行予定のジョブへの悪影響を抑制しつつ、ジョブに1以上のノードNを効率よく割り当て直すことができる。また、並列処理装置100は、保守作業が実施中であるノードNにおいて、利用者から実行依頼されたジョブを実行しないようにすることができる。このため、並列処理装置100は、保守作業が不安定になったり、利用者から実行依頼されたジョブが不安定になってしまうことを防止することができる。
並列処理装置100は、それぞれの保守領域に割り当てる保守時間帯が連続するように、保守期間での保守時間分の保守時間帯を保守領域間で重複しないように割り当てる、複数のスケジュール候補を生成することができる。結果として、並列処理装置100は、システムソフトの互換性がないノードNが混在しづらくなるように、段階的に保守作業を実施させることができる。
(実施例1における保守処理手順の一例)
次に、図15を用いて、実施例1における保守処理手順の一例について説明する。
図15は、保守処理手順の一例を示すフローチャートである。図15において、並列処理装置100は、保守開始時刻や保守終了時刻を含む保守情報と、ジョブの実行予定を含むスケジュール情報とを取得する(ステップS1501)。
次に、並列処理装置100は、保守情報に基づいて、図16に後述する保守領域候補リスト作成処理を実行する(ステップS1502)。そして、並列処理装置100は、スケジュール情報に基づいて、図17に後述する保守領域候補リスト選択処理を実行する(ステップS1503)。
次に、並列処理装置100は、図18に後述する評価値算出処理を実行し、複数のスケジュール候補のそれぞれのスケジュール候補の評価値を算出する(ステップS1504)。そして、並列処理装置100は、評価値が最も大きいスケジュール候補に基づいて、再スケジューリングする(ステップS1505)。
その後、並列処理装置100は、保守処理を終了する。これにより、並列処理装置100は、複数のノードNを複数の保守領域に分けて段階的に保守作業を実施させ、ノードNの保守作業によるノードNで実行予定のジョブへの悪影響を抑制しつつ、ジョブに1以上のノードNを効率よく割り当てやすくすることができる。
(実施例1における保守領域候補リスト作成処理手順の一例)
次に、図16を用いて、実施例1における保守領域候補リスト作成処理手順の一例について説明する。
図16は、保守領域候補リスト作成処理手順の一例を示すフローチャートである。図16において、並列処理装置100は、n=0と初期化し、i=1と初期化する。まず、並列処理装置100は、n=n+1と設定する(ステップS1601)。
次に、並列処理装置100は、保守領域の始点となる座標Horg=nと設定する(ステップS1602)。そして、並列処理装置100は、始点となる座標Horgに基づいて、1つ目の保守領域H(1)を設定する(ステップS1603)。次に、並列処理装置100は、i=i+1を設定する(ステップS1604)。そして、並列処理装置100は、i番目の保守領域H(i)を設定する(ステップS1605)。
次に、並列処理装置100は、保守領域が割り当てられていないノードNがあるか否かを判定する(ステップS1606)。ここで、保守領域が割り当てられていないノードNがある場合(ステップS1606:Yes)、並列処理装置100は、ステップS1604の処理に戻る。
一方で、保守領域が割り当てられていないノードNがない場合(ステップS1606:No)、並列処理装置100は、n<Hnumであるか否かを判定する(ステップS1607)。ここで、n<Hnumである場合(ステップS1607:Yes)、並列処理装置100は、ステップS1601の処理に戻る。
一方で、n<Hnumではない場合(ステップS1607:No)、並列処理装置100は、保守領域候補リスト作成処理を終了する。これにより、並列処理装置100は、複数の保守領域候補リストを作成し、図17に後述する保守領域候補リスト選択処理において、いずれの保守領域候補リストが好ましいかを選択するための母集団を作成することができる。
(実施例1における保守領域候補リスト選択処理手順の一例)
次に、図17を用いて、実施例1における保守領域候補リスト選択処理手順の一例について説明する。
図17は、保守領域候補リスト選択処理手順の一例を示すフローチャートである。図17において、並列処理装置100は、いずれかの保守領域候補リストHList(i)を選択する(ステップS1701)。
次に、並列処理装置100は、選択した保守領域候補リストHList(i)のいずれかの保守領域H(j)を選択する(ステップS1702)。そして、並列処理装置100は、いずれかのジョブJ(k)を選択する(ステップS1703)。
次に、並列処理装置100は、選択した保守領域H(j)の座標の最大値から最小値までの範囲と、選択したジョブJ(k)の座標の最大値から最小値までの範囲とを比較する。並列処理装置100は、比較した結果に基づいて、保守領域H(j)にジョブJ(k)が含まれるか否かを確認した結果を記憶する(ステップS1704)。
そして、並列処理装置100は、選択していないジョブがあるか否かを判定する(ステップS1705)。ここで、選択していないジョブがある場合(ステップS1705:Yes)、並列処理装置100は、ステップS1703の処理に戻る。
一方で、すべてのジョブを選択した場合(ステップS1705:No)、並列処理装置100は、選択していない保守領域があるか否かを判定する(ステップS1706)。ここで、選択していない保守領域がある場合(ステップS1706:Yes)、並列処理装置100は、ステップS1702の処理に戻る。
一方で、すべての保守領域を選択した場合(ステップS1706:No)、並列処理装置100は、選択していない保守領域候補リストがあるか否かを判定する(ステップS1707)。ここで、選択していない保守領域候補リストがある場合(ステップS1707:Yes)、並列処理装置100は、ステップS1701の処理に戻る。
一方で、すべての保守領域候補リストを選択した場合(ステップS1707:No)、並列処理装置100は、ステップS1708の処理に移行する。
ステップS1708では、並列処理装置100は、それぞれの保守領域候補リストにおいて保守領域に含まれるジョブの数に基づいて、保守領域に含まれるジョブの数が最も小さくなる保守領域候補リストを選択する(ステップS1708)。
そして、並列処理装置100は、保守領域候補リスト選択処理を終了する。これにより、並列処理装置100は、ジョブの実行予定に与える悪影響についての観点から、比較的好ましい保守領域候補リストを選択することができ、図18に後述する評価値算出処理にかかる処理量の低減化を図ることができる。
(実施例1における評価値算出処理手順の一例)
次に、図18を用いて、実施例1における評価値算出処理手順の一例について説明する。
図18は、評価値算出処理手順の一例を示すフローチャートである。図18において、並列処理装置100は、保守開始時刻から保守終了時刻までの保守予定期間における、いずれかの時刻を選択する(ステップS1801)。そして、並列処理装置100は、選択した時刻に1つ目の保守領域H(1)を開始する場合のノードNの重みを算出する(ステップS1802)。
次に、並列処理装置100は、2つ目以降であるj番目の保守領域H(j)を選択する(ステップS1803)。そして、並列処理装置100は、保守開始時刻から保守終了時刻までの保守予定期間における、いずれかの時刻を選択する(ステップS1804)。
次に、並列処理装置100は、選択した時刻にj番目の保守領域H(j)を開始する場合のノードNの重みを算出する(ステップS1805)。そして、並列処理装置100は、j番目の保守領域H(j)について選択していない時刻があるか否かを判定する(ステップS1806)。ここで、選択していない時刻がある場合(ステップS1806:Yes)、並列処理装置100は、ステップS1804の処理に戻る。
一方で、すべての時刻を選択した場合(ステップS1806:No)、並列処理装置100は、選択していない保守領域があるか否かを判定する(ステップS1807)。ここで、選択していない保守領域がある場合(ステップS1807:Yes)、並列処理装置100は、ステップS1803の処理に戻る。
一方で、すべての保守領域を選択した場合(ステップS1807:No)、並列処理装置100は、1つ目の保守領域H(1)について選択していない時刻があるか否かを判定する(ステップS1808)。ここで、選択していない時刻がある場合(ステップS1808:Yes)、並列処理装置100は、ステップS1801の処理に戻る。
一方で、すべての時刻を選択した場合(ステップS1808:No)、並列処理装置100は、算出したノードNの重みに基づいて、時刻と保守領域とを対応付けたスケジュール候補の評価値を算出する(ステップS1809)。
そして、並列処理装置100は、評価値算出処理を終了する。これにより、並列処理装置100は、ジョブの実行予定に与える悪影響についての観点から、いずれのスケジュール候補が好ましいかを判断する指標として用いられる、評価値を算出することができる。
(実施例2)
次に、図19〜図25を用いて、実施例2について説明する。上述した実施例1は、並列処理システム200を実現するノードNの数が、グループに含めることが好ましいノードNの数を示す所定数で割り切れる場合についての実施例である。これに対し、実施例2は、並列処理システム200を実現するノードNの数が、グループに含めることが好ましいノードNの数を示す所定数で割り切れず、余りが発生する場合についての実施例である。
図19〜図25は、実施例2を示す説明図である。実施例2では、実施例1と同様に、並列処理システム200は、12個のノードNを含む。12個のノードNは、1次元トーラス状に接続される。それぞれのノードNは、座標Xが割り当てられる。また、実施例1と同様に、保守開始時刻は05であり、保守終了時刻は10であるとする。時刻は、例えば、1単位時間ごとに区切られている。また、実施例1と同様に、保守時間は1単位時間であるとする。
<複数のノードNによる複数のジョブの実行予定>
実施例2では、実施例1と同様に、図5に示したようなジョブJ1〜J5の実行予定があるものとする。実施例1と同様に、並列処理装置100は、ノードNの座標を、図6に示したノード管理DB600を用いて記憶する。実施例1と同様に、並列処理装置100は、複数のジョブの実行予定を、図7に示した実行予定DB700を用いて記憶する。実施例1と同様に、並列処理装置100は、保守情報を、図8に示した保守情報DB800を用いて記憶する。ここで、図19および図20の説明に移行し、並列処理装置100が、保守領域候補リストを生成する具体例について説明する。
<保守領域候補リストを生成する具体例>
図19および図20は、保守領域候補リストを生成する具体例を示す。図19および図20において、並列処理装置100は、システムソフトの互換性がないノードNが混在し、ジョブが使用するノードNが不足することを防止しやすくするために、ノードNがどのくらいの数のノードNを使用する傾向があるかを特定しておく。
そして、並列処理装置100は、特定した数を、1つの保守領域当たりに含めることが好ましいノードNの数を示す所定数として設定し、保守領域候補リストを生成する。結果として、並列処理装置100は、保守領域に含まれるノードNが保守作業を実施すれば、所定数のノードNが使用可能になるようにすることができ、ジョブが使用するノードNが不足することを防止しやすくすることができる。
図19において、並列処理装置100は、スケジュール情報に基づいて、実行済みのジョブが使用したノードNの数を取得する。並列処理装置100は、取得したノードNの数の平均値を算出し、保守領域に含めることが好ましいノードNの数を示す所定数として設定する。
実施例2では、並列処理装置100は、取得したノードNの数の平均値「5」を算出し、保守領域に含めることが好ましいノードNの数を示す所定数「5」として設定する。並列処理装置100は、設定した保守領域に含めることが好ましいノードNの数を示す所定数を、形状DB1900を用いて記憶する。形状DB1900は、図9に示した形状DB900と同様であるため、説明を省略する。
ここでは、並列処理装置100が、ジョブが使用したノードNの数の平均値を、保守領域に含めることが好ましいノードNの数を示す所定数として設定する場合について説明したが、これに限らない。例えば、並列処理装置100が、ジョブが使用したノードNの数について、平均値以外の統計値を算出し、算出した統計値を保守領域に含めることが好ましいノードNの数を示す所定数として設定する場合があってもよい。統計値は、例えば、中央値や最頻値などである。
ここでは、並列処理装置100が、ジョブが使用したノードNの数の平均値を、保守領域に含めることが好ましいノードNの数を示す所定数として設定する場合について説明したが、これに限らない。例えば、並列処理装置100が、ジョブが使用したノードNの数の平均値の代わりに、管理者によって指定された数を、保守領域に含めることが好ましいノードNの数を示す所定数として設定してもよい。ここで、図20の説明に移行する。
図20において、並列処理装置100は、ノード管理DB600や形状DB1900に基づいて、複数の保守領域候補リストを生成する。ここでは、並列処理装置100は、並列処理システム200を実現するノードNの数が、グループに含めることが好ましいノードNの数を示す所定数で割り切れないため、それぞれ長さが異なる3つの保守領域を含む保守領域候補リストを生成することになる。
並列処理装置100は、実施例1と同様に、保守領域候補リストHList(1)〜HList(12)を生成する。並列処理装置100は、生成した保守領域候補リストHList(1)〜HList(6)を、保守領域候補リストDB2000を用いて記憶する。保守領域候補リストDB2000は、図10に示した保守領域候補リストDB1000と同様であるため、説明を省略する。ここで、図21の説明に移行する。
<保守領域候補リストを選択する具体例>
図21は、保守領域候補リストを選択する具体例を示す。図21において、並列処理装置100は、複数の保守領域候補リストのうち、ジョブの実行予定に与える悪影響についての観点から、比較的好ましい保守領域候補リストを選択する。
並列処理装置100は、実施例1と同様に、保守期間において、保守領域に含まれるノードNでの実行予定があるジョブを特定し、保守領域に含まれるノードNでの実行予定があるジョブの数を算出する。並列処理装置100は、特定したジョブと、算出したジョブの数とを、比較結果DB2100を用いて記憶する。比較結果DB2100は、図11に示した比較結果DB1100と同様であるため、説明を省略する。ここで、図22の説明に移行する。
図22において、並列処理装置100は、重なるジョブの数が最小である、保守領域候補リストHList(2)および保守領域候補リストHList(7)を選択し、選択結果2200を記憶する。並列処理装置100は、保守領域候補リストHList(2)および保守領域候補リストHList(7)のいずれかを選択してもよい。ここでは、並列処理装置100は、保守領域候補リストHList(2)を選択したとする。ここで、図23の説明に移行し、並列処理装置100が、複数のスケジュール候補を生成する具体例について説明する。
<保守時間帯を割り当て、複数のスケジュール候補を生成する具体例>
図23は、保守時間帯を割り当て、複数のスケジュール候補を生成する具体例を示す。図23において、並列処理装置100は、選択した保守領域候補リストにおける保守領域H(1)と保守領域H(2)と保守領域H(3)とに、重複せずに連続する保守時間帯を割り当てた、複数のスケジュール候補を生成し、評価値を算出する。
並列処理装置100は、図23の表2300に示すように、保守領域H(1)と保守領域H(2)と保守領域H(3)とに保守時間帯を割り当てた、複数のスケジュール候補S(1)〜S(18)を生成する。
並列処理装置100は、それぞれのスケジュール候補S(1)〜S(18)の評価値を算出する。図23の表2300の「重み」の欄に、ジョブの実行開始時刻が、実行開始予定時刻から遅延する時間の長さの分の重みと、評価値とが示されている。ここで、図24の説明に移行する。
<ジョブの実行予定を変更する具体例>
図24は、ジョブの実行予定を変更する具体例を示す。図24において、並列処理装置100は、評価値が最小であるスケジュール候補S(8)およびスケジュール候補S(10)のいずれかを選択する。ここでは、並列処理装置100は、評価値が最小であるスケジュール候補S(8)を選択する。そして、並列処理装置100は、選択したスケジュール候補S(8)にしたがって、保守作業の実施予定を設定し、ジョブの実行予定を変更する。
並列処理装置100が、保守作業を実施する実施予定を設定し、ジョブの実行予定を変更した結果は、図24に示すようになる。具体的には、図24のグラフ2400は、複数のノードNによる、保守作業の実施予定と、複数のジョブの実行予定とを示す。図24のグラフ2400の縦軸は、ノードNの座標を示す。図24のグラフ2400の横軸は、01〜11までの時刻を示す。
図24のグラフ2400内の四角形は、保守作業またはジョブに対して、いずれのノードNと、いずれの時間帯とが割り当てられたかを示す。図24のグラフ2400内の四角形の縦軸方向の辺の長さは、保守作業またはジョブに対して割り当てられたノードNの数を示す。図24のグラフ2400内の四角形の横軸方向の辺の長さは、保守作業またはジョブに対して割り当てられた時間帯の長さを示す。
図24の例では、ジョブJ1,J2,J3の実行予定は、図5と同様である。保守作業H1に対して、ノードN2〜N6と、時刻06〜07の時間帯とを割り当てた実施予定が設定される。保守作業H2に対して、ノードN7〜N11と、時刻08〜09の時間帯とを割り当てた実施予定が設定される。保守作業H3に対して、ノードN1,N12と、時刻07〜08の時間帯とを割り当てた実施予定が設定される。
ジョブJ4の実行予定は、保守作業H1,H3により2単位時刻遅延することになる。ジョブJ4の実行予定は、ノードN1〜N6と、時刻08〜12の時間帯とを割り当てた実行予定に変更される。ジョブJ5の実行予定は、保守作業H2,H3により2単位時刻遅延することになる。ジョブJ5の実行予定は、ノードN8〜N11と、時刻09〜13の時間帯とを割り当てた実行予定に変更される。ここで、図25の説明に移行する。
図25において、並列処理装置100は、設定した保守作業の実施予定を、実施予定DB2500を用いて記憶する。実施予定DB2500は、図14に示した実施予定DB1400と同様であるため、説明を省略する。
これにより、並列処理装置100は、複数のノードNを複数の保守領域に分けて段階的に保守作業を実施させ、ノードNの保守作業によるノードNで実行予定の処理への悪影響を抑制しつつ、処理に1以上のノードNを効率よく割り当てやすくすることができる。
並列処理装置100は、例えば、それぞれの保守領域に含まれる、保守期間でジョブの実行予定があるノードNの数が小さくなるように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。並列処理装置100は、具体的には、複数の保守領域候補リストから、それぞれの保守領域に含まれる、保守期間でジョブの実行予定があるノードNの数が最小である保守領域候補リストを選択して、複数のスケジュール候補を生成することができる。
結果として、並列処理装置100は、ジョブの実行予定に与える悪影響についての観点から、比較的好ましい複数のスケジュール候補を生成することができる。このため、並列処理装置100は、評価の対象になるスケジュール候補の数を抑制し、評価にかかる処理量の低減化を図ることができる。
並列処理装置100は、例えば、少なくともいずれかの保守領域が、所定数以上のノードNを含むように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。並列処理装置100は、具体的には、少なくともいずれかの保守領域が、1つの保守領域当たりに含めることが好ましい所定数のノードNを含むように、保守領域候補リストを生成することができる。
結果として、並列処理装置100は、所定数のノードNを含むいずれかの保守領域について、所定数のノードNに一斉に保守作業を実施させれば、所定数のノードNが使用可能になるようにすることができる。そして、並列処理装置100は、所定数のノードNを使用するジョブが発生しても、所定数のノードNを使用するジョブに割り当てるノードNが不足することを防止しやすくすることができる。
並列処理装置100は、例えば、実行済みのジョブに用いられたノードNの数の平均値を基に、少なくともいずれかの保守領域に含めることが好ましいノードNの数を示す所定数を設定することができる。結果として、並列処理装置100は、少なくともいずれかの保守領域に含めることが好ましいノードNの数を示す所定数として、過去にジョブに用いられたノードNの数の平均値に基づいて、適当な数と判断される数を自動で設定することができる。このため、並列処理装置100は、管理者の負担を低減化することができる。
並列処理装置100は、少なくともいずれかの保守領域が、連続的に接続された2以上のノードNを含むように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。並列処理装置100は、具体的には、少なくともいずれかの保守領域が、連続的に接続された2以上のノードNを含むように、保守領域候補リストを生成することができる。
結果として、並列処理装置100は、連続的に接続された2以上のノードNを含むいずれかの保守領域について、連続的に接続された2以上のノードNに一斉に保守作業を実施させ、連続的に接続された2以上のノードNが使用可能になるようにすることができる。このため、並列処理装置100は、ジョブがサブメッシュ状またはサブトーラス状になる1以上のノードNを使用する場合に対応することができ、他のジョブの通信と干渉しないようにすることができる。
並列処理装置100は、いずれかのスケジュール候補に基づいて、複数のノードNによるジョブの実行予定を調整することができる。結果として、並列処理装置100は、ノードNに対する保守作業によるノードNで実行予定のジョブへの悪影響を抑制しつつ、ジョブに1以上のノードNを効率よく割り当て直すことができる。また、並列処理装置100は、保守作業が実施中であるノードNにおいて、利用者から実行依頼されたジョブを実行しないようにすることができる。このため、並列処理装置100は、保守作業が不安定になったり、利用者から実行依頼されたジョブが不安定になってしまうことを防止することができる。
並列処理装置100は、それぞれの保守領域に割り当てる保守時間帯が連続するように、保守期間での保守時間分の保守時間帯を保守領域間で重複しないように割り当てる、複数のスケジュール候補を生成することができる。結果として、並列処理装置100は、システムソフトの互換性がないノードNが混在しづらくなるように、段階的に保守作業を実施させることができる。
(実施例2における保守処理手順の一例)
実施例2における保守処理手順の一例は、図15に示した実施例1における保守処理手順の一例と同様であるため、説明を省略する。
(実施例2における保守領域候補リスト作成処理手順の一例)
実施例2における保守領域候補リスト作成処理手順の一例は、図16に示した実施例1における保守領域候補リスト作成処理手順の一例と同様であるため、説明を省略する。
(実施例2における保守領域候補リスト選択処理手順の一例)
実施例2における保守領域候補リスト選択処理手順の一例は、図17に示した実施例1における保守領域候補リスト選択処理手順の一例と同様であるため、説明を省略する。
(実施例2における評価値算出処理手順の一例)
実施例2における評価値算出処理手順の一例は、図18に示した実施例1における評価値算出処理手順の一例と同様であるため、説明を省略する。
以上説明したように、並列処理装置100によれば、複数のノードNを複数の保守領域に分け、保守期間で保守時間帯を保守領域間で重複しないように割り当てる、複数のスケジュール候補を、保守期間のノードNでの処理の実行予定を基に評価することができる。また、並列処理装置100によれば、評価した結果を基に、複数のスケジュール候補のいずれかのスケジュール候補を出力することができる。これにより、並列処理装置100は、複数のノードNを複数の保守領域に分けて段階的に保守作業を実施させ、ノードNの保守作業によるノードNで実行予定の処理への悪影響を抑制しつつ、処理に1以上のノードNを効率よく割り当てやすくすることができる。
並列処理装置100によれば、それぞれの保守領域に含まれる、保守期間で処理の実行予定があるノードNの数が小さくなるように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。これにより、並列処理装置100は、処理の実行予定に与える悪影響についての観点から、比較的好ましい複数のスケジュール候補を生成することができる。このため、並列処理装置100は、評価の対象になるスケジュール候補の数を抑制し、評価にかかる処理量の低減化を図ることができる。
並列処理装置100によれば、少なくともいずれかの保守領域が、所定数以上のノードNを含むように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。これにより、並列処理装置100は、いずれかの保守領域に含まれるノードNが保守作業を実施すれば、所定数のノードNが使用可能になるようにすることができ、処理が使用するノードNが不足することを防止しやすくすることができる。
並列処理装置100によれば、実行済みの処理に用いられたノードNの数の平均値を基に、いずれかの保守領域に含めることが好ましいノードNの数を示す所定数を設定することができる。これにより、並列処理装置100は、いずれかの保守領域に含めることが好ましいノードNの数を示す所定数として、過去に処理に用いられたノードNの数の平均値を基に適当な数と判断される数を自動で設定することができる。
並列処理装置100によれば、保守領域が連続的に接続された2以上のノードNを含むように、複数のノードNを複数の保守領域に分ける、複数のスケジュール候補を生成することができる。これにより、並列処理装置100は、いずれかのグループに含まれるノードNが保守作業を実施すれば、連続的に接続された2以上のノードNが使用可能になるようにすることができる。このため、並列処理装置100は、処理がサブメッシュ状またはサブトーラス状になる1以上のノードNを使用する場合に対応することができ、他の処理の通信と干渉しないようにすることができる。
並列処理装置100によれば、いずれかのスケジュール候補を基に、保守期間のノードNでの処理の実行予定を変更することができる。これにより、並列処理装置100は、ノードNに対する保守作業によるノードNで実行予定の処理への悪影響を抑制しつつ、処理に1以上のノードNを効率よく割り当て直すことができる。
並列処理装置100によれば、それぞれの保守領域に割り当てる保守時間帯が連続するように、保守期間での保守時間分の保守時間帯を保守領域間で重複しないように割り当てる、複数のスケジュール候補を生成することができる。これにより、並列処理装置100は、システムソフトの互換性がないノードNが混在しづらくなるように、段階的に保守作業を実施させることができる。
なお、本実施の形態で説明した並列処理装置の保守方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した並列処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した並列処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1時刻と第2時刻とを取得し、
複数のノードを複数のグループに分け、取得した前記第1時刻から前記第2時刻までの期間における、前記グループに含まれるノードの保守作業にかかる所定時間分の時間帯を、前記グループ間で重複しないように割り当てる、複数のスケジュール候補のそれぞれのスケジュール候補を、前記期間における前記ノードによる処理の実行予定に基づいて評価し、
評価した結果に基づいて、前記複数のスケジュール候補のいずれかのスケジュール候補を出力する、
制御部を有することを特徴とする並列処理装置。
(付記2)前記制御部は、
前記期間における前記ノードによる処理の実行予定に基づいて、前記複数のグループのそれぞれのグループに含まれる、前記期間において処理の実行予定があるノードの数が小さくなるように、前記複数のノードを前記複数のグループに分ける、前記複数のスケジュール候補を生成する、ことを特徴とする付記1に記載の並列処理装置。
(付記3)前記制御部は、
前記複数のグループの少なくともいずれかのグループが、所定数以上のノードを含むように、前記複数のノードを前記複数のグループに分ける、前記複数のスケジュール候補を生成する、ことを特徴とする付記1または2に記載の並列処理装置。
(付記4)実行済みの処理に用いられたノードの数の平均値に基づいて前記所定数を設定する、ことを特徴とする付記3に記載の並列処理装置。
(付記5)前記グループは、連続的に接続された複数のノードを含む、ことを特徴とする付記1〜4のいずれか一つに記載の並列処理装置。
(付記6)前記制御部は、
前記いずれかのスケジュール候補に基づいて、前記期間における前記ノードによる処理の実行予定を変更する、ことを特徴とする付記1〜5のいずれか一つに記載の並列処理装置。
(付記7)前記制御部は、
前記複数のグループのそれぞれのグループに割り当てる時間帯が連続するように、前記期間における、前記所定時間分の時間帯を、前記グループ間で重複しないように割り当てる、複数のスケジュール候補を生成する、ことを特徴とする付記1〜6のいずれか一つに記載の並列処理装置。
(付記8)コンピュータが、
第1時刻と第2時刻とを取得し、
複数のノードを複数のグループに分け、取得した前記第1時刻から前記第2時刻までの期間における、前記グループに含まれるノードの保守作業にかかる所定時間分の時間帯を、前記グループ間で重複しないように割り当てる、複数のスケジュール候補のそれぞれのスケジュール候補を、前記期間における前記ノードによる処理の実行予定に基づいて評価し、
評価した結果に基づいて、前記複数のスケジュール候補のいずれかのスケジュール候補を出力する、
処理を実行することを特徴とする並列処理装置の保守方法。