(57)【要約】【課題】実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを効率的に行う。【解決手段】情報処理実行制御装置４０は、複数の情報処理資源５０によって、通常情報処理に含まれる部分情報処理５０１が並列に実行されているときに、通常情報処理よりも優先度が高い優先情報処理５０２の実行を指示された場合に、優先情報処理５０２の実行に必要な情報処理資源５０の量を算出する算出部４１と、部分通常情報処理５０１の実行を一時停止して優先情報処理５０２を実行する特定の情報処理資源５１を決定する決定部５２と、実行状態情報５０３を生成して保存するように、特定の情報処理資源５１を制御するとともに、実行状態情報５０３を生成して保存することを実行しないように、特定の情報処理資源５１を除く情報処理資源５０を制御する制御部４３と、を備える。【選択図】      図５
2020129329.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理資源によって、通常情報処理に含まれる部分情報処理が並列に実行されているときに、前記通常情報処理よりも優先度が高い優先情報処理の実行を指示された場合に、前記優先情報処理の実行に必要な前記情報処理資源の量を算出する算出手段と、
前記算出手段による算出結果に基づいて、前記部分情報処理の実行を一時停止して前記優先情報処理を実行する特定の前記情報処理資源を決定する決定手段と、
前記部分情報処理の実行を一時停止する際の前記部分情報処理の実行状態を表す実行状態情報を生成して保存するように、前記特定の情報処理資源を制御するとともに、前記実行状態情報を生成して保存することを実行しないように、前記特定の情報処理資源を除く前記情報処理資源を制御する制御手段と、
を備える情報処理実行制御装置。
【請求項２】
前記制御手段は、前記特定の情報処理資源に対して、前記実行状態情報を表すチェックポイントデータを生成することを指示する命令を発行する、
請求項１に記載の情報処理実行制御装置。
【請求項３】
前記決定手段は、前記部分情報処理による負荷の高さに基づいて、前記特定の情報処理資源を決定する、
請求項１または請求項２に記載の情報処理実行制御装置。
【請求項４】
前記決定手段は、前記部分情報処理による、情報処理資源が備えるプロセッサあるいはメモリの少なくともいずれかの使用率に基づいて、前記特定の情報処理資源を決定する、
請求項３に記載の情報処理実行制御装置。
【請求項５】
前記算出手段は、前記優先情報処理を表すプログラムを構文解析することによって、前記情報処理資源の量を算出する、
請求項１乃至４のいずれか一項に記載の情報処理実行制御装置。
【請求項６】
前記算出手段は、前記情報処理資源であるノードの数を算出する、
請求項１乃至５のいずれか一項に記載の情報処理実行制御装置。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載の情報処理実行制御装置と、
前記複数の情報処理資源と、
を有する情報処理実行制御システム。
【請求項８】
前記特定の情報処理資源は、前記優先情報処理の実行が完了した後、保存された前記実行状態情報を用いて一時停止した前記部分情報処理の実行を再開し、
前記特定の情報処理資源を除く前記情報処理資源は、前記部分情報処理の実行を一時停止する際の前記部分情報処理の実行状態を維持した状態から、前記部分情報処理の実行を再開する、
請求項７に記載の情報処理実行制御システム。
【請求項９】
情報処理装置によって、
複数の情報処理資源によって、通常情報処理に含まれる部分情報処理が並列に実行されているときに、前記通常情報処理よりも優先度が高い優先情報処理の実行を指示された場合に、前記優先情報処理の実行に必要な前記情報処理資源の量を算出し、
前記情報処理資源の量に関する算出結果に基づいて、前記部分情報処理の実行を一時停止して前記優先情報処理を実行する特定の前記情報処理資源を決定し、
前記部分情報処理の実行を一時停止する際の前記部分情報処理の実行状態を表す実行状態情報を生成して保存するように、前記特定の情報処理資源を制御するとともに、前記実行状態情報を生成して保存することを実行しないように、前記特定の情報処理資源を除く前記情報処理資源を制御する、
情報処理実行制御方法。
【請求項１０】
複数の情報処理資源によって、通常情報処理に含まれる部分情報処理が並列に実行されているときに、前記通常情報処理よりも優先度が高い優先情報処理の実行を指示された場合に、前記優先情報処理の実行に必要な前記情報処理資源の量を算出する算出機能と、
前記算出機能による算出結果に基づいて、前記部分情報処理の実行を一時停止して前記優先情報処理を実行する特定の前記情報処理資源を決定する決定機能と、
前記部分情報処理の実行を一時停止する際の前記部分情報処理の実行状態を表す実行状態情報を生成して保存するように、前記特定の情報処理資源を制御するとともに、前記実行状態情報を生成して保存することを実行しないように、前記特定の情報処理資源を除く前記情報処理資源を制御する制御機能と、
をコンピュータに実現させるための情報処理実行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行するように制御する技術に関する。
【背景技術】
【０００２】
高度に情報化された現代社会においては、コンピュータシステムによって、様々なサービスが滞りなく安定した性能で提供されることが要求される。したがって、コンピュータシステムの可用性や性能を向上させることを実現する技術への期待が高まってきている。
【０００３】
このような技術に関連する技術として、特許文献１には、並列Ｉ／Ｏ（Input / Output）を実行するジョブが、その並列Ｉ／Ｏ開始時点において、期待した並列度を得られるだけのＩ／Ｏノードを保有していない場合でも、一時的に必要数のＩ／Ｏノードを確保して、期待した並列度で並列Ｉ／Ｏを実施するようにしたシステムが開示されている。このシステムは、ジョブ開始時においては、期待した並列度で並列Ｉ／Ｏを実行できるだけの多数のＩ／Ｏノードを確保せず、少ない数のＩ／Ｏノードのみを確保しておく。このシステムは、Ｉ／Ｏノードをグループ化する。そして、このシステムは、並列Ｉ／Ｏ開始時に、不足分のＩ／Ｏノードを、他のジョブが保有する通常Ｉ／Ｏ用グループのＩ／Ｏノードから選択することにより、他の実行中のジョブから一時的に確保する。
【０００４】
また、特許文献２には、ネットワークを介して互いに接続され、メモリをそれぞれ有する複数のノードを含むシステムにおいて、それら複数のノードが実行する分散プロセスに対してチェックポイントデータを生成し、生成したチェックポイントデータをメモリに格納するシステムが開示されている。このシステムは、各プロセスにおいて障害が発生する前に、障害リカバリ用の予備ノードをプロセス毎に選択する。このシステムは、チェックポイントデータを選択した予備ノードに事前に割り当て、各プロセスにおいて障害が発生する前に、チェックポイントデータを、各プロセスを実行するノードから、選択された予備ノードに送信し、予備ノードのメモリに格納する。このシステムは、プロセスにおいて障害が起きた場合、予備ノードのメモリに格納されている、少なくとも一つのチェックポイントデータが、検出された障害プロセスをリカバリするのに適しているか否かを判断する。このシステムは、少なくとも一つのチェックポイントデータがリカバリに適していると判断した場合、障害プロセスをリカバリするためのチェックポイントデータを一つ選択し、選択したチェックポイントデータをアクティブにして、少なくとも一つの予備ノード上で一つのプロセスを実行することによって障害プロセスをリカバリする。
【０００５】
また、特許文献３には、少なくともプロセッサとメインメモリとを含むノードが通信路を介して２個以上接続され、通信路を経由してノード間通信を行なう分散メモリ型マルチプロセッサシステムが開示されている。このシステムにおけるノードは、故障発生時の再実行を可能にするために、ある時点で自ノードに関するチェックポイントデータを取得し、故障が発生したときに、直前に取得したチェックポイントデータからデータ処理を再開する機能を有する。そしてこのシステムは、チェックポイントデータの取得の開始を、通信路を介した他のノードに対するデータ送信を抑止して、通信路を経由して送信されるデータの受信を完了させることによって、通信路に送信中のデータが存在しない状態で、他の全てのノードと同期して行なう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２７１９０７号公報
【特許文献２】特表２０１３−５１６６６５号公報
【特許文献３】特開平０９−２５９０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コンピュータシステムによって提供されるサービスの中には、例えば、台風の進路予想や地震発生時における津波予報など、優先度（緊急性）が高いサービスがある。このような優先度が高いサービスを提供する情報処理（ジョブ）は、コンピュータシステムにおいて、通常の（一般的な）サービスを提供する情報処理に優先して実行される。
【０００８】
即ち、コンピュータシステムは、通常のサービスに関する通常ジョブを実行しているときに、緊急性が高いサービスに関する緊急ジョブを実行する命令を入力された場合、通常ジョブを一時停止して緊急ジョブを実行し、緊急ジョブの実行が完了したのちに一時停止した通常ジョブの実行を再開する。この際、コンピュータシステムは、通常ジョブを一時停止したときのその実行状態を表すチェックポイントデータを生成（採取）して保存し、保存したチェックポイントデータを用いて通常ジョブの実行を再開する。
【０００９】
一方、近年、コンピュータシステムの性能を向上させる技術として、プロセッサとメモリとを個々に備えた複数のノード（情報処理資源）によって、ジョブを並列分散処理する並列分散情報処理が、様々なコンピュータシステムにおいて使用されている。このような並列分散情報処理を行うコンピュータシステムでは、通常、上述したチェックポイントデータの生成及び記憶をノードごとに実行する。
【００１０】
したがって、多数のノードを備えた大規模なコンピュータシステムでは、多数のノードに関する膨大なチェックポイントデータを生成して保存する必要がある。さらに、例えばチェックポイントデータをノード間で共有するストレージ装置等に格納するようなコンピュータシステムでは、多数のノードによる当該ストレージ装置に対するアクセスが集中することによって、チェックポイントデータを保存する処理の性能が低下するおそれがある。
【００１１】
即ち、並列分散情報処理を行う大規模なコンピュータシステム等において、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを効率的に行うことが課題である。特許文献１乃至３は、このような課題については特に言及していない。本願発明の主たる目的は、この課題を解決する情報処理実行制御装置等を提供することである。
【課題を解決するための手段】
【００１２】
本願発明の一態様に係る情報処理実行制御装置は、複数の情報処理資源によって、通常情報処理に含まれる部分情報処理が並列に実行されているときに、前記通常情報処理よりも優先度が高い優先情報処理の実行を指示された場合に、前記優先情報処理の実行に必要な前記情報処理資源の量を算出する算出手段と、前記算出手段による算出結果に基づいて、前記部分情報処理の実行を一時停止して前記優先情報処理を実行する特定の前記情報処理資源を決定する決定手段と、前記部分情報処理の実行を一時停止する際の前記部分情報処理の実行状態を表す実行状態情報を生成して保存するように、前記特定の情報処理資源を制御するとともに、前記実行状態情報を生成して保存することを実行しないように、前記特定の情報処理資源を除く前記情報処理資源を制御する制御手段と、を備える。
【００１３】
上記目的を達成する他の見地において、本願発明の一態様に係る情報処理実行制御方法は、情報処理装置によって、複数の情報処理資源によって、通常情報処理に含まれる部分情報処理が並列に実行されているときに、前記通常情報処理よりも優先度が高い優先情報処理の実行を指示された場合に、前記優先情報処理の実行に必要な前記情報処理資源の量を算出し、前記情報処理資源の量に関する算出結果に基づいて、前記部分情報処理の実行を一時停止して前記優先情報処理を実行する特定の前記情報処理資源を決定し、前記部分情報処理の実行を一時停止する際の前記部分情報処理の実行状態を表す実行状態情報を生成して保存するように、前記特定の情報処理資源を制御するとともに、前記実行状態情報を生成して保存することを実行しないように、前記特定の情報処理資源を除く前記情報処理資源を制御する。
【００１４】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る情報処理実行制御プログラムは、複数の情報処理資源によって、通常情報処理に含まれる部分情報処理が並列に実行されているときに、前記通常情報処理よりも優先度が高い優先情報処理の実行を指示された場合に、前記優先情報処理の実行に必要な前記情報処理資源の量を算出する算出機能と、前記算出機能による算出結果に基づいて、前記部分情報処理の実行を一時停止して前記優先情報処理を実行する特定の前記情報処理資源を決定する決定機能と、前記部分情報処理の実行を一時停止する際の前記部分情報処理の実行状態を表す実行状態情報を生成して保存するように、前記特定の情報処理資源を制御するとともに、前記実行状態情報を生成して保存することを実行しないように、前記特定の情報処理資源を除く前記情報処理資源を制御する制御機能と、をコンピュータに実現させる。
【００１５】
更に、本願発明は、係る情報処理実行制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１６】
本願発明は、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを効率的に行うことを可能とする。
【図面の簡単な説明】
【００１７】
【図１】本願発明の第１の実施形態に係るマルチノードシステム１の構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係る計算ノード２０が通常ジョブ３１０を並列に実行する状況を例示する図である。
【図３】本願発明の第１の実施形態に係る計算ノード２０が通常ジョブ３１０を一時停止して、緊急ジョブ３２０を並列に実行する状況を例示する図である。
【図４】本願発明の第１の実施形態に係るマルチノードシステム１の動作を示すフローチャートである。
【図５】本願発明の第２の実施形態に係る情報処理実行制御装置４０の構成を概念的に示すブロック図である。
【図６】本願発明の各実施形態に係る情報処理実行制御装置を実行可能な情報処理装置９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１９】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係るマルチノードシステム１（情報処理実行制御システム）の構成を示すブロック図である。マルチノードシステム１は、大別して、スケジューラノード１０（情報処理実行制御装置）、複数の計算ノード２０（情報処理資源）、及び、ユーザ端末装置３０を含む。スケジューラノード１０と複数の計算ノード２０とは、通信可能に接続されている。また、スケジューラノード１０とユーザ端末装置３０とは、通信可能に接続されている。
【００２０】
ユーザ端末装置３０は、ユーザが、通常ジョブ３１０（通常情報処理）や緊急ジョブ３２０（優先情報処理）をマルチノードシステム１に実行させる入力操作を行う際に、あるいはマルチノードシステム１によって実行された通常ジョブ３１０や緊急ジョブ３２０の実行結果を確認する際に使用する、例えばパーソナルコンピュータ等の情報処理装置である。
【００２１】
緊急ジョブ３２０は、通常ジョブ３１０よりも緊急性（優先度）が高いジョブであり、例えば、台風の進路予想や地震発生時における津波予報等を行うジョブである。本実施形態に係るマルチノードシステム１は、ユーザ端末装置３０によって、通常ジョブ３１０を実行中に緊急ジョブ３２０の実行を指示された場合、通常ジョブ３１０を一時停止して、緊急ジョブ３２０を優先して実行する。但し、ユーザによる入力操作によってユーザ端末装置３０から発行される命令の中に、実行されるジョブが通常ジョブ３１０であるのか緊急ジョブ３２０であるのかを識別可能な情報が含まれていることとする。
【００２２】
スケジューラノード１０及び計算ノード２０はそれぞれ、サーバ装置等の情報処理装置であり、例えば後述する図６に例示するようなハードウェア構成を備えている。スケジューラノード１０は、ユーザ端末装置３０によって実行を指示された通常ジョブ３１０あるいは緊急ジョブ３２０を実行するように、複数の計算ノード２０を制御する。即ち、スケジューラノード１０は、計算ノード２０によって実行される通常ジョブ３１０あるいは緊急ジョブ３２０に関するスケジューリングを行う。
【００２３】
また、本実施形態に係るマルチノードシステム１は、複数の計算ノード２０によって、通常ジョブ３１０あるいは緊急ジョブ３２０を、並列分散処理することが可能である。即ち、スケジューラノード１０は、通常ジョブ３１０を構成する複数の部分通常ジョブ３１１が、複数の計算ノード２０によって並列に実行されるようにスケジューリングを行う。スケジューラノード１０は、同様に、緊急ジョブ３２０を構成する複数の部分緊急ジョブ３２１が、複数の計算ノード２０によって並列に実行されるようにスケジューリングを行う。
【００２４】
尚、通常ジョブ３１０あるいは緊急ジョブ３２０を実現するプログラムファイルあるいはオブジェクトファイル等は、例えばマルチノードシステム１が備えるストレージ装置（図１において不図示）等に格納されていることとする。即ち、計算ノード２０は、当該ストレージ装置から当該プログラムファイルあるいはオブジェクトファイル等を読み出すことによって、通常ジョブ３１０あるいは緊急ジョブ３２０を実行可能である。
【００２５】
本実施形態に係るスケジューラノード１０は、算出部１１、決定部１２、及び、制御部１３を備える。そして計算ノード２０は、ジョブ実行部２１、及び、チェックポイントデータ生成部２２を備える。但し、図１に示す複数の計算ノード２０の個々は、同様な構成を備えることとする。
【００２６】
計算ノード２０におけるジョブ実行部２１は、スケジューラノード１０による自ノードに対するスケジューリング制御により、部分通常ジョブ３１１、あるいは、部分緊急ジョブ３２１を実行する。
【００２７】
スケジューラノード１０における算出部１１は、複数の計算ノード２０によって部分通常ジョブ３１１が並列に実行されているときに、緊急ジョブ３２０の実行を指示する命令をユーザ端末装置３０から入力された場合に、緊急ジョブ３２０の実行に必要な計算ノード２０の数を算出する。算出部１１は、並列分散処理により実行されるジョブのスケジューリングに関する既存技術を用いて、緊急ジョブ３２０の実行に必要な計算ノード２０の数を算出可能である。
【００２８】
算出部１１は、例えば、緊急ジョブ３２０を表すプログラムファイル等に対する構文解析を行なうことによって、緊急ジョブ３２０の実行に必要な計算ノード２０の数を算出してもよい。算出部１１は、計算ノード２０の数に関する算出結果を決定部１２に通知する。
【００２９】
決定部１２は、算出部１１による算出結果に基づいて、部分通常ジョブ３１１の実行を一時停止して緊急ジョブ３２０を実行する特定の計算ノード２０を決定する。
【００３０】
次に、決定部１２による特定の計算ノード２０を決定する手順について、図２及び図３を参照して説明する。
【００３１】
図２は、本実施形態に係る複数の計算ノード２０が通常ジョブ３１０を並列に実行する状況を例示する図である。図２における２０個の四角形は、それぞれ計算ノード２０を表す。即ち、図２及び後述する図３が示す例では、マルチノードシステム１は、２０個の計算ノード２０を備えることとする。尚、本実施形態に係る以降の説明では、２０個の計算ノード２０の個々を区別するために、計算ノード２０−１乃至２０−２０というように記載する場合がある。
【００３２】
図２に示す例では、２０個の計算ノード２０のうち、計算ノード２０−１乃至２０−１０が通常ジョブ３１０（部分通常ジョブ３１１）を実行している。即ち、計算ノード２０−１１乃至２０−２０は、通常ジョブ３１０（部分通常ジョブ３１１）を実行していない。尚、図２に示す四角形の中の数値は、計算ノード２０−１乃至２０−１０における部分通常ジョブ３１１による負荷の高さを表す。但し、負荷の高さとは、より具体的には、例えば、計算ノード２０が備えるプロセッサあるいはメモリなどの情報処理資源の少なくともいずれかの使用率のことである。尚、図２及び図３が示す例では、四角形の中の数値が大きいほど、上述した負荷が高いことを表すこととする。
【００３３】
図３は、本実施形態に係る複数の計算ノード２０が、通常ジョブ３１０を一時停止して、緊急ジョブ３２０を並列に実行する状況を例示する図である。図３に示す例では、決定部１２は、１２個の計算ノード２０−９乃至２０−２０を、緊急ジョブ３２０を実行する特定の計算ノード２０として決定している。即ち、この場合、算出部１１は、緊急ジョブ３２０の実行に必要な計算ノード２０の数を「１２」と算出している。
【００３４】
決定部１２は、算出部１１による算出結果が「１２」であることに応じて、複数の計算ノード２０のうち、上述した負荷ができるだけ低い１２個の計算ノード２０を、緊急ジョブ３２０を実行する特定の計算ノード２０として決定する。尚、プロセッサあるいはメモリの使用率等により表される負荷の高さを測定することは、既存技術を適用可能であるので、本願ではその詳細な説明を省略する。
【００３５】
図２及び図３に示す例では、決定部１２は、まず、通常ジョブ３１０を実行していない（即ち部分通常ジョブ３１１による負荷が発生していない）状態にある１０個の計算ノード２０−１１乃至２０−２０を、緊急ジョブ３２０を実行する特定の計算ノード２０として決定する。
【００３６】
決定部１２は、次に、部分通常ジョブ３１１による負荷が発生している１０個の計算ノード２０−１乃至２０−１０のうち、部分通常ジョブ３１１による負荷が最も小さい方から２個の計算ノード２０を、残り２個の特定の計算ノード２０として決定する。図３に示す例の場合、部分通常ジョブ３１１による負荷が最も小さい方から２個の計算ノード２０は、負荷の高さが「２」である計算ノード２０−１０、及び、負荷の高さが「３」である計算ノード２０−９である。したがって、決定部１２は、計算ノード２０−９及び２０−１０を、緊急ジョブ３２０を実行する特定の計算ノード２０として追加する決定を行う。
【００３７】
以上の手順により、決定部１２は、１２個の計算ノード２０−９乃至２０−２０を、緊急ジョブ３２０を実行する特定の計算ノード２０として決定する。決定部１２は、この決定結果を制御部１３へ通知する。
【００３８】
制御部１３は、決定部１２による決定結果に基づいて、１２個の計算ノード２０−９乃至２０−２０による緊急ジョブ３２０の実行をスケジューリングする。制御部１３は、まず、通常ジョブ３１０（部分通常ジョブ３１１）を実行している計算ノード２０−１乃至２０−１０に対して、部分通常ジョブ３１１の実行を一時停止するように指示する。計算ノード２０−１乃至２０−１０におけるジョブ実行部２１は、制御部１３による上述した指示に従って、部分通常ジョブ３１１の実行を一時停止する。
【００３９】
制御部１３は、次に、部分通常ジョブ３１１を一時停止した後に緊急ジョブ３２０を実行することになる計算ノード２０−９及び２０−１０に対して、チェックポイントデータ２２０を生成し、生成したチェックポイントデータ２２０を保存するように指示する。但し、チェックポイントデータ２２０は、計算ノード２０が部分通常ジョブ３１１の実行を一時停止したタイミングにおける部分通常ジョブ３１１の実行状態を表すデータであり、より具体的には、例えば、当該タイミングにおいて計算ノード２０が備えるメモリやレジスタ等に格納されている値を表すデータである。
【００４０】
計算ノード２０−９及び２０−１０におけるチェックポイントデータ生成部２２は、制御部１３による指示に従って、チェックポイントデータ２２０を生成する。チェックポイントデータ生成部２２は、生成したチェックポイントデータ２２０を、例えば、自ノードあるいは外部のストレージ装置におけるメモリあるいは磁気ディスク等の記憶デバイスに保存する。計算ノード２０−９及び２０−１０は、チェックポイントデータ２２０の保存が完了したのち、チェックポイントデータ２２０の保存が完了したことをスケジューラノード１０へ通知する。
【００４１】
制御部１３は、部分通常ジョブ３１１を一時停止した後に緊急ジョブ３２０を実行しない計算ノード２０−１乃至２０−８に対しては、チェックポイントデータ２２０を生成して保存することを行わないように制御する。これは、部分通常ジョブ３１１を一時停止した後に緊急ジョブ３２０を実行しない計算ノード２０−１乃至２０−８は、部分通常ジョブ３１１の実行を一時停止したタイミングにおける自ノード内のメモリやレジスタ等に格納されている値がそのまま保存されているので、チェックポイントデータ２２０を生成して保存することを行わなくても、部分通常ジョブ３１１の実行を再開することが可能であるからである。
【００４２】
スケジューラノード１０における制御部１３は、計算ノード２０−９及び２０−１０によるチェックポイントデータ２２０の保存が完了したのち、計算ノード２０−９乃至２０−２０に対して、緊急ジョブ３２０の実行を開始するように指示する。計算ノード２０−９乃至２０−２０におけるジョブ実行部２１は、制御部１３による指示に従い、それぞれ、緊急ジョブ３２０を構成する部分緊急ジョブ３２１を実行する。計算ノード２０−９乃至２０−２０は、部分緊急ジョブ３２１の実行を完了したのち、部分緊急ジョブ３２１の実行を完了したことをスケジューラノード１０へ通知する。
【００４３】
スケジューラノード１０における制御部１３は、計算ノード２０−９乃至２０−２０による緊急ジョブ３２０の実行が完了したのち、計算ノード２０−１乃至２０−１０に対して、一時停止した状態にある通常ジョブ３１０の実行を再開するように指示する。
【００４４】
計算ノード２０−９乃至２０−１０におけるジョブ実行部２１は、制御部１３による指示に従って、保存されているチェックポイントデータ２２０を用いて、部分通常ジョブ３１１の実行を再開する。即ち、計算ノード２０−９乃至２０−１０におけるジョブ実行部２１は、チェックポイントデータ２２０を用いて、自ノード内のメモリやレジスタ等に、部分通常ジョブ３１１を停止したタイミングにおける値を復元したのち、部分通常ジョブ３１１の実行を再開する。
【００４５】
計算ノード２０−１乃至２０−８におけるジョブ実行部２１は、自ノード内のメモリやレジスタ等に、部分通常ジョブ３１１を停止したタイミングにおける値を維持した状態から、部分通常ジョブ３１１の実行を再開する。
【００４６】
次に図４のフローチャートを参照して、本実施形態に係るマルチノードシステム１の動作（処理）について詳細に説明する。
【００４７】
複数の計算ノード２０−ｉ（ｉは２以上の任意の整数）におけるジョブ実行部２１は、部分通常ジョブ３１１を実行する（ステップＳ１０１）。スケジューラノード１０は、ユーザ端末装置３０から緊急ジョブ３２０の実行命令を受信する（ステップＳ１０２）。スケジューラノード１０における算出部１１は、緊急ジョブ３２０の実行に必要なノード数を算出する（ステップＳ１０３）。
【００４８】
スケジューラノード１０における決定部１２は、算出部１１によって算出されたノード数と、計算ノード２０−ｉにおける部分通常ジョブ３１１による負荷の高さとに基づいて、緊急ジョブ３２０を実行する特定の計算ノード２０−ｊ（ｊは任意の自然数）を決定する（ステップＳ１０４）。
【００４９】
スケジューラノード１０における制御部１３は、計算ノード２０−ｉに対して部分通常ジョブ３１１を一時停止することを指示するとともに、計算ノード２０−ｉに含まれる計算ノード２０−ｊに対しては、チェックポイントデータ２２０を生成することを指示する（ステップＳ１０５）。
【００５０】
計算ノード２０−ｉにおけるジョブ実行部２１は、制御部１３による指示に従い、部分通常ジョブ３１１の実行を一時停止する（ステップＳ１０６）。計算ノード２０−ｊにおけるチェックポイントデータ生成部２２は、制御部１３による指示に従い、チェックポイントデータ２２０を生成して、生成したチェックポイントデータ２２０を、自ノード内あるいは外部の記憶デバイスに保存する（ステップＳ１０７）。
【００５１】
制御部１３は、計算ノード２０−ｊに、部分緊急ジョブ３２１を実行するように指示する（ステップＳ１０８）。計算ノード２０−ｊにおけるジョブ実行部２１は、制御部１３による指示に従い、部分緊急ジョブ３２１を実行する（ステップＳ１０９）。
【００５２】
計算ノード２０−ｊによる緊急ジョブ３２０の実行が完了しない場合（ステップＳ１１０でＮｏ）、処理はステップＳ１１０において待機する。計算ノード２０−ｊによる緊急ジョブ３２０の実行が完了した場合（ステップＳ１１０でＹｅｓ）、制御部１３は、計算ノード２０−ｉに対して、部分通常ジョブ３１１の実行を再開するように指示する（ステップＳ１１１）。
【００５３】
計算ノード２０−ｉのうちの計算ノード２０−ｊは、保存したチェックポイントデータ２２０を用いて、自ノード内のメモリやレジスタ等に、部分通常ジョブ３１１を停止したタイミングにおける値を復元したのち、部分通常ジョブ３１１の実行を再開する（ステップＳ１１２）。計算ノード２０−ｊを除く計算ノード２０−iは、自ノード内のメモリやレジスタ等に部分通常ジョブ３１１を停止したタイミングにおける値を維持した状態から（即ち、チェックポイントデータ２２０を用いることなく）、部分通常ジョブ３１１の実行を再開し（ステップＳ１１３）、全体の処理は終了する。
【００５４】
本実施形態に係るスケジューラノード１０（情報処理実行制御装置）は、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを効率的に行うことができる。その理由は、スケジューラノード１０は、緊急ジョブ３２０（優先情報処理）の実行に必要な計算ノード２０（情報処理資源）の数（量）に基づいて緊急ジョブ３２０を実行する特定の計算ノード２０を決定し、当該特定の計算ノード２０を除く、通常ジョブ３１０（通常情報処理）を実行していた計算ノード２０に対しては、チェックポイントデータ２２０（実行状態情報）を生成して保存することを実行しないように制御するからである。
【００５５】
以下に、本実施形態に係るスケジューラノード１０によって実現される効果について、詳細に説明する。
【００５６】
コンピュータシステムは、通常のサービスに関する通常ジョブを実行しているときに、優先度（緊急性）が高い緊急ジョブを実行する命令を入力された場合、通常ジョブを一時停止して緊急ジョブを実行し、緊急ジョブの実行が完了したのちに一時停止した通常ジョブの実行を再開する。この際、コンピュータシステムは、チェックポイントデータを生成して保存し、保存したチェックポイントデータを用いて通常ジョブの実行を再開する。そして、複数のノードによって並列分散情報処理を行うコンピュータシステムでは、通常、上述したチェックポイントデータの生成及び記憶をノードごとに実行する。
【００５７】
したがって、多数のノードを備えた大規模なコンピュータシステムでは、多数のノードに関する膨大なチェックポイントデータを生成して保存する必要があり、システム性能が大きく低下するおそれがある。即ち、並列分散情報処理を行う大規模なコンピュータシステム等において、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを効率的に行うことが課題である。
【００５８】
このような課題に対して、本実施形態に係るスケジューラノード１０は、算出部１１と、決定部１２と、制御部１３とを備え、例えば図１乃至図４を参照して上述した通り動作する。即ち、算出部１１は、複数の計算ノード２０によって、通常ジョブ３１０に含まれる部分通常ジョブ３１１が並列に実行されているときに、通常ジョブ３１０よりも優先度が高い緊急ジョブ３２０の実行を指示された場合に、緊急ジョブ３２０の実行に必要な計算ノード２０の数を算出する。決定部１２は、算出部１１による算出結果に基づいて、部分通常ジョブ３１１の実行を一時停止して緊急ジョブ３２０を実行する特定の計算ノード２０を決定する。制御部１３は、部分通常ジョブ３１１の実行を一時停止する際の部分通常ジョブ３１１の実行状態を表すチェックポイントデータ２２０を生成して保存するように、当該特定の計算ノード２０を制御する。そして制御部１３は、チェックポイントデータ２２０を生成して保存することを実行しないように、当該特定の計算ノード２０を除く計算ノード２０を制御する。
【００５９】
即ち、本実施形態に係るスケジューラノード１０は、部分通常ジョブ３１１を一時停止した後に緊急ジョブ３２０を実行しない計算ノード２０（図３に例示する計算ノード２０−１乃至２０−８）が、部分通常ジョブ３１１の実行を一時停止したタイミングにおける自ノード内のメモリやレジスタ等に格納されている値をそのままの状態で維持していることを活用する。部分通常ジョブ３１１を一時停止した後に緊急ジョブ３２０を実行する計算ノード２０（図３に例示する計算ノード２０−９及び２０−１０）では、緊急ジョブ３２０を実行するのに際して、部分通常ジョブ３１１の実行を一時停止したタイミングにおける自ノード内のメモリやレジスタ等に格納されている値がクリアされるので、チェックポイントデータ２２０を生成して保存することが必要である。これに対して、部分通常ジョブ３１１を一時停止した後に緊急ジョブ３２０を実行しない計算ノード２０に関しては、上述した理由によって、チェックポイントデータ２２０を生成して保存することを行わなくても、一時停止した部分通常ジョブ３１１の実行を再開することが可能である。
【００６０】
以上のことから、本実施形態に係るスケジューラノード１０は、生成して保存するチェックポイントデータ２２０のデータ量を大きく低下させるので、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを効率的に行うことができる。
【００６１】
また、本実施形態に係る決定部１２は、各計算ノード２０における部分通常ジョブ３１１による負荷（例えばプロセッサあるいはメモリの少なくともいずれかの使用率）ができるだけ小さい計算ノード２０を、緊急ジョブ３２０を実行する特定の計算ノード２０として決定する。部分通常ジョブ３１１による負荷が小さいということは、例えば、部分通常ジョブ３１１が使用するデータ量が小さいこと、即ち、生成して保存する必要があるチェックポイントデータ２２０のデータ量が小さいことを示している。従って、本実施形態に係るスケジューラノード１０は、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを、さらに効率的に行うことができる。
【００６２】
＜第２の実施形態＞
図５は、本願発明の第２の実施形態に係る情報処理実行制御装置４０の構成を示すブロック図である。
【００６３】
本実施形態に係る情報処理実行制御装置４０は、算出部４１、決定部４２、及び、制御部４３を備える。
【００６４】
算出部４１は、複数の情報処理資源５０によって、通常情報処理に含まれる部分情報処理５０１が並列に実行されているときに、当該通常情報処理よりも優先度が高い優先情報処理５０２の実行を指示された場合に、優先情報処理５０２の実行に必要な情報処理資源５０の量を算出する。
【００６５】
決定部４２は、算出部４１による算出結果に基づいて、部分情報処理５０１の実行を一時停止して優先情報処理５０２を実行する特定の情報処理資源５１を決定する。
【００６６】
制御部４３は、部分情報処理５０１の実行を一時停止する際の部分情報処理５０１の実行状態を表す実行状態情報５０３を生成して保存するように、特定の情報処理資源５１を制御する。そして、制御部４３は、実行状態情報５０３を生成して保存することを実行しないように、特定の情報処理資源５１を除く情報処理資源５０を制御する。
【００６７】
本実施形態に係る情報処理実行制御装置４０は、実行中の並列分散情報処理を一時停止し、より優先度が高い情報処理を優先させて実行したのち、一時停止した並列分散情報処理の実行を再開することを効率的に行うことができる。その理由は、情報処理実行制御装置４０は、優先情報処理５０２の実行に必要な情報処理資源５０の量に基づいて優先情報処理５０２を実行する特定の情報処理資源５１を決定し、当該特定の情報処理資源５１を除く、部分通常情報処理５０１を実行していた情報処理資源５０に対しては、実行状態情報５０３を生成して保存することを実行しないように制御するからである。
【００６８】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図５に示した情報処理実行制御装置（スケジューラノード）における各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、及び、図５において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・算出部１１及び４１、
・決定部１２及び４２、
・制御部１３及び４３。
【００６９】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図６を参照して説明する。
【００７０】
図６は、本願発明の各実施形態に係る情報処理実行制御装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図６は、図１、及び、図５に示した情報処理実行制御装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００７１】
図６に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・モニターやスピーカ、キーボード等の入出力インタフェース９０９。
【００７２】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【００７３】
そして、上述した実施形態を例に説明した本願発明は、図６に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、及び、図５）における上述した構成、或いはフローチャート（図４）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００７４】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００７５】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７６】
１    マルチノードシステム
１０    スケジューラノード
１１    算出部
１２    決定部
１３    制御部
２０    計算ノード
２１    ジョブ実行部
２２    チェックポイントデータ生成部
２２０    チェックポイントデータ
３０    ユーザ端末装置
３１０    通常ジョブ
３１１    部分通常ジョブ
３２０    緊急ジョブ
３２１    部分緊急ジョブ
４０    情報処理実行制御装置
４１    算出部
４２    決定部
４３    制御部
５０    情報処理資源
５１    特定の情報処理資源
５０１    部分情報処理
５０２    優先情報処理
５０３    実行状態情報
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2020129329.tif 000003
【図２】
2020129329.tif 000004
【図３】
2020129329.tif 000005
【図４】
2020129329.tif 000006
【図５】
2020129329.tif 000007
【図６】
2020129329.tif 000008