(57)【特許請求の範囲】
【請求項１】
計算ジョブを分散して並列的に実行する複数の計算ノードと、これら複数の計算ノードを管理する管理ノードとを有し、
前記計算ノードは、
計算ノード共通の周期タイミングに応じて、当該計算ノード自体が担当する計算ジョブに関わるジョブ情報を取得する取得部と、
前記取得部が前記ジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、当該ジョブ情報を当該計算ノード側の保持部に保持すると共に、前記管理ノードからの消去依頼を受信すると、当該保持部に保持中のジョブ情報を全て消去する計算ノード側の保持制御部と、
前記管理ノードから指定の識別番号に関わるジョブ情報の送信依頼を受信すると、当該指定の識別番号に関わるジョブ情報が当該保持部内にある場合、当該指定の識別番号に関わるジョブ情報を管理ノードに送信すると共に、当該指定の識別番号に関わるジョブ情報が当該保持部内になく、当該指定の識別番号直前の識別番号に関わるジョブ情報がある場合、当該識別番号に関わるジョブ情報を管理ノードに送信する情報送信部と
を有し、
前記管理ノードは、
前記送信依頼に応じて各計算ノードから前記ジョブ情報を受信すると、当該受信したジョブ情報を当該管理ノード側の保持部に保持すると共に、当該保持部内に同一識別番号のジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持すると共に、前記同一識別番号のジョブ情報をスナップショットとして保持した場合、当該管理ノード側の保持部に保持中の当該同一識別番号のジョブ情報以外のジョブ情報を消去する管理ノード側の保持制御部と、
前記同一識別番号のジョブ情報をスナップショットとして保持した場合、各計算ノードに対して前記消去依頼を送信する消去依頼部とを有し、
前記計算ノード側の保持部は、
所定複数周期分のジョブ情報を保持可能にする保持領域を備え、
前記管理ノード側の保持部は、
前記計算ノード毎の前記所定複数周期分のジョブ情報を保持可能にする保持領域を備えたことを特徴とする並列計算機。
【請求項２】
前記管理ノードからの前記消去依頼が各計算ノードに到達してジョブ情報の消去を実行するまでに要する計算ノード毎の時間を測定し、その測定結果に基づき、計算ノード間の最大ズレ時間を算出し、前記周期タイミングの間隔時間のｎ倍＜最大ズレ時間≦前記周期タイミングの間隔時間の（ｎ＋１）倍が成立する場合、前記管理ノード側の保持部は、（ｎ＋３）周期分のジョブ情報を保持する保持領域を備え、前記計算ノード側の保持部は、（ｎ＋２）周期分のジョブ情報を保持する保持領域を備えることを特徴とする請求項１記載の並列計算機。
【請求項３】
前記取得部は、
前記計算ジョブの実行開始タイミングに応じてタイマ計時動作を開始し、この計時時間に基づき、前記周期タイミングを検出することを特徴とする請求項１又は２に記載の並列計算機。
【請求項４】
前記管理ノードは、
所定信号に応じて指定の識別番号に関わるジョブ情報の送信を各計算ノードに依頼する送信依頼部を有することを特徴とする請求項１又は２に記載の並列計算機。
【請求項５】
前記複数の計算ノードの内、１台の計算ノードを代表ノードとし、
当該代表ノードは、当該代表ノード内の取得部がジョブ情報を取得すると、当該ジョブ情報の識別番号を前記管理ノードに通知する信号を前記所定信号とすることを特徴とする請求項４記載の並列計算機。
【請求項６】
前記計算ノードは、
当該計算ノード内の取得部がジョブ情報を取得すると、当該ジョブ情報の識別情報を前記管理ノードに通知する信号を前記所定信号とすることを特徴とする請求項４記載の並列計算機。
【請求項７】
計算ジョブを分散して並列的に実行する複数の計算ノードと、これら複数の計算ノードを管理する管理ノードとを有する並列計算機のジョブ情報取得プログラムであって、
計算ノード共通の周期タイミングに応じて、当該計算ノード自体が担当する計算ジョブに関わるジョブ情報を取得する計算ノード側の取得手順と、
前記取得手順が前記ジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、所定複数周期分のジョブ情報を保持可能にする計算ノード側の保持部に当該ジョブ情報を保持する計算ノード側の保持手順と、
前記管理ノードから指定の識別番号に関わるジョブ情報の送信依頼を受信すると、当該指定の識別番号に関わるジョブ情報が当該保持部内にある場合、当該指定の識別番号に関わるジョブ情報を管理ノードに送信すると共に、当該指定の識別番号に関わるジョブ情報が当該保持部内になく、当該指定の識別番号直前の識別番号に関わるジョブ情報がある場合、当該識別番号に関わるジョブ情報を管理ノードに送信する計算ノード側の情報送信手順と
前記送信依頼に応じて各計算ノードから前記ジョブ情報を受信すると、当該受信したジョブ情報を、計算ノード毎の所定複数周期分のジョブ情報を保持可能にする当該管理ノード側の保持部に保持する管理ノード側の保持手順と、
当該保持部内に同一識別番号のジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持する管理ノード側のスナップショット保持手順と、
前記同一識別番号のジョブ情報をスナップショットとして保持した場合、当該管理ノード側の保持部に保持中の当該同一識別番号のジョブ情報以外のジョブ情報を消去する管理ノード側の消去手順と、
前記同一識別番号のジョブ情報をスナップショットして保持した場合、各計算ノードに対して消去依頼を送信する管理ノード側の消去依頼手順と、
前記管理ノードからの消去依頼を受信すると、当該計算ノード側の保持部に保持中のジョブ情報を全て消去する計算ノード側の消去手順と
を含むプログラムをコンピュータに実行させることを特徴とする並列計算機のジョブ情報取得プログラム。
【請求項８】
計算ジョブを分散して並列的に実行する複数の計算ノードと、これら複数の計算ノードを管理する管理ノードとを有する並列計算機のジョブ情報取得方法であって、
計算ノード共通の周期タイミングに応じて、当該計算ノード自体が担当する計算ジョブに関わるジョブ情報を取得する計算ノード側の取得ステップと、
前記取得手順が前記ジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、所定複数周期分のジョブ情報を保持可能にする計算ノード側の保持部に当該ジョブ情報を保持する計算ノード側の保持ステップと、
前記管理ノードから指定の識別番号に関わるジョブ情報の送信依頼を受信すると、当該指定の識別番号に関わるジョブ情報が当該保持部内にある場合、当該指定の識別番号に関わるジョブ情報を管理ノードに送信すると共に、当該指定の識別番号に関わるジョブ情報が当該保持部内になく、当該指定の識別番号直前の識別番号に関わるジョブ情報がある場合、当該識別番号に関わるジョブ情報を管理ノードに送信する計算ノード側の情報送信ステップと
前記送信依頼に応じて各計算ノードから前記ジョブ情報を受信すると、当該受信したジョブ情報を、計算ノード毎の所定複数周期分のジョブ情報を保持可能にする当該管理ノード側の保持部に保持する管理ノード側の保持ステップと、
当該保持部内に同一識別番号のジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持する管理ノード側のスナップショット保持ステップと、
前記同一識別番号のジョブ情報をスナップショットとして保持した場合、当該管理ノード側の保持部に保持中の当該同一識別番号のジョブ情報以外のジョブ情報を消去する管理ノード側の消去ステップと、
前記同一識別番号のジョブ情報をスナップショットして保持した場合、各計算ノードに対して消去依頼を送信する管理ノード側の消去依頼ステップと、
前記管理ノードからの消去依頼を受信すると、当該計算ノード側の保持部に保持中のジョブ情報を全て消去する計算ノード側の消去ステップと
を有することを特徴とする並列計算機のジョブ情報取得方法。
【請求項９】
計算ジョブを分散して並列的に実行する計算処理部と、
計算装置共通の周期タイミングに応じて、当該計算装置自体が担当する計算ジョブに関わるジョブ情報を取得する取得部と、
前記取得部が前記ジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、当該ジョブ情報を当該計算装置側の保持部に保持すると共に、計算管理装置からの消去依頼を受信すると、当該保持部に保持中のジョブ情報を全て消去する保持制御部と、
前記計算管理装置から指定の識別番号に関わるジョブ情報の送信依頼を受信すると、当該指定の識別番号に関わるジョブ情報が当該保持部内にある場合、当該指定の識別番号に関わるジョブ情報を計算管理装置に送信すると共に、当該指定の識別番号に関わるジョブ情報が当該保持部内になく、当該指定の識別番号直前の識別番号に関わるジョブ情報がある場合、当該識別番号に関わるジョブ情報を計算管理装置に送信する情報送信部と
を有し、
前記保持部は、
所定複数周期分のジョブ情報を保持可能にする保持領域を備えたことを特徴とする計算装置。
【請求項１０】
複数の計算装置を管理する管理側処理部と、
前記計算装置に対する指定の識別番号に関わるジョブ情報の送信依頼に応じて、各計算装置からジョブ情報を受信すると、当該受信したジョブ情報を当該計算管理装置側の保持部に保持すると共に、当該保持部内に同一識別番号のジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持すると共に、前記同一識別番号のジョブ情報をスナップショットとして保持した場合、当該計算管理装置側の保持部に保持中の当該同一識別番号のジョブ情報以外のジョブ情報を消去する保持制御部と、
前記同一識別番号のジョブ情報をスナップショットとして保持した場合、各計算装置に保持するジョブ情報を消去する消去依頼を送信する消去依頼部とを有し、
前記保持部は、
前記計算装置毎の所定複数周期分のジョブ情報を保持可能にする保持領域を備えたことを特徴とする計算管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機、並列計算機のジョブ情報取得プログラム、並列計算機のジョブ情報取得方法、計算装置及び計算管理装置に関する。  
【背景技術】
【０００２】
並列計算機は、例えば、多数のコンピュータ(以下、単に計算ノードと称する)をネットワークで接続し、計算ジョブを個々の計算ノードに分散させて並列的に計算ジョブを実行させることで、大規模計算を高速に処理できる。従って、この並列計算機の需要は急速に高まりつつあるのが実情である。【０００３】
並列計算機は、複数の計算ノードで構成する計算ノード群を管理するノード(以下、単に管理ノードと称する)を有するのが一般的である。並列計算機では、現在実行中の計算ジョブが各計算ノードで使用するＣＰＵ、メモリやファイル等の各資源の使用量や、計算ジョブによって実行された命令数等の情報（以下、単にジョブ情報と称する）を管理ノード側で認識できる技術が求められている。【０００４】
そこで、計算ジョブが実行される各計算ノードでは、同一時刻のジョブ情報、すなわちスナップショットの取得が必要である。図１４は、並列計算機のスナップショット取得方法を示す説明図である。図１４に示す並列計算機１１０では、複数の計算ノード１１１を管理する管理ノード１１２で現在時刻を管理し、現在時刻が所定時刻に到達すると、ジョブ情報の取得を各計算ノード１１１に依頼する（ステップＳ２１１）。各計算ノード１１１は、ジョブ情報の取得依頼に応じて自分が担当するジョブ情報を取得する（ステップＳ２１２）。各計算ノード１１１は、ジョブ情報を取得すると、このジョブ情報を管理ノード１１２に転送する（ステップＳ２１３）。この結果、図１４に示す並列計算機１１０の管理ノード１１２では、各計算ノード１１１の同一時刻(タイミング)のジョブ情報、すなわちスナップショットを取得できる。【０００５】
図１５は、並列計算機１２０の他のスナップショット取得方法を示す説明図である。図１５に示す並列計算機１２０では、各計算ノード１２１が現在時刻を管理している。各計算ノード１２１は、現在時刻が所定時刻に到達すると、自分が担当するジョブ情報を取得する（ステップＳ２２１）。そして、各計算ノード１２１は、自分が担当するジョブ情報を取得すると、そのジョブ情報を管理ノード１２２に転送する（ステップＳ２２２）。その結果、図１５に示す並列計算機１２０の管理ノード１２２では、各計算ノード１２１の同一時刻(タイミング)のジョブ情報、すなわちスナップショットを取得できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−４４６８０号公報
【特許文献２】特開昭６３−１３６１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１４に示す並列計算機１１０では、管理ノード１１２からジョブ情報の取得依頼が各計算ノード１１１に到達するまでのタイミングにズレが生じると、計算ノード１１１間でジョブ情報の取得タイミングも同期できず、正確なスナップショットが取得できない。【０００８】
また、図１５に示す並列計算機１２０では、各計算ノード１２１から非同期でジョブ情報が送られてくるため、各計算ノード１２１から送信された同一時刻(同一タイミング)のジョブ情報が次のジョブ情報取得時刻までに管理ノード１２２に全て届くとは限らない。その結果、他の時刻のジョブ情報が混在して送られてくることも考え得る。つまり、並列計算機１２０では、同一タイミングの各計算ノード１２１のジョブ情報を把握できていないため、正確なスナップショットが取得できない。【０００９】
１つの側面では、並列計算機の各計算ノードで実行中のジョブに関わる同一タイミングのジョブ情報を取得できる並列計算機等を提供することにある。
【課題を解決するための手段】
【００１０】
本願の開示する並列計算機は、一つの態様において、計算ジョブを分散して並列的に実行する複数の計算ノードと、これら複数の計算ノードを管理する管理ノードとを有し、前記計算ノードは、取得部と、計算ノード側の保持部と、計算ノード側の保持制御部と、情報送信部とを有し、前記管理ノードは、管理側ノードの保持部と、管理ノード側の保持制御部と、消去依頼部とを有する。取得部は、計算ノード共通の周期タイミングに応じて、当該計算ノード自体が担当する計算ジョブに関わるジョブ情報を取得する。計算ノード側の保持制御部は、取得部が前記ジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、当該ジョブ情報を当該計算ノード側の保持部に保持すると共に、前記管理ノードからの消去依頼を受信すると、当該保持部に保持中のジョブ情報を全て消去する。情報送信部は、管理ノードから指定の識別番号に関わるジョブ情報の送信依頼を受信すると、当該指定の識別番号に関わるジョブ情報が当該保持部内にある場合、当該指定の識別番号に関わるジョブ情報を管理ノードに送信する。また、情報送信部は、当該指定の識別番号に関わるジョブ情報が当該保持部内になく、当該指定の識別番号直前の識別番号に関わるジョブ情報がある場合、当該識別番号に関わるジョブ情報を管理ノードに送信する。また、管理ノード側の保持制御部は、前記送信依頼に応じて各計算ノードから前記ジョブ情報を受信すると、当該受信したジョブ情報を当該管理ノード側の保持部に保持する。また、管理ノード側の保持制御部は、当該保持部内に同一識別番号の計算ノードに関わるジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持する。また、管理ノード側の保持制御部は、前記同一識別番号のジョブ情報をスナップショットとして保持した場合、当該管理ノード側の保持部に保持中の当該同一識別番号のジョブ情報以外のジョブ情報を消去する。消去依頼部は、前記同一識別番号のジョブ情報をスナップショットとして保持した場合、各計算ノードに対して前記消去依頼を送信する。また、前記計算ノード側の保持部は、所定複数周期分のジョブ情報を保持可能にする保持領域を備え、前記管理ノード側の保持部は、前記計算ノード毎の前記所定複数周期分のジョブ情報を保持可能にする保持領域を備えた。
【発明の効果】
【００１１】
一つの態様では、並列計算機の各計算ノードで実行中のジョブに関わる同一タイミングのジョブ情報を取得できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１の並列計算機を示すブロック図である。
【図２】図２は、実施例２の並列計算機を示すブロック図である。
【図３】図３は、並列計算機の説明図である。
【図４】図４は、ジョブ情報の取得周期（タイムベルト）の説明図である。
【図５】図５は、計算側保持部を二世代分にした理由を示す説明図である。
【図６】図６は、並列計算機のスナップショット取得に関わる動作遷移の一例を示す説明図である。
【図７】図７は、並列計算機のスナップショット取得に関わる動作遷移の一例を示す説明図である。
【図８】図８は、並列計算機のスナップショット取得に関わる動作遷移の一例を示す説明図である。
【図９】図９は、代表ノード側ジョブ取得処理に関わる代表ノード内部の処理動作を示すフローチャートである。
【図１０】図１０は、計算ノード側ジョブ取得処理に関わる計算ノード内部の処理動作を示すフローチャートである。
【図１１】図１１は、管理ノード側スナップショット取得処理に関わる管理ノード内部の処理動作を示すフローチャートである。
【図１２】図１２は、実施例３の並列計算機を示す説明図である。
【図１３】図１３は、並列計算機のジョブ情報取得プログラムを実行するコンピュータを示す説明図である。
【図１４】図１４は、並列計算機のスナップショット取得方法を示す説明図である。
【図１５】図１５は、並列計算機の他のスナップショット取得方法を示す説明図である。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて、本願の開示する並列計算機、並列計算機のジョブ情報取得プログラム、並列計算機のジョブ情報取得方法、計算装置及び計算管理装置の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。
【実施例１】
【００１４】
図１は、実施例１の並列計算機を示すブロック図である。図１に示す並列計算機１Ａは、計算ジョブを分散して並列的に実行する複数の計算ノード５０と、これら複数の計算ノード５０を管理する管理ノード６０とを有する。計算ノード５０は、取得部５１と、保持部５２と、保持制御部５３と、情報送信部５４とを有する。取得部５１は、計算ノード共通の周期タイミングに応じて、当該計算ノード５０自体が担当する計算ジョブに関わるジョブ情報を取得する。【００１５】
保持制御部５３は、取得部５１がジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、当該ジョブ情報を計算ノード５０側の保持部５２に保持する。また、保持制御部５３は、管理ノード６０からの消去依頼を受信すると、保持部５２に保持中のジョブ情報を全て消去する。保持部５２は、所定複数周期分、例えば２周期(世代)分の自分のジョブ情報を保持する保持領域を備えている。【００１６】
また、情報送信部５４は、管理ノード６０から指定の識別番号に関わるジョブ情報の送信依頼を受信すると、当該指定の識別番号に関わるジョブ情報が当該保持部５２内にある場合、当該指定の識別番号に関わるジョブ情報を管理ノード６０に送信する。また、情報送信部５４は、当該指定の識別番号に関わるジョブ情報が当該保持部５２内になく、当該指定の識別番号直前の識別番号に関わるジョブ情報がある場合、当該識別番号に関わるジョブ情報を管理ノード６０に送信する。尚、識別番号直前の識別番号とは、例えば、一世代前の識別番号に相当する。【００１７】
管理ノード６０は、保持部６１と、保持制御部６２と、消去依頼部６３とを有する。保持部６１は、計算ノード５０毎の所定複数周期分のジョブ情報を保持可能にする保持領域を備えた。保持制御部６２は、送信依頼に応じて各計算ノード５０からジョブ情報を受信すると、当該受信したジョブ情報を管理ノード６０側の保持部６１に保持する。また、保持制御部６２は、保持部６１内に同一識別番号の全計算ノード５０に関わるジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持する。保持制御部６２は、同一識別番号のジョブ情報をスナップショットとして保持した場合、当該管理ノード６０側の保持部６１に保持中の当該同一識別番号のジョブ情報以外のジョブ情報を消去する。消去依頼部６３は、同一識別番号のジョブ情報をスナップショットとして保持した場合、各計算ノード５０に対して消去依頼を送信する。【００１８】
実施例１では、計算ノード５０が計算ノード共通の周期タイミングに応じてジョブ情報を取得し、ジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、当該ジョブ情報を計算ノード５０側の保持部５２に保持する。更に、実施例１では、管理ノード６０が、送信依頼に応じて各計算ノード５０からジョブ情報を受信すると、当該受信したジョブ情報を管理ノード６０側の保持部６１に保持する。そして、実施例１では、計算ノード５０が、保持部６１内に同一識別番号の計算ノードに関わるジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持する。更に、実施例１では、同一識別番号のジョブ情報をスナップショットとして保持した場合、管理ノード６０側の保持部６１に保持中の同一識別番号のジョブ情報以外のジョブ情報を消去すると共に、計算ノード５０側の保持部５２に保持中のジョブ情報を全て消去する。その結果、ジョブ情報を取得する周期タイミングの識別番号をキーにしてジョブ情報を管理するので、計算ノード５０間のジョブ情報の正確なスナップショットを確保できる。【００１９】
実施例１では、計算ノード５０側の保持部５２に所定複数周期分のジョブ情報を保持可能にする保持領域を備え、管理ノード６０側の保持部６１に計算ノード５０毎の所定複数周期分のジョブ情報を保持可能にする保持領域を備えた。その結果、例えば、管理ノード６０からのクリア依頼の伝送遅延によるジョブ情報消去のタイミングが計算ノード５０毎に異なる。従って、管理ノード６０側で各計算ノード５０のジョブ情報が収集できなくなるような事態を回避して、並列計算機１Ａで実行中の計算ジョブの正確なスナップショットを保証できる。
【実施例２】
【００２０】
図２は、実施例２の並列計算機を示すブロック図、図３は、並列計算機の説明図である。図２に示す並列計算機１は、ネットワーク２に接続された複数の計算ノード３と、これら複数の計算ノード３を管理する管理ノード４とを有し、計算ジョブを個々の計算ノード３に分散させて並列的に計算を実行させる。尚、説明の便宜上、計算ノード３（３Ａ〜３Ｄ）を４台としたが、この台数に限定するものではない。【００２１】
計算ノード３は、例えば、コンピュータに相当し、計算ジョブを実行する。計算ノード３は、計算処理部１１と、ジョブ情報処理制御部１２と、計算側通信部１３と、計算側保持部１４とを有する。計算処理部１１は、分散された計算ジョブの内、自分が担当する計算ジョブを実行する。計算側通信部１３は、ネットワーク２経由で管理ノード４と通信する。計算側保持部１４は、例えば、バッファ等に相当し、二世代分、すなわち２タイムベルト分のジョブ情報を保持する第１保持領域１４Ａ及び第２保持領域１４Ｂを有する。【００２２】
ジョブ情報処理制御部１２は、タイミング検出部２１と、取得処理部２２と、計算側保持制御部２３と、情報送信部２４とを有する。タイミング検出部２１は、自分が担当するジョブ情報を取得するタイミングを検出する。タイミング検出部２１は、計算ノード３共通のジョブ開始コマンドに応じてタイマ動作を開始する。尚、図４は、ジョブ情報の取得周期（タイムベルト）の説明図である。タイミング検出部２１は、計算ノード共通の周期タイミング、すなわち図４のタイムベルトを使用してジョブ情報の取得タイミングを検出する。取得処理部２２は、タイミング検出部２１にてジョブ情報の取得タイミングを検出すると、自分が担当するジョブ情報を取得する。【００２３】
計算側保持制御部２３は、計算側保持部１４を保持制御し、取得処理部２２にて取得されたジョブ情報を計算側保持部１４に保持する。尚、ジョブ情報は、ジョブ情報内容、情報有無、ノード情報、タイムベルト番号及び情報取得日時等を含む。ジョブ情報内容は、ジョブを識別するジョブＩＤと、自分が担当するジョブで使用するＣＰＵ、メモリ及びファイル等の各資源の使用量や、ジョブによって実行された命令数等を含む。情報有無は、ジョブ情報内容の情報有無を示す情報である。尚、情報有無が「あり」の場合、ジョブ情報内容があるジョブ情報に相当し、情報有無が「なし」の場合、当該ジョブ情報は後述するエラー情報に相当する。ノード情報は、当該ジョブ情報の出所となる計算ノード３を識別するノードＩＤに相当する。タイムベルト番号は、ジョブ情報を取得した計算ノード３共通の周期タイミングを識別する番号に相当する。情報取得日時は、ジョブ情報を取得した日時に相当する。【００２４】
計算側保持制御部２３は、ジョブ情報の取得タイミングに応じて、自分が担当するジョブ情報を取得すると、計算側保持部１４内の保持領域に空きがあるか否かを判定する。計算側保持制御部２３は、空きがある場合、ジョブ情報を計算側保持部１４内に保持する。また、計算側保持制御部２３は、空きがないため、ジョブ情報の保持を禁止する。【００２５】
計算側保持制御部２３は、管理ノード４から、後述する指定タイムベルト番号の送信依頼に応じて、計算側保持部１４内に指定タイムベルト番号のジョブ情報があるか否かを判定する。計算側保持制御部２３は、計算側保持部１４内に指定タイムベルト番号のジョブ情報がある場合、計算側通信部１３経由で、この指定タイムベルト番号のジョブ情報を管理ノード４に送信する。また、計算側保持制御部２３は、計算側保持部１４内に指定タイムベルト番号のジョブ情報がない場合、計算側保持部１４内に、指定タイムベルト番号の一世代前のジョブ情報があるか否かを判定する。また、計算側保持制御部２３は、指定タイムベルト番号の一世代前のジョブ情報がある場合、計算側通信部１３経由で、一世代前のジョブ情報を管理ノード４に送信する。また、計算側保持制御部２３は、指定タイムベルト番号の一世代前のジョブ情報がない場合、計算側通信部１３経由で、エラー情報を管理ノード４に送信する。また、計算側保持制御部２３は、管理ノード４からの後述するクリア依頼に応じて計算側保持部１４内に保持したジョブ情報を全て消去する。【００２６】
尚、説明の便宜上、４台の計算ノード３（３Ａ〜３Ｄ）の内、例えば、１台の計算ノード３Ａを代表ノードとする。代表ノードは、計算ノード３とほぼ同一の内部構成であるが、次に説明する機能を備えることを特徴とする。代表ノードのジョブ情報処理制御部１２は、計算ノード３共通の周期タイミングに応じてジョブ情報を取得し、このジョブ情報を計算側保持部１４に保持する。更に、ジョブ情報処理制御部１２は、ジョブ情報を計算側保持部１４内に保持すると、計算側通信部１３経由で、当該ジョブ情報のタイムベルト番号を送信依頼対象として管理ノード４に通知する機能を備える。【００２７】
管理ノード４は、例えば、コンピュータに相当し、ネットワーク２で各計算ノード３と接続し、各計算ノード３を管理する。管理ノード４は、管理側処理部３１と、スナップショット処理制御部３２と、管理側通信部３３と、管理側保持部３４とを有する。管理側処理部３１は、分散された計算ノード３を管理する。管理側通信部３３は、ネットワーク２経由で各計算ノード３と通信する。管理側保持部３４は、例えば、バッファ等に相当し、計算ノード３毎に三世代分、すなわち３タイムベルト分のジョブ情報を保持する第１保持領域３４Ａ、第２保持領域３４Ｂ及び第３保持領域３４Ｃを有する。尚、第１保持領域３４Ａは、スナップショットに関わるジョブ情報を保持し、第２保持領域３４Ｂ及び第３保持領域３４Ｃは、スナップショットを取得すべく、ジョブ情報を一時的に保持するのに使用する。尚、第１保持領域３４Ａは、スナップショットのジョブ情報が保持されていない状態では、第２保持領域３４Ｂ及び第３保持領域３４Ｂと同様にジョブ情報を一時的に保持するのに使用する。【００２８】
スナップショット処理制御部３２は、送信依頼部４１と、受信情報識別部４２と、保持領域監視部４３と、クリア依頼部４４と、管理側保持制御部４５とを有する。送信依頼部４１は、代表ノードからの送信依頼対象のタイムベルト番号を受信すると、管理側通信部３３経由で、タイムベルト番号に関わるジョブ情報の送信を各計算ノード３に依頼する。受信情報識別部４２は、各計算ノード３に対する指定タイムベルト番号の送信依頼に応じて受信した各計算ノード３の受信情報を識別する。尚、受信情報は、計算ノード３から受信する、例えば、指定タイムベルト番号のジョブ情報、指定タイムベルト番号の一世代前のタイムベルト番号のジョブ情報やエラー情報等である。【００２９】
保持領域監視部４３は、第１保持領域３４Ａ、第２保持領域３４Ｂ及び第３保持領域３４Ｃに保持された各計算ノード３のジョブ情報を監視する。更に、保持領域監視部４３は、ジョブ情報の監視結果に基づき、新たに全計算ノード３のジョブ情報を保持できたタイミングに相当するタイムベルト番号があるか否かを判定する。管理側保持制御部４５は、新たに全計算ノード３のジョブ情報が保持できたタイムベルト番号がある場合、同一タイムベルト番号のスナップショットを新たに取得したと判断し、当該同一タイムベルト番号の全計算ノード３のジョブ情報を第１保持領域３４Ａに更新登録する。更に、管理側保持制御部４５は、第２保持領域３４Ｂ及び第３保持領域３４Ｃに保持中の各計算ノード３のジョブ情報を全て消去する。また、クリア依頼部４４は、新たなスナップショットを取得した場合、管理側通信部３３経由で、全計算ノード３の計算側保持部１４に保持中のジョブ情報を全て消去するクリアを依頼する。【００３０】
尚、管理ノード４は、例えば、ユーザ端末からのスナップショット提示要求を検出すると、管理側保持部３４内の第１保持領域３４Ａに保持中の同一タイムベルト番号の全計算ノード３のジョブ情報をスナップショットとしてユーザ端末に提示することになる。つまり、ユーザは、現在実行中の計算ジョブについて各計算ノード３のジョブ情報を把握できる。【００３１】
次に、計算側保持部１４を二世代分、すなわち２タイムベルト分のジョブ情報を保持する領域にした理由について説明する。図５は、計算側保持部１４を二世代分にした理由を示す説明図である。管理ノード４では、新たなスナップショットのジョブ情報が保持されると、クリア依頼を各計算ノード３に発行する。【００３２】
図５では、計算ノード３Ｂは、管理ノード４からクリア依頼が届いたタイミングがタイムベルト番号Ｔ２のジョブ情報を取得中のタイミングの場合、計算側保持部１４に保持されたタイムベルト番号Ｔ２までのジョブ情報が全て消去される。その結果、計算ノード３Ｂでは、次に取得すべきジョブ情報がタイムベルト番号Ｔ３のジョブ情報となる。【００３３】
また、計算ノード３Ｃは、管理ノード４からクリア依頼が届いたタイミングがタイムベルト番号Ｔ３のジョブ情報を取得中のタイミングの場合、計算側保持部１４に保持されたタイムベルト番号Ｔ３までのジョブ情報が全て消去される。その結果、計算ノード３Ｂでは、次に取得すべきジョブ情報がタイムベルト番号Ｔ４のジョブ情報となる。【００３４】
つまり、クリア依頼が届くタイミングが計算ノード３間で異なるため、取得すべきジョブ情報が一世代分、すなわち１タイムベルト分ずれてしまう場合がある。従って、各計算ノード３の計算側保持部１４では、１タイムベルト分のズレを吸収するために２タイムベルト分のジョブ情報を保持する保持領域として第１保持領域１４Ａ及び第２保持領域１４Ｂを準備した。【００３５】
更に、管理側保持部３４を三世代分、すなわち３タイムベルト分のジョブ情報を保持する領域にした理由について説明する。例えば、同一タイムベルト番号Ｔ１の全計算ノード３分のジョブ情報を保持、すなわちタイムベルト番号Ｔ１のスナップショットを取得した場合、第１保持領域３４Ａに当該タイムベルト番号のジョブ情報を保持する。そして、次のタイムベルト番号の全計算ノード３のジョブ情報が保持されるまで第２保持領域３４Ｂ及び第３保持領域３４Ｃを使用する。しかしながら、前述した通り、クリア依頼に対する計算ノード３間のズレが一世代分の場合、各計算ノード３から管理ノード４に送られてくるジョブ情報も一世代分ずれる。従って、管理側保持部３４でも、スナップショットのジョブ情報を保持するのに第１保持領域３４Ａを使用し、１タイムベルト分のズレを吸収するために２タイムベルト分のジョブ情報を保持する保持領域として第２保持領域３４Ｂ及び第３保持領域３４Ｃを準備した。【００３６】
次に、実施例２の並列計算機１Ａの動作について説明する。図６乃至図８は、並列計算機１Ａのスナップショット取得に関わる動作遷移の一例を示す説明図である。尚、説明の便宜上、計算ノード３（３Ａ〜３Ｄ）を４台とし、計算ノード３Ａを代表ノードとした。図６において各計算ノード３Ａ，３Ｃ及び３Ｄは、例えば、ジョブ開始コマンドからタイムベルト番号Ｔ１のタイミングに応じてジョブ情報を取得し、そのジョブ情報を計算側保持部１４に保持する。尚、計算ノード３Ａ，３Ｃ，３Ｄの第１保持領域１４Ａには、タイムベルト番号Ｔ１のジョブ情報を保持した状態である。計算ノード３Ｂは、何らかの要因でジョブ開始コマンドの受信が遅れてタイムベルト番号Ｔ１のジョブ情報を取得できず、第１保持領域１４Ａには情報が保持されていない状態である。【００３７】
計算ノード３Ａは、代表ノードであるため、タイムベルト番号Ｔ１のジョブ情報を計算側保持部１４に保持すると、そのタイムベルト番号Ｔ１を管理ノード４に通知する（ステップＳ１１）。管理ノード４は、計算ノード３Ａのタイムベルト番号Ｔ１を受信すると、このタイムベルト番号Ｔ１のジョブ情報の送信を全計算ノード３に依頼する（ステップＳ１２）。【００３８】
各計算ノード３は、タイムベルト番号Ｔ１のジョブ情報の送信依頼を受信すると、タイムベルト番号Ｔ１のジョブ情報が計算側保持部１４内にあるか否かを判定する。タイムベルト番号Ｔ１のジョブ情報が計算側保持部１４内にある各計算ノード３Ａ，３Ｃ及び３Ｄは、タイムベルト番号Ｔ１のジョブ情報を管理ノード４に送信する（ステップＳ１３）。また、タイムベルト番号Ｔ１のジョブ情報が計算側保持部１４内になく、しかも一世代前のジョブ情報もない計算ノード３Ｂは、エラー情報を管理ノード４に送信する（ステップＳ１３Ａ）。【００３９】
管理ノード４は、計算ノード３Ａ，３Ｃ及び３Ｄのタイムベルト番号Ｔ１のジョブ情報を受信すると、タイムベルト番号Ｔ１のジョブ情報を計算ノード３Ａ，３Ｃ及び３Ｄ対応の第１保持領域３４Ａに保持する。また、管理ノード４は、計算ノード３Ｂのエラー情報を受信した場合、計算ノード３Ｂ対応の第１保持領域３４Ａに情報を保持しない。【００４０】
次に、各計算ノード３Ａ，３Ｃ及び３Ｄは、タイムベルト番号Ｔ２のタイミングに応じてタイムベルト番号Ｔ２のジョブ情報を取得し、そのジョブ情報を計算側保持部１４の第２保持領域１４Ｂに保持した状態である。また、計算ノード３Ｂは、タイムベルト番号Ｔ１のタイミングに応じてタイムベルト番号Ｔ１のジョブ情報を取得し、このジョブ情報を計算側保持部１４の第１保持領域１４Ａに保持した状態である。【００４１】
この際、計算ノード３Ａは、代表ノードであるため、タイムベルト番号Ｔ２のジョブ情報を計算側保持部１４に保持すると、そのタイムベルト番号Ｔ２を管理ノード４に通知する（ステップＳ１４）。管理ノード４は、当該タイムベルト番号Ｔ２を受信すると、このタイムベルト番号Ｔ２のジョブ情報の送信を全計算ノード３に依頼する（ステップＳ１５）。【００４２】
図７において各計算ノード３は、タイムベルト番号Ｔ２のジョブ情報の送信依頼を受信すると、タイムベルト番号Ｔ２のジョブ情報が計算側保持部１４内にあるか否かを判定する。タイムベルト番号Ｔ２のジョブ情報が計算側保持部１４内にある各計算ノード３Ａ，３Ｃ及び３Ｄは、タイムベルト番号Ｔ２のジョブ情報を管理ノード４に送信する（ステップＳ１６）。また、タイムベルト番号Ｔ２のジョブ情報が計算側保持部１４内になく、一世代前のジョブ情報、すなわちタイムベルト番号Ｔ１が計算側保持部１４内にある計算ノード３Ｂは、タイムベルト番号Ｔ１のジョブ情報を管理ノード４に通知する（ステップＳ１６Ａ）。【００４３】
管理ノード４は、計算ノード３Ａ，３Ｃ及び３Ｄのタイムベルト番号Ｔ２のジョブ情報を受信すると、タイムベルト番号Ｔ２のジョブ情報を計算ノード３Ａ，３Ｃ及び３Ｄ対応の第２保持領域３４Ｂに保持する。また、管理ノード４は、計算ノード３Ｂのタイムベルト番号Ｔ１のジョブ情報を受信すると、タイムベルト番号Ｔ１のジョブ情報を計算ノード３Ｂ対応の第１保持領域３４Ａに保持する。その結果、第１保持領域３４Ａには、タイムベルト番号Ｔ１の全計算ノード３のジョブ情報が保持される、すなわちタイムベルト番号Ｔ１のスナップショットが取得されたことになる。【００４４】
そして、管理ノード４は、タイムベルト番号Ｔ１のスナップショットが取得されると、全計算ノード３の計算側保持部１４に保持中のジョブ情報を全て消去するクリアを全計算ノード３に依頼する（ステップＳ１７）。更に、管理ノード４は、第１保持領域３４Ａにタイムベルト番号Ｔ１のジョブ情報を保持したまま、第２保持領域３４Ｂ及び第３保持領域３４Ｃに保持中の全ジョブ情報を消去する（ステップＳ１８）。【００４５】
更に、各計算ノード３は、管理ノード４からのクリア依頼を受信すると、第１保持領域１４Ａ及び第２保持領域１４Ｂに保持中の全ジョブ情報を消去する（ステップＳ１９）。【００４６】
次に、各計算ノード３Ａ、３Ｃ及び３Ｄは、タイムベルト番号Ｔ４のタイミングに応じてジョブ情報を取得し、そのタイムベルト番号Ｔ４のジョブ情報を第１保持領域１４Ａに保持する。同様に、計算ノード３Ｂは、タイムベルト番号Ｔ３のタイミングに応じてジョブ情報を取得し、そのジョブ情報を第１保持領域１４Ａに保持する。【００４７】
この際、計算ノード３Ａは、代表ノードであるため、タイムベルト番号Ｔ４のジョブ情報を計算側保持部１４に保持すると、そのタイムベルト番号Ｔ４を管理ノード４に通知する（ステップＳ２０）。管理ノード４は、計算ノード３Ａのタイムベルト番号Ｔ４を受信すると、このタイムベルト番号Ｔ４のジョブ情報の送信を全計算ノード３に依頼する（ステップＳ２１）。【００４８】
図８において各計算ノード３は、タイムベルト番号Ｔ４のジョブ情報の送信依頼を受信すると、タイムベルト番号Ｔ４のジョブ情報が計算側保持部１４内にあるか否かを判定する。タイムベルト番号Ｔ４のジョブ情報が計算側保持部１４内にある計算ノード３Ａ、３Ｃ及び３Ｄは、当該タイムベルト番号Ｔ４のジョブ情報を管理ノード４に通知する（ステップＳ２２）。また、タイムベルト番号Ｔ４のジョブ情報が計算側保持部１４内になく、一世代前のジョブ情報、すなわちタイムベルト番号Ｔ３のジョブ情報が計算側保持部１４内にある計算ノード３Ｂは、タイムベルト番号Ｔ３のジョブ情報を管理ノード４に通知する（ステップＳ２２Ａ）。【００４９】
管理ノード４は、計算ノード３Ａ、３Ｃ及び３Ｄのタイムベルト番号Ｔ４のジョブ情報を受信すると、タイムベルト番号Ｔ４のジョブ情報を計算ノード３Ａ、３Ｃ及び３Ｄ対応の第２保持領域３４Ｂに保持する。また、管理ノード４は、計算ノード３Ｂのタイムベルト番号Ｔ３のジョブ情報を受信すると、タイムベルトＴ３のジョブ情報を計算ノード３Ｂ対応の第２保持領域３４Ｂに保持する。尚、第１保持領域３４Ａには、タイムベルト番号Ｔ１の全計算ノード３のジョブ情報がスナップショットとして保持されたままである。【００５０】
次に、各計算ノード３Ａ、３Ｃ及び３Ｄは、タイムベルト番号Ｔ５のタイミングに応じてジョブ情報を取得し、そのタイムベルト番号Ｔ５のジョブ情報を第２保持領域１４Ｂに保持する。同様に、計算ノード３Ｂは、タイムベルト番号Ｔ４のタイミングに応じてジョブ情報を取得し、そのタイムベルト番号Ｔ４のジョブ情報を第２保持領域１４Ｂに保持する。【００５１】
この際、計算ノード３Ａは、代表ノードであるため、タイムベルト番号Ｔ５のジョブ情報を計算側保持部１４に保持すると、そのタイムベルト番号Ｔ５を管理ノード４に通知する（ステップＳ２３）。管理ノード４は、計算ノード３Ａのタイムベルト番号Ｔ５を受信すると、このタイムベルト番号Ｔ５のジョブ情報の送信を全計算ノード３に依頼する（ステップＳ２４）。【００５２】
各計算ノード３は、タイムベルト番号Ｔ５のジョブ情報の送信依頼を受信すると、タイムベルト番号Ｔ５のジョブ情報が計算側保持部１４内にあるか否かを判定する。タイムベルト番号Ｔ５のジョブ情報が計算側保持部１４内にある場合の計算ノード３Ａ、３Ｃ及び３Ｄは、当該タイムベルト番号Ｔ５のジョブ情報を管理ノード４に送信する（ステップＳ２５）。また、タイムベルト番号Ｔ５のジョブ情報が計算側保持部１４内になく、一世代前のジョブ情報、すなわちタイムベルト番号Ｔ４のジョブ情報が計算側保持部１４内にある計算ノード３Ｂは、タイムベルト番号Ｔ４のジョブ情報を管理ノード４に通知する（ステップＳ２５Ａ）。【００５３】
管理ノード４は、計算ノード３Ａ、３Ｃ及び３Ｄのタイムベルト番号Ｔ５のジョブ情報を受信すると、タイムベルト番号Ｔ５のジョブ情報を計算ノード３Ａ、３Ｃ及び３Ｄ対応の第３保持領域３４Ｃに保持する。また、管理ノード４は、計算ノード３Ｂのタイムベルト番号Ｔ４のジョブ情報を受信すると、タイムベルトＴ４のジョブ情報を計算ノード３Ｂ対応の第３保持領域３４Ｃに保持する。その結果、第２保持領域３４Ｂの計算ノード３Ａ，３Ｃ及び３Ｄ対応のタイムベルト番号Ｔ４のジョブ情報と、第３保持領域３４Ｃの計算ノード３Ｂ対応のタイムベルト番号Ｔ４のジョブ情報とでタイムベルト番号Ｔ４の全計算ノード３のジョブ情報が保持される。すなわち、タイムベルト番号Ｔ４のスナップショットが取得されたことになる。【００５４】
そして、管理ノード４は、タイムベルト番号Ｔ４のスナップショットが取得されると、全計算ノード３の計算側保持部１４に保持中のジョブ情報を全て消去するクリアを全計算ノード３に依頼する（ステップＳ２６）。そして、管理ノード４は、第１保持領域３４Ａにタイムベルト番号Ｔ１のジョブ情報をタイムベルト番号Ｔ４のジョブ情報に上書き更新し、第２保持領域３４Ｂ及び第３保持領域３４Ｃに保持中の全ジョブ情報を消去する（ステップＳ２７）。【００５５】
更に、各計算ノード３は、管理ノード４からのクリア依頼を受信すると、第１保持領域１４Ａ及び第２保持領域１４Ｂに保持中の全ジョブ情報を消去する（ステップＳ２８）。従って、このような一連の処理動作を繰り返すことで管理ノード４の第１保持領域３４Ａには最新のスナップショットが保持できる。その結果、管理ノード４は、ユーザ端末からスナップショット提示要求を検出したとしても、第１保持領域３４Ａに保持中の最新のスナップショットとして提示できる。【００５６】
次に、代表ノードである計算ノード３Ａのジョブ取得処理について説明する。図９は、代表ノード側ジョブ取得処理に関わる計算ノード３Ａの処理動作を示すフローチャートである。図９において計算ノード３Ａのジョブ情報処理制御部１２内のタイミング検出部２１は、ジョブ情報の取得タイミングを検出したか否かを判定する（ステップＳ５１）。ジョブ情報処理制御部１２内の取得処理部２２は、ジョブ情報の取得タイミングを検出した場合（ステップＳ５１肯定）、ジョブ情報取得処理を実行し（ステップＳ５２Ａ）、自分の担当するジョブ情報を取得できたか否かを判定する（ステップＳ５２）。【００５７】
ジョブ情報処理制御部１２内の計算側保持制御部２３は、自分が担当するジョブ情報を取得できた場合（ステップＳ５２肯定）、計算側保持部１４内に空きがあるか否かを判定する（ステップＳ５３）。計算側保持制御部２３は、計算側保持部１４内に空きがある場合（ステップＳ５３肯定）、そのタイムベルト番号のジョブ情報を計算側保持部１４内に保持する（ステップＳ５４）。【００５８】
ジョブ情報処理制御部１２内の情報送信部２４は、タイムベルト番号のジョブ情報を計算側保持部１４内に保持すると、当該タイムベルト番号を送信依頼対象のタイムベルト番号として管理ノード４に通知する（ステップＳ５５）。計算側保持制御部２３は、管理ノード４から送信依頼対象のタイムベルト番号を指定したジョブ情報の送信依頼を受信したか否かを判定する（ステップＳ５６）。計算側保持制御部２３は、ジョブ情報の送信依頼を受信した場合（ステップＳ５６肯定）、計算側保持部１４内に保持中の送信依頼のタイムベルト番号に関わるジョブ情報を管理ノード４に送信する（ステップＳ５７）。【００５９】
計算側保持制御部２３は、管理ノード４からクリア依頼を受信したか否かを判定する（ステップＳ５８）。計算側保持制御部２３は、クリア依頼を受信した場合（ステップＳ５８肯定）、計算側保持部１４に保持中の全ジョブ情報を消去し（ステップＳ５９）、ジョブ情報の取得タイミングを検出したか否かを判定すべく、ステップＳ５１に移行する。【００６０】
また、計算側保持制御部２３は、クリア依頼を受信しなかった場合（ステップＳ５８否定）、ジョブ情報の取得タイミングを検出したか否かを判定する（ステップＳ６０）。計算側保持制御部２３は、ジョブ情報の取得タイミングを検出しなかった場合（ステップＳ６０否定）、クリア依頼を受信したか否かを判定すべく、ステップＳ５８に移行する。計算側保持制御部２３は、ジョブ情報の取得タイミングを検出した場合（ステップＳ６０肯定）、ジョブ情報の取得処理を実行すべく、ステップＳ５２Ａに移行する。【００６１】
また、タイミング検出部２１は、ジョブ情報の取得タイミングを検出しなかった場合（ステップＳ５１否定）、ジョブ情報の取得タイミングを継続監視すべく、ステップＳ５１に移行する。また、取得処理部２２は、ジョブ情報を取得できなかった場合（ステップＳ５２否定）、ジョブ情報の取得タイミングを検出すべく、ステップＳ５１に移行する。【００６２】
また、計算側保持制御部２３は、計算側保持部１４内に空きがない場合（ステップＳ５３否定）、当該タイムベルト番号のジョブ情報を計算側保持部１４に保持せず（ステップＳ６１）、ジョブ情報の取得タイミングを検出すべく、ステップＳ５１に移行する。【００６３】
また、計算側保持制御部２３は、ジョブ情報の送信依頼を受信しなかった場合（ステップＳ５６否定）、当該ジョブ情報送信依頼の監視動作を継続すべく、ステップＳ５６に移行する。尚、ステップＳ５６は代表ノードが実行する処理であることから、自分が管理ノード４からの送信依頼を促す送信依頼対象のタイムベルト番号を通知しているため、正常な場合、必ず管理ノード４から送信依頼を受信することになる。【００６４】
図９に示す代表ノード側ジョブ取得処理では、代表ノードが計算ノード共通の取得タイミングに応じてジョブ情報を取得すると、計算側保持部１４内に空きがあるか否かを判定する。計算側保持部１４内に空きがある場合、取得タイミングを識別するタイムベルト番号に関連付けてジョブ情報を計算側保持部１４内に保持する。その結果、代表ノードは、タイムベルト番号に関連付けてジョブ情報を二世代分まで保持できる。【００６５】
代表ノード側ジョブ取得処理では、タイムベルト番号に関連付けてジョブ情報を計算側保持部１４内に保持すると、当該タイムベルト番号を送信依頼対象として管理ノード４に通知する。その結果、代表ノードは、送信依頼対象のジョブ情報のタイムベルト番号を管理ノード４側に報知できる。【００６６】
代表ノード側ジョブ取得処理では、管理ノード４から指定のタイムベルト番号のジョブ情報の送信依頼に応じて、当該指定のタイムベルト番号のジョブ情報を管理ノード４に送信する。その結果、代表ノードは、送信依頼対象のジョブ情報を管理ノード４側に送信できる。【００６７】
代表ノード側ジョブ取得処理では、管理ノード４からクリア依頼を受信した場合、計算側保持部１４内に保持中の全てのジョブ情報を消去する。その結果、代表ノードは、管理ノード４側で最新のスナップショットを取得させるべく、新たなジョブ情報を計算側保持部１４に保持できる。【００６８】
次に、代表ノード以外の各計算ノード３のジョブ取得処理について説明する。図１０は、計算ノード側ジョブ取得処理に関わる計算ノード３の処理動作を示すフローチャートである。図１０において計算ノード３のジョブ情報処理制御部１２内のタイミング検出部２１は、ジョブ情報の取得タイミングを検出したか否かを判定する（ステップＳ７１）。取得処理部２２は、ジョブ情報の取得タイミングを検出した場合（ステップＳ７１肯定）、ジョブ情報取得処理を実行し（ステップＳ７２）、自分の担当するジョブ情報を取得できたか否かを判定する（ステップＳ７３）。【００６９】
計算側保持制御部２３は、自分が担当するジョブ情報を取得できた場合（ステップＳ７３肯定）、計算側保持部１４内に空きがあるか否かを判定する（ステップＳ７４）。計算側保持制御部２３は、計算側保持部１４内に空きがある場合（ステップＳ７４肯定）、そのタイムベルト番号のジョブ情報を計算側保持部１４内に保持する（ステップＳ７５）。【００７０】
計算側保持制御部２３は、管理ノード４から送信依頼対象のタイムベルト番号を指定したジョブ情報の送信依頼を受信したか否かを判定する（ステップＳ７６）。計算側保持制御部２３は、ジョブ情報の送信依頼を受信した場合（ステップＳ７６肯定）、送信依頼のタイムベルト番号のジョブ情報が計算側保持部１４内にあるか否かを判定する（ステップＳ７７）。【００７１】
情報送信部２４は、送信依頼のタイムベルト番号のジョブ情報が計算側保持部１４内にある場合（ステップＳ７７肯定）、送信依頼のタイムベルト番号のジョブ情報を管理ノード４に送信する（ステップＳ７８）。計算側保持制御部２３は、管理ノード４からクリア依頼を受信したか否かを判定する（ステップＳ７９）。計算側保持制御部２３は、クリア依頼を受信した場合（ステップＳ７９肯定）、計算側保持部１４に保持中の全ジョブ情報を消去し（ステップＳ８０）、ジョブ情報の取得タイミングを検出したか否かを判定すべく、ステップＳ７１に移行する。【００７２】
また、計算側保持制御部２３は、クリア依頼を受信しなかった場合（ステップＳ７９否定）、ジョブ情報の取得タイミングを検出したか否かを判定する（ステップＳ８１）。計算側保持制御部２３は、ジョブ情報の取得タイミングを検出しなかった場合（ステップＳ８１否定）、クリア依頼を受信したか否かを判定すべく、ステップＳ７９に移行する。計算側保持制御部２３は、ジョブ情報の取得タイミングを検出した場合（ステップＳ８１肯定）、ジョブ情報取得処理を実行すべく、ステップＳ７２に移行する。【００７３】
また、タイミング検出部２１は、ジョブ情報の取得タイミングを検出しなかった場合（ステップＳ７１否定）、ジョブ情報の取得タイミングを継続監視すべく、ステップＳ７１に移行する。また、取得処理部２２は、ジョブ情報を取得できなかった場合（ステップＳ７３否定）、ジョブ情報の取得タイミングを検出すべく、ステップＳ７１に移行する。【００７４】
また、計算側保持制御部２３は、計算側保持部１４内に空きがない場合（ステップＳ７４否定）、当該タイムベルト番号のジョブ情報を計算側保持部１４内に保持せず（ステップＳ８２）、ジョブ情報の取得タイミングを検出すべく、ステップＳ７１に移行する。【００７５】
また、計算側保持制御部２３は、ジョブ情報の送信依頼を受信しなかった場合（ステップＳ７６否定）、クリア依頼を受信したか否かを判定すべく、ステップＳ７９に移行する。【００７６】
また、計算側保持制御部２３は、送信依頼のタイムベルト番号のジョブ情報が計算側保持部１４内にない場合（ステップＳ７７否定）、当該タイムベルト番号の一世代前のジョブ情報が計算側保持部１４内にあるか否かを判定する（ステップＳ８３）。尚、送信依頼のタイムベルト番号が例えばＴ３の場合、一世代前のジョブ情報とは、タイムベルト番号Ｔ２のジョブ情報に相当する。計算側保持制御部２３は、当該タイムベルト番号の一世代前のジョブ情報が計算側保持部１４内にある場合（ステップＳ８３肯定）、一世代前のジョブ情報を管理ノード４に送信し（ステップＳ８４）、クリア依頼を受信したか否かを判定すべく、ステップＳ７９に移行する。【００７７】
また、計算側保持制御部２３は、当該タイムベルト番号のジョブ情報が計算側保持部１４内にない場合（ステップＳ８３否定）、管理ノード４に対してエラー情報を送信し（ステップＳ８５）、ジョブ情報の取得タイミングを検出したか否かを判定すべく、ステップＳ７１に移行する。【００７８】
図１０に示す計算ノード側ジョブ取得処理では、計算ノード３が計算ノード共通の取得タイミングに応じてジョブ情報を取得すると、計算側保持部１４内に空きがあるか否かを判定する。計算側保持部１４内に空きがある場合、取得タイミングを識別するタイムベルト番号に関連付けてジョブ情報を計算側保持部１４内に保持する。その結果、計算ノード３は、タイムベルト番号に関連付けてジョブ情報を二世代分まで保持できる。【００７９】
計算ノード側ジョブ取得処理では、管理ノード４から指定のタイムベルト番号のジョブ情報の送信依頼に応じて、当該指定のタイムベルト番号のジョブ情報が計算側保持部１４内にあるか否かを判定する。指定のタイムベルト番号のジョブ情報が計算側保持部１４内にある場合、当該タイムベルト番号のジョブ情報を管理ノード４に送信する。その結果、計算ノード３は、送信依頼に応じた指定のタイムベルト番号のジョブ情報を管理ノード４に送信できる。【００８０】
計算ノード側ジョブ取得処理では、指定のタイムベルト番号のジョブ情報が計算側保持部１４内にない場合、一世代前のジョブ情報が計算側保持部１４内にあるか否かを判定する。一世代前のジョブ情報が計算側保持部１４内にある場合、当該一世代前のジョブ情報を管理ノード４に送信する。その結果、計算ノード３は、例えば、クリア依頼の伝送遅延による計算ノード３間のズレを吸収すべく、一世代前のジョブ情報も管理ノード４に送信できる。【００８１】
計算ノード側ジョブ取得処理では、一世代前のジョブ情報が計算側保持部１４内にない場合、エラー情報を管理ノード４に送信する。その結果、計算ノード３は、送信できるジョブ情報がない旨を管理ノード４に報知できる。【００８２】
計算ノード側ジョブ取得処理では、管理ノード４からクリア依頼を受信した場合、計算側保持部１４内に保持中の全てのジョブ情報を消去する。その結果、計算ノード３は、管理ノード４側で最新のスナップショットを取得させるべく、新たなジョブ情報を計算側保持部１４に保持できる。【００８３】
次に管理ノード４側の動作について説明する。図１１は、管理ノード側スナップショット処理に関わる管理ノード４の処理動作を示すフローチャートである。図１１において管理ノード４内のスナップショット処理制御部３２は、代表の計算ノード３Ａから送信依頼対象のタイムベルト番号を受信したか否かを判定する（ステップＳ９１）。スナップショット処理制御部３２の送信依頼部４１は、送信依頼対象のタイムベルト番号を受信した場合（ステップＳ９１肯定）、送信依頼対象のタイムベルト番号に関わるジョブ情報の送信を全計算ノード３に依頼する（ステップＳ９２）。【００８４】
スナップショット処理制御部３２内の受信情報識別部４２は、各計算ノード３から受信した情報がエラー情報であるか否かを判定する（ステップＳ９３）。受信情報識別部４２は、受信した情報がエラー情報でない場合（ステップＳ９３否定）、受信した情報がジョブ情報であるか否かを判定する（ステップＳ９４）。スナップショット処理制御部３２内の管理側保持制御部４５は、受信した情報がジョブ情報である場合（ステップＳ９４肯定）、当該計算ノード３対応の管理側保持部３４内にジョブ情報を保持する（ステップＳ９５）。そして、受信情報識別部４２は、送信依頼した全計算ノード３からの情報受信が完了したか否かを判定する（ステップＳ９６）。【００８５】
受信情報識別部４２は、全計算ノード３からの情報受信が完了していない場合（ステップＳ９６否定）、未識別の受信情報があると判断し、受信情報がエラー情報であるか否かを判定すべく、ステップＳ９３に移行する。スナップショット処理制御部３２内の保持領域監視部４３は、全計算ノード３からの情報受信が完了した場合（ステップＳ９６肯定）管理側保持部３４の保持内容に基づき、新たに全計算ノード３のジョブ情報が保持できたタイムベルト番号があるか否かを判定する(ステップＳ９７)。【００８６】
保持領域監視部４３は、新たに全計算ノード３のジョブ情報が保持できたタイムベルト番号がある場合（ステップＳ９７肯定）、同一タイムベルト番号のスナップショットを新たに取得したと判断する。更に、送信依頼部４１は、同一タイムベルト番号のスナップショットを新たに取得したものと判断し、管理側保持部３４に保持中のジョブ情報を消去するクリアを全計算ノード３に依頼する（ステップＳ９８）。【００８７】
管理側保持制御部４５は、新たに保持できた同一タイムベルト番号の全計算ノード３のジョブ情報を新たなスナップショットとして第１保持領域３４Ａに更新登録する（ステップＳ９９）。更に、管理側保持制御部４５は、第２保持領域３４Ｂ及び第３保持領域３４Ｃに保持中の各計算ノード３のジョブ情報を全て消去し（ステップＳ１００）、図１１の処理動作を終了する。【００８８】
スナップショット処理制御部３２は、送信対象のタイムベルト番号を受信しなかった場合（ステップＳ９１否定）、図１１の処理動作を終了する。また、受信情報識別部４２は、受信した情報がエラー情報であった場合（ステップＳ９３肯定）、計算ノード３からの受信情報と識別し、全ての計算ノード３からの受信情報の識別が完了したか否かを判定すべく、ステップＳ９６に移行する。【００８９】
保持領域監視部４３は、新たに全計算ノード３のジョブ情報が保持できたタイムベルト番号がない場合(ステップＳ９７否定)、図１１の処理動作を終了する。【００９０】
図１１に示す管理側スナップショット取得処理では、管理ノード４が、代表ノードから送信依頼対象のタイムベルト番号を受信した場合、送信依頼対象のタイムベルト番号のジョブ情報を各計算ノード３に送信依頼する。その結果、管理ノード４は、代表ノードからの送信依頼対象のタイムベルト番号に応じて、各計算ノード３に対して指定のタイムベルト番号に関わるジョブ情報の送信依頼を実現できる。【００９１】
管理側スナップショット取得処理では、管理ノード４が、送信依頼に対する各計算ノード３からの受信情報がジョブ情報であるか否かを判定する。受信情報がジョブ情報の場合、指定のタイムベルト番号又は一世代前のタイムベルト番号のジョブ情報であると判断し、このジョブ情報を管理側保持部３４内の当該計算ノード３に対応付けて保持する。その結果、管理ノード４は、各計算ノード３のジョブ情報を管理側保持部３４内に三世代分保持できる。【００９２】
管理側スナップショット取得処理では、管理ノード４が、新たに全計算ノード３のジョブ情報を保持できたタイムベルト番号が管理側保持部３４内にある場合、すなわち同一タイムベルト番号のスナップショットを新たに取得したと判断する。更に、管理ノード４は、同一タイムベルト番号のスナップショットを新たに取得したものと判断し、管理側保持部３４に保持中のジョブ情報を消去するクリアを全計算ノード３に依頼する。管理ノード４が新たに保持できた同一タイムベルト番号の全計算ノード３のジョブ情報を新たなスナップショットとして第１保持領域３４Ａに更新登録すると共に、第２保持領域３４Ｂ及び第３保持領域３４Ｃに保持中の各計算ノード３のジョブ情報を消去する。【００９３】
その結果、管理ノード４は、同一タイムベルト番号のジョブ情報に関するスナップショットを第１保持領域３４Ａに保持したので、最新のスナップショットをユーザに提示できる。更に、管理ノード４は、第２保持領域３４Ｂ及び第３保持領域３４Ｃのジョブ情報を消去することで、第２保持領域３４Ａ及び第３保持領域３４Ｃをジョブ情報の一時的な保持領域として使用できる。【００９４】
実施例２では、計算ノード３が計算ノード共通の周期タイミングに応じてジョブ情報を取得し、ジョブ情報を取得した周期タイミングを識別するタイムベルト番号に関連付けして、ジョブ情報を計算側保持部１４に保持する。更に、実施例２では、管理ノード４が、送信依頼に応じて各計算ノード３からジョブ情報を受信すると、当該受信したジョブ情報を管理側保持部３４に保持する。そして、実施例２では、管理ノード４が、管理側保持部３４内に同一タイムベルト番号の計算ノード３に関わるジョブ情報を検出した場合、同一タイムベルト番号のジョブ情報をスナップショットとして保持する。更に、実施例２では、同一タイムベルト番号のジョブ情報をスナップショットとして保持した場合、管理側保持部３４に保持中の同一タイムベルト番号のジョブ情報以外のジョブ情報を消去すると共に、計算側保持部１４に保持中のジョブ情報を全て消去する。その結果、ジョブ情報を取得する周期タイミングのタイムベルト番号をキーにしてジョブ情報を管理するので、計算ノード３間のジョブ情報の正確なスナップショットを確保できる。【００９５】
実施例２では、計算側保持部１４に二世代分のジョブ情報を保持可能にする保持領域を備え、管理側保持部３４に計算ノード３毎の三世代分のジョブ情報を保持可能にする保持領域を備えた。その結果、例えば、管理ノード４からのクリア依頼の伝送遅延によるジョブ情報消去のタイミングが計算ノード３毎に異なる。従って、管理ノード４側で各計算ノード３のジョブ情報が収集できなくなるような事態を回避してスナップショット取得を保証できる。【００９６】
実施例２では、複数の計算ノード３内の１台を代表ノードとし、代表ノードから管理ノード４へ送信依頼対象のタイムベルト番号の通知を契機にして管理ノード４側ではタイムベルト番号をキーにしたジョブ情報の送信依頼を開始する。その結果、代表ノードは、１台で済むため、スナップショットを取得する上での通信負担を軽減できる。【００９７】
尚、上記実施例２では、計算ノード３の台数を４台としたが、これら台数に限定するものではない。また、上記実施例２では、複数の計算ノード３内の１台を代表ノードとしたが、１台に限定しなくても良い。また、上記実施例２では、複数の計算ノード３の内の１台を代表ノードとしたが、各計算ノード３を代表ノードとしても良い。【００９８】
また、上記実施例２では、計算側保持部１４に二世代分のジョブ情報を保持する保持領域を備え、管理側保持部３４に三世代分のジョブ情報を保持する保持領域を備えた。しかしながら、計算側保持部１４に三世代分のジョブ情報を保持する保持領域を備え、管理側保持部３４に四世代分のジョブ情報を保持する保持領域を備えるようにしても良い。【００９９】
また、上記実施例２では、管理ノード４からのクリア依頼が各計算ノード３に到達してジョブ情報の消去を実行するまでに要する計算ノード３毎の時間を測定し、その測定結果に基づき、計算ノード３間の最大ズレ時間を算出する。そして、その最大ズレ時間がタイムベルト間隔時間よりも十分短いと想定し、計算側保持部１４に二世代分のジョブ情報を保持する保持領域を用意した。【０１００】
これに対して、その最大時間差がタイムベルト間隔時間よりも長い場合には、タイムベルト間隔時間のｎ倍＜最大時間差≦タイムベルト間隔の（ｎ＋１）倍の条件が成立する場合、計算側保持部１４に（ｎ＋２）世代分のジョブ情報を保持する保持領域を用意する。更に、管理側保持部３４に（ｎ＋３）世代分のジョブ情報を保持する保持領域を用意する。例えば、ｎ＝１の場合、計算側保持部１４に三世代分のジョブ情報を保持する保持領域を用意し、管理側保持部３４に四世代分のジョブ情報を保持する保持領域を用意することになる。また、ｎ＝２の場合、計算側保持部１４に四世代分のジョブ情報を保持する保持領域を用意し、管理側保持部３４に五世代分のジョブ情報を保持する保持領域を用意することになる。【０１０１】
また、上記実施例２では、管理ノード４及び計算ノード３間の２段構成の並列計算機１としたが、計算ノード３及び管理ノード４間の多段構成の並列計算機としても良い。図１２は、３段構成の並列計算機を示す説明図である。【０１０２】
図１２に示す並列計算機１Ｂは、１２台の計算ノード３Ａ〜３Ｌと、３台のサブ管理ノード４Ｂ〜４Ｄと、１台の管理ノード４Ａとを有する。サブ管理ノード４Ｂは、４台の計算ノード３Ａ〜３Ｄを中継管理する。更に、サブ管理ノード４Ｃは、４台の計算ノード３Ｅ〜３Ｈを中継管理する。更に、サブ管理ノード４Ｄは、４台の計算ノード３Ｉ〜３Ｌを中継管理する。更に、管理ノード４Ａは、３台のサブ管理ノード４Ｂ〜４Ｄを管理する。【０１０３】
各計算ノード３Ａ〜３Ｌの計算側保持部１４は、第１保持領域１４Ａ及び第２保持領域１４Ｂを有する。各サブ管理ノード４Ｂ〜４Ｄは、４台分の計算ノードのジョブ情報を三世代分保持する第１保持領域３４Ｄ、第２保持領域３４Ｅ及び第３保持領域３４Ｆを有する。【０１０４】
更に、管理ノード４Ａの管理側保持部３４は、１２台分の計算ノード３Ａ〜３Ｌの同一タイムベルト番号のジョブ情報を三世代分保持する第１保持領域３４Ａ、第２保持領域３４Ｂ及び第３保持領域３４Ｃを有する。【０１０５】
各計算ノード３Ａ〜３Ｌは、ジョブ開始コマンドから共通周期タイミングのジョブ情報を取得し、そのジョブ情報を計算側保持部１４に保持する。各サブ管理ノード４Ｂ，４Ｃ，４Ｄは、管理する各計算ノード３Ａ〜３Ｄ（３Ｅ〜３Ｈ及び３Ｉ〜３Ｌ）からの各ジョブ情報を纏めて収集する。各サブ管理ノード４Ｂ，４Ｃ及び４Ｄは、ジョブ情報を収集すると、この収集したジョブ情報を保持する。更に、各サブ管理ノード４Ｂ，４Ｃ及び４Ｄは、各計算ノード３Ａ〜３Ｄ（３Ｅ〜３Ｈ及び３Ｉ〜３Ｌ）のジョブ情報を纏めて管理ノード４Ａに送信する。【０１０６】
つまり、管理ノード４Ａは、各計算ノード３Ａ〜３Ｌと個別に通信するのではなく、サブ管理ノード４Ｂ、４Ｃ及び４Ｄとの通信で各計算ノード３Ａ〜３Ｌのジョブ情報を収集する。その結果、管理ノード４Ａは、サブ管理ノード４Ｂ，４Ｃ及び４Ｄと通信して各計算ノード３Ａ〜３Ｌのジョブ情報を収集するため、その通信回数を減らして通信負担を軽減できる。【０１０７】
図１２の例では、管理ノード４Ａ、サブ管理ノード４Ｂ〜４Ｄ及び計算ノード３Ａ〜３Ｌの３階層構造で説明したが、３階層構造に限定するものではなく、４階層以上の階層構造にしても良い。【０１０８】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。【０１０９】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。【０１１０】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１３を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１３は、並列計算機のジョブ情報取得プログラムを実行するコンピュータを示す説明図である。【０１１１】
図１３に示すコンピュータ２００は、ＨＤＤ（Hard  Disk  Drive）２１０、ＲＡＭ(Random  Access  Memory)２２０、ＲＯＭ（Read  Only  Memory）２３０及びＣＰＵ２４０をバス２５０で接続して構成される。【０１１２】
そして、ＲＯＭ２３０には、上記の実施例と同様の機能を発揮する計算ノード側のジョブ情報取得プログラムが予め記憶されている。計算ノード側のジョブ情報取得プログラムとしては、図１３に示すように、取得プログラム２３１、保持プログラム２３２、情報送信プログラム２３３及び消去プログラム２３４である。尚、プログラム２３１〜２３４については、図１に示した計算ノード５０の各構成要素と同様、適宜統合又は分散してもよい。【０１１３】
そして、ＣＰＵ２４０が、これらのプログラム２３１〜２３４をＲＯＭ２３０から読み出して実行する。そして、図１３に示すように、各プログラム２３１〜２３４は、取得プロセス２４１、保持プロセス２４２、情報送信プロセス２４３及び消去プロセス２４４として機能するようになる。【０１１４】
また、コンピュータ２００Ａは、ＨＤＤ２１０Ａ、ＲＡＭ２２０Ａ、ＲＯＭ２３０Ａ及びＣＰＵ２４０Ａをバス２５０Ａで接続して構成される。【０１１５】
そして、ＲＯＭ２３０Ａには、上記の実施例と同様の機能を発揮する管理ノード側のジョブ情報取得プログラムが予め記憶されている。管理ノード側のジョブ情報取得プログラムとしては、図１３に示すように、保持プログラム２３１Ａ、スナップショット保持プログラム２３２Ａ、消去プログラム２３３Ａ及び消去依頼プログラム２３４Ａである。尚、プログラム２３１Ａ〜２３４Ａについては、図１に示した管理ノード６０の各構成要素と同様、適宜統合又は分散してもよい。【０１１６】
そして、ＣＰＵ２４０Ａが、これらのプログラム２３１Ａ〜２３４ＡをＲＯＭ２３０Ａから読み出して実行する。そして、図１３に示すように、各プログラム２３１Ａ〜２３４Ａは、保持プロセス２４１Ａ、スナップショット保持プロセス２４２Ａ、消去プロセス２４３Ａ及び消去依頼プロセス２４４Ａとして機能するようになる。【０１１７】
ＣＰＵ２４０は、計算ノード共通の周期タイミングに応じて、計算ノード自体が担当する計算ジョブに関わるジョブ情報を取得する。更に、ＣＰＵ２４０は、ジョブ情報を取得した周期タイミングを識別する識別番号に関連付けして、所定複数周期分のジョブ情報を保持可能にするＲＡＭ２２０内の保持部にジョブ情報を保持する。更に、ＣＰＵ２４０は、管理ノードから指定の識別番号に関わるジョブ情報の送信依頼を受信すると、指定の識別番号に関わるジョブ情報が保持部内にある場合、当該指定の識別番号に関わるジョブ情報を管理ノードに送信する。また、ＣＰＵ２４０は、当該指定の識別番号に関わるジョブ情報が保持部内になく、当該指定の識別番号直前の識別番号に関わるジョブ情報がある場合、当該識別番号に関わるジョブ情報を管理ノードに送信する。【０１１８】
また、ＣＰＵ２４０Ａは、送信依頼に応じて各計算ノードからジョブ情報を受信すると、当該受信したジョブ情報を、計算ノード毎の所定複数周期分のジョブ情報を保持可能にするＲＡＭ２２０Ａ内の保持部に保持する。更に、ＣＰＵ２４０Ａは、保持部内に同一識別番号の計算ノードに関わるジョブ情報を検出した場合、当該同一識別番号のジョブ情報をスナップショットとして保持する。更に、ＣＰＵ２４０Ａは、同一識別番号のジョブ情報をスナップショットとして保持した場合、当該ＲＡＭ２２０Ａ内の保持部に保持中の当該同一識別番号のジョブ情報以外のジョブ情報を消去する。更に、ＣＰＵ２４０Ａは、同一識別番号のジョブ情報をスナップショットして保持した場合、各計算ノードに対して消去依頼を送信する。【０１１９】
そして、ＣＰＵ２４０は、管理ノードからの消去依頼を受信すると、ＲＡＭ２２０内の保持部に保持中のジョブ情報を全て消去する。その結果、ジョブ情報を取得する周期タイミングの識別番号をキーにしてジョブ情報を管理するので、計算ノード間のジョブ情報の正確なスナップショットを確保できる。また、例えば、管理ノードからのクリア依頼の伝送遅延によるジョブ情報消去のタイミングが異なることで、管理ノード側で各計算ノードのジョブ情報が収集できなくなるような事態を回避し、スナップショット取得を保証する。
【符号の説明】
【０１２０】
１  並列計算機
１Ａ  並列計算機
３  計算ノード
４  管理ノード
１４  計算側保持部
１４Ａ  第１保持領域
１４Ｂ  第２保持領域
２２  取得処理部
２３  計算側保持制御部
２４  情報送信部
３４  管理側保持部
３４Ａ  第１保持領域
３４Ｂ  第２保持領域
３４Ｃ  第３保持領域
４１  送信依頼部
４４  クリア依頼部
４５  管理側保持制御部
５０  計算ノード
５１  取得部
５２  保持部
５３  保持制御部
５４  情報送信部
６０  管理ノード
６１  保持部
６２  保持制御部
６３  消去依頼部
【図１】
0005464276.tif 000002
【図２】
0005464276.tif 000003
【図３】
0005464276.tif 000004
【図４】
0005464276.tif 000005
【図５】
0005464276.tif 000006
【図６】
0005464276.tif 000007
【図７】
0005464276.tif 000008
【図８】
0005464276.tif 000009
【図９】
0005464276.tif 000010
【図１０】
0005464276.tif 000011
【図１１】
0005464276.tif 000012
【図１２】
0005464276.tif 000013
【図１３】
0005464276.tif 000014
【図１４】
0005464276.tif 000015
【図１５】
0005464276.tif 000016