(57)【特許請求の範囲】
【請求項１】
プロセッサとメモリとを有しノード間でデータを中継する複数のノードを有する並列処理装置であって、
前記複数のノードのうちの前記複数のノードを管理する管理ノードは、
前記複数のノードのうちの故障した故障ノードが発生した場合、前記複数のノードの各ノードの消費電力、または／および前記各ノードのメモリの使用量に基づいて、前記複数のノードから前記故障ノードのメモリに記憶された情報を採取する採取ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記複数のノードのうちの記憶ノードに記憶させる指示を含むデータを、決定した前記採取ノードに送信し、
前記採取ノードは、
前記指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、採取した前記情報に基づき生成される情報を記憶する記憶ノードに近づく方向とにそれぞれ送信し、
前記複数のノードのうちの前記故障ノードの隣にある隣接ノードでなく、かつ、前記記憶ノードでないノードは、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信し、
前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信し、
前記採取ノードは、
前記隣接ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記故障ノードおよび前記採取ノード間の経路を決定し、前記記憶ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記採取ノードおよび前記記憶ノード間の経路を決定する、
ことを特徴とする並列処理装置。
【請求項２】
前記複数のノードには、不揮発性の記憶装置を有する２以上のノードが含まれており、
前記複数のノードを管理する管理ノードは、
前記故障ノードが発生した場合、前記２以上のノードの各ノードの消費電力、または／および当該各ノードのメモリの使用量に基づいて、前記２以上のノードから前記記憶ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記記憶ノードの記憶装置に記憶させる指示を含むデータを、前記採取ノードに送信し、
前記採取ノードは、
当該指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、前記記憶ノードに近づく方向とにそれぞれ送信する、
ことを特徴とする請求項１に記載の並列処理装置。
【請求項３】
前記複数のノードのうちの前記隣接ノードでなく、かつ、前記記憶ノードでないノードは、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値に自ノードの通信性能に関する評価値を加算した評価値を含むデータを、前記故障ノードに近づく方向に送信し、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値に自ノードの通信性能に関する評価値を加算した評価値を含むデータを、前記記憶ノードに近づく方向に送信する、
ことを特徴とする請求項１または２に記載の並列処理装置。
【請求項４】
前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを加算した評価値を含むデータを、前記採取ノードに送信する、
ことを特徴とする請求項１〜３のいずれか一つに記載の並列処理装置。
【請求項５】
前記複数のノードのうちの前記隣接ノードでなく、かつ、前記記憶ノードでないノードは、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを複数受信した場合、複数のデータの各データに含まれる他ノードの通信性能に関する評価値に基づいて前記複数のデータのうちのいずれか一つのデータを特定し、特定した前記データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、
前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを複数受信した場合、複数のノードの各データに含まれる他ノードの通信性能に関する評価値に基づいて前記複数のデータのうちのいずれか一つのデータを特定し、特定した前記データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信する、
ことを特徴とする請求項１〜４のいずれか一つに記載の並列処理装置。
【請求項６】
前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを複数受信した場合、複数のデータの各データに含まれる他ノードの通信性能に関する評価値に基づいて、前記複数のデータのうちのいずれか一つのデータを特定し、
特定した前記データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信する、
ことを特徴とする請求項１〜５のいずれか一つに記載の並列処理装置。
【請求項７】
前記採取ノードは、
決定した前記故障ノードおよび前記採取ノード間の経路に含まれる各ノードに、前記故障ノードのメモリに記憶された情報を中継する指示を送信し、
前記指示により得られた前記情報を変換した変換後の情報を中継し前記変換後の情報を前記記憶ノードの記憶装置に格納する指示を、決定した前記採取ノードおよび前記記憶ノード間の経路に含まれる各ノードに送信する、
ことを特徴とする請求項１〜６のいずれか一つに記載の並列処理装置。
【請求項８】
プロセッサとメモリとを有しノード間でデータを中継する複数のノードを有する並列処理装置におけるノード情報採取方法であって、
前記複数のノードのうちの前記複数のノードを管理する管理ノードが、
前記複数のノードのうちの故障した故障ノードが発生した場合、前記複数のノードの各ノードの消費電力、または／および前記各ノードのメモリの使用量に基づいて、前記複数のノードから前記故障ノードのメモリに記憶された情報を採取する採取ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記複数のノードのうちの記憶ノードに記憶させる指示を含むデータを、決定した前記採取ノードに送信する、処理を実行し、
前記採取ノードが、
前記指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、採取した前記情報に基づき生成される情報を記憶する記憶ノードに近づく方向とにそれぞれ送信する処理を実行し、
前記複数のノードのうちの前記故障ノードの隣にある隣接ノードでなく、かつ、前記記憶ノードでないノードが、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信する処理を実行し、
前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信する処理を実行し、
前記採取ノードは、
前記隣接ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記故障ノードおよび前記採取ノード間の経路を決定し、前記記憶ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記採取ノードおよび前記記憶ノード間の経路を決定する処理を実行する、
ことを特徴とするノード情報採取方法。
【請求項９】
プロセッサとメモリとを有しノード間でデータを中継する複数のノードを有する並列処理装置におけるノード情報採取プログラムであって、
前記複数のノードに含まれるノードに、
前記ノードが前記複数のノードを管理する管理ノードであり、かつ、前記複数のノードのうちの故障した故障ノードが発生した場合、前記複数のノードの各ノードの消費電力、または／および前記各ノードのメモリの使用量に基づいて、前記複数のノードから前記故障ノードのメモリに記憶された情報を採取する採取ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記複数のノードのうちの記憶ノードに記憶させる指示を含むデータを、決定した前記採取ノードに送信し、
前記ノードが前記採取ノードであり、かつ、前記指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、採取した前記情報に基づき生成される情報を記憶する記憶ノードに近づく方向とにそれぞれ送信し、
前記ノードが前記故障ノードの隣にある隣接ノードでなく、かつ、前記記憶ノードでないノードであり、かつ、前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、
前記ノードが前記隣接ノードでなく、かつ、前記記憶ノードでないノードであり、かつ、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信し、
前記ノードが前記隣接ノードまたは前記記憶ノードであり、かつ、前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信し、
前記ノードが前記採取ノードであり、かつ、前記隣接ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記故障ノードおよび前記採取ノード間の経路を決定し、前記記憶ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記採取ノードおよび前記記憶ノード間の経路を決定する、
処理を実行させることを特徴とするノード情報採取プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理装置、ノード情報採取方法、およびノード情報採取プログラムに関する。
【背景技術】
【０００２】
従来、プロセッサとメモリとを有しノード間でデータを中継する複数のノードが、科学技術計算等の処理といったジョブを実行する技術がある。また、プロセッサで障害が発生した際のメモリダンプを採取する技術がある。関連する先行技術として、例えば、プロセッサで障害が発生した場合に、障害が発生したプロセッサで、直接障害が発生していないが障害要因の可能性がある関連プロセッサを特定し、システム管理プロセッサにメモリダンプ採取を要求するものがある。また、相互に通信可能な複数のノードを有するマルチノードシステムであって、いずれかのノードに障害が発生した場合に、障害の発生していないノードは、障害の発生したノードのメモリから、それに記憶されている情報を取得する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３０６０５１号公報
【特許文献２】特開２０１０−１７６３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、複数のノードから発生した故障ノードのメモリに記憶された情報を採取して採取した情報に基づく情報を記憶ノードに記憶させる処理において、各ノードで実行中のジョブへの影響を抑えることが難しい。例えば、前述の処理を、各ノードで実行中のジョブへの影響を抑えて行うために、故障ノードから採取ノードまでの経路と、採取ノードから記憶ノードまでの経路とに、実行中のジョブによる負荷が高いノードが含まれないように決定することになる。しかしながら、各ノードのうちの特定のノードが、各ノードの処理状態を定期的に各ノードから取得し、取得した各ノードの処理状態から前述の経路を決定すると、特定のノードにかかる負荷が大きくなり、特定のノードで実行中のジョブへの影響が大きくなる。
【０００５】
１つの側面では、本発明は、故障ノードのメモリに記憶された情報を採取して採取した情報に基づく情報を記憶ノードに記憶させる処理において、各ノードで実行中のジョブへの影響を抑えることができる並列処理装置、ノード情報採取方法、およびノード情報採取プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、プロセッサとメモリとを有しノード間でデータを中継する複数のノードを有する並列処理装置であって、複数のノードのうちの複数のノードを管理する管理ノードは、複数のノードのうちの故障した故障ノードが発生した場合、複数のノードの各ノードの消費電力、または／および各ノードのメモリの使用量に基づいて、複数のノードから故障ノードのメモリに記憶された情報を採取する採取ノードを決定し、故障ノードのメモリに記憶された情報に基づき生成される情報を記憶ノードに記憶させる指示を含むデータを、決定した採取ノードに送信し、採取ノードは、指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、故障ノードに近づく方向と、採取した情報に基づき生成される情報を記憶する記憶ノードに近づく方向とにそれぞれ送信し、複数のノードのうちの故障ノードの隣にある隣接ノードでなく、かつ、記憶ノードでないノードは、故障ノードに近づく方向に送信されており送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、故障ノードに近づく方向に送信し、記憶ノードに近づく方向に送信されており送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、記憶ノードに近づく方向に送信し、隣接ノードと記憶ノードとは、故障ノードまたは記憶ノードに近づく方向に送信されており送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、採取ノードに送信し、採取ノードは、隣接ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、故障ノードおよび採取ノード間の経路を決定し、記憶ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、採取ノードおよび記憶ノード間の経路を決定する並列処理装置、ノード情報採取方法、およびノード情報採取プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、故障ノードのメモリに記憶された情報を採取して採取した情報に基づく情報を記憶ノードに記憶させる処理において、各ノードで実行中のジョブへの影響を抑えることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態にかかる並列処理装置１０１の動作例を示す説明図である。
【図２】図２は、並列処理装置１０１の構成例を示す説明図である。
【図３】図３は、ノードのハードウェア構成例を示す説明図である。
【図４】図４は、並列処理装置１０１の機能構成例を示す説明図である。
【図５】図５は、記憶ノードＩｎの決定例を示す説明図である。
【図６】図６は、記憶ノードＩｎ決定処理手順の一例を示すフローチャートである。
【図７】図７は、採取ノードＡｎの決定例を示す説明図である。
【図８】図８は、採取ノードＡｎ決定処理手順の一例を示すフローチャートである。
【図９】図９は、チェックパケットの送信例を示す説明図である。
【図１０】図１０は、チェックパケットのフォーマット１００１の一例を示す説明図である。
【図１１】図１１は、チェックパケットを受信したノードの動作例を示す説明図（その１）である。
【図１２】図１２は、チェックパケットを受信したノードの動作例を示す説明図（その２）である。
【図１３】図１３は、チェックパケットを受信したノードの処理手順の一例を示すフローチャートである。
【図１４】図１４は、チェックパケットを受信した採取ノードＡｎの動作例を示す説明図（その１）である。
【図１５】図１５は、チェックパケットを受信した採取ノードＡｎの動作例を示す説明図（その２）である。
【図１６】図１６は、情報採取処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示の並列処理装置、ノード情報採取方法、およびノード情報採取プログラムの実施の形態を詳細に説明する。
【００１０】
図１は、本実施の形態にかかる並列処理装置１０１の動作例を示す説明図である。並列処理装置１０１は、複数のノードにより形成される並列計算機システムである。例えば、並列計算機システムは、科学技術計算を主要な目的とするスーパーコンピュータシステムに適用される。複数のノードの各ノードは、それぞれ、プロセッサとメモリとを有する。そして、各ノードは、ノード間でデータを中継する。また、複数のノードのうちの計算ノードｎｄは、科学技術計算等の処理といったジョブを実行する。図１の例では、並列処理装置１０１には、１４個の計算ノードｎｄが含まれる。
【００１１】
また、複数のノードのうちのＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ノードは、プロセッサとメモリとに加えて、不揮発性の記憶装置を有する。不揮発性の記憶装置としては、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等がある。以下、ＩＯノードが有する不揮発性の記憶装置を、ディスクと称する。図１の例では、並列処理装置１０１には、ＩＯノードとして、ＩＯノードＩ０と、ＩＯノードＩ１とが含まれる。そして、ＩＯノードＩ０は、ディスクｄ０を有する。また、ＩＯノードＩ１は、ディスクｄ１を有する。
【００１２】
ここで、複数のノードのうち、故障した故障ノードが発生した場合でも、並列処理装置１０１は、他の計算ノードｎｄのジョブを停止させずに、故障ノードの問題発生原因を調査するための情報採取処理を行う。以下の記載では、故障ノードを、「ダウンノード」と呼称する。また、ダウンノードのメモリに記憶された情報を採取し、採取した情報を出力形式に変換するノードを「採取ノード」と呼称する。採取ノードは、計算ノードｎｄのいずれか一つのノードとなる。また、変換した情報を記憶するノードを、「記憶ノード」と呼称する。記憶ノードは、ＩＯノードのうちのいずれか一つのノードとなる。また、ダウンノードのメモリに記憶された情報を、「ダウン情報」と呼称する。
【００１３】
情報採取処理では、ダウンノードから採取ノードまでの何らかの経路を通ったダウン情報を、採取ノードが出力形式に変換し、採取ノードから記憶ノードまでの何らかの経路を通った出力形式のダウン情報を、記憶ノードが記憶する、という処理を行う。
【００１４】
しかしながら、情報採取処理は、各ノードがジョブを実行中に使用する通信経路や、ジョブ実行中のノードを経由する場合があり、この場合、各ノードで実行中のジョブへの影響が発生することになる。影響としては、例えば、計算遅延や、同期処理の乱れ等が挙げられる。例えば、ダウンノードから採取ノードまでの経路を決定する際に、ダウンノードからの距離観点で、ダウンノードに記憶された情報を中継するノードを決定したとする。この場合、ジョブを実行中のノードが、ダウンノードに記憶された情報を中継することになると、中継するノードの実行が遅くなる。
【００１５】
ここで、ジョブを実行中のノードへの影響を抑えるために、各ノードの処理状態を、例えば１分以内等の周期で取得しておき、ジョブを実行中のノードへの影響を抑える経路を決定することが考えられる。各ノードの処理状態としては、例えば、アイドル命令発行数、ノード間の同期命令発行状況、ノード間通信量、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）負荷、ノード間の接続状態である。
【００１６】
しかしながら、各ノードから各ノードの処理状態を取得し、各ノードの処理状態から、どの経路に決定する処理を、特定のノードで行わせると、特定のノードにかかる負荷が大きくなり、特定のノードで実行中のジョブへの影響が大きくなる。また、ノードの数が増えるほどこの現象は顕著化することになる。また、各ノードの処理状態を取得する周期を長くすれば特定のノードにかかる負荷を減らすことができるが、処理状態を取得した時点の各ノードの処理状態と、実際に経路を決定する時点の各ノードの処理状態との乖離が大きくなってしまう。
【００１７】
そこで、本実施の形態では、消費電力の小さい採取ノードからダウンノードと記憶ノードの方向に、自ノードの通信性能に関する評価値を追加したデータを順次中継し、各方向で中継したデータに含まれる評価値に基づき経路を決定する方法について説明する。
【００１８】
図１の左の図では、複数のノードの計算ノードｎｄから、ダウンノードＰが発生した状態を示す。
【００１９】
まず、管理ノードｍｄは、複数のノードの各ノードの消費電力、または／および各ノードのメモリの使用量に基づいて、採取ノードＡｎを決定する。同様に、管理ノードｍｄは、ＩＯノードから、記憶ノードＩｎを決定する。図１の例では、管理ノードｍｄは、１４個の計算ノードｎｄのうち、消費電力が一番小さいノードであった計算ノードｎｄ０を、採取ノードＡｎとして決定する。また、管理ノードｍｄは、ノードＩ０、Ｉ１から、消費電力が一番小さいノードであったノードＩ０を、記憶ノードＩｎとして決定する。ここで、ＩＯノードが一つしかない場合や、ＩＯノードが複数あっても故障していないＩＯノードが一つしかない場合には、管理ノードｍｄは、決め打ちにより記憶ノードＩｎを決定する。
【００２０】
ここで、図１の例における、採取ノードＡｎ、ダウンノードＰ、記憶ノードＩｎの位置関係について説明する。図１の左の図が示すように、採取ノードＡｎの２つ右、１つ下の位置に、ダウンノードＰがあるものとする。また、採取ノードＡｎの１つ左、２つ下の位置に、記憶ノードＩｎがあるものとする。採取ノードＡｎの１つ右のノードを、ノードｎｄ１とし、採取ノードＡｎの１つ下のノードを、ノードｎｄ２とする。また、採取ノードＡｎの２つ右のノードと、採取ノードＡｎの１つ右、１つ下のノードは、ダウンノードＰに隣接するノードである。ダウンノードＰに隣接するノードを、「隣接ノード」と呼称する。採取ノードＡｎの２つ右のノードを、隣接ノードａｄ１とし、採取ノードＡｎの１つ右、１つ下のノードを、隣接ノードａｄ２とする。また、図１、図９、図１１、図１４では、隣接ノードを、六角形の輪郭を有する図形として示す。
【００２１】
次に、図１の左図の（１）で示すように、管理ノードｍｄは、ダウンノードＰのメモリダンプを採取し、出力形式に変換したデータを記憶ノードＩｎに記憶させる、情報採取処理を実行する指示を、採取ノードＡｎに送信する。前述の指示には、決定したダウンノードＰや記憶ノードＩｎの座標位置が含まれる。
【００２２】
採取ノードＡｎは、前述の指示を受け付けると、自ノードの通信性能に関する評価値の送信指示を含むデータを、ダウンノードＰに近づく方向と、記憶ノードＩｎに近づく方向とにそれぞれ送信する。以下、前述のデータを、「チェックパケット」と称する。チェックパケットには、チェックパケットの目的となるダウンノードＰや記憶ノードＩｎの座標位置が含まれる。
【００２３】
図１の例では、ダウンノードＰに近づく方向にチェックパケットを送信する例を示す。ダウンノードＰに近づく方向は、右方向と下方向と２方向ある。そこで、採取ノードＡｎは、図１の左図の（２）で示すように、右方向と下方向とのそれぞれに、チェックパケットｃｐ１を送信する。また、図１の左の図では示していないが、採取ノードＡｎは、記憶ノードＩｎに近づく方向にもチェックパケットを送信する。また、記憶ノードＩｎに近づく方向にチェックパケットを送信する契機は、チェックパケットをダウンノードＰに近づく方向に送信する際と同時でもよいし、後でもよい。
【００２４】
また、自ノードの通信性能に関する評価値は、前述したノードの処理状態を指標化した値であればよい。例えば、評価値は、ＣＰＵ使用率を、０から１０の間の数値で示したものでもよいし、通信に用いられるバッファの使用率を通信負荷率として、０から１０の間の数値で示したものでもよいし、前述の２つの値の合計値でもよい。ノードの通信性能に関する評価値を、以下、「ノードの評価値」と称する。また、評価値は、小さい値ほど良いことを示す値でもよいし、大きい値ほど良いことを示す値でもよい。本実施の形態では、各ノードは、下記（１）式のように評価値を算出する。
【００２５】
評価値＝（ＣＰＵ占有率＊１００／１０＋通信負荷率＊１００／１０）／２  …（１）
【００２６】
ＣＰＵ占有率と通信負荷率とは、０［％］から１００［％］までの値である。（１）式が示すように、本実施の形態では、評価値は、小さい値ほど良いことを示す値であるとする。図１の例では、ノードｎｄ１、ｎｄ２、隣接ノードａｄ１、ａｄ２の内側に記載した数値が、各ノードの評価値を示す。図９、図１１、図１４でも、同様の表現を用いて、ノードの評価値を示す。
【００２７】
チェックパケットｃｐ１を受信したノードｎｄ１、ｎｄ２は、隣接ノードａｄでもなく、記憶ノードＩｎでもないノードである。隣接ノードａｄでもなく、記憶ノードＩｎでもないノードが、ダウンノードＰに近づく方向に送信されており評価値の送信指示を含むチェックパケットを受信したとする。この場合、前述のノードは、受信したチェックパケットに自ノードの評価値を追加したチェックパケットを、ダウンノードＰに近づく方向に送信する。また、隣接ノードａｄでもなく、記憶ノードＩｎでもないノードが、記憶ノードＩｎに近づく方向に送信されており送信指示を含むチェックパケットを受信したとする。この場合、前述のノードは、受信したチェックパケットに自ノードの評価値を追加したチェックパケットを、記憶ノードＩｎに近づく方向に送信する。
【００２８】
例えば、前述のノードは、チェックパケットに含まれる、ダウンノードＰまたは記憶ノードＩｎの座標位置を参照して、ダウンノードＰまたは記憶ノードＩｎに近づくように、自ノードの評価値を追加したチェックパケットを送信する。また、自ノードの評価値を追加する例として、前述のノードは、チェックパケットに含まれる評価値を格納する値に、自ノードの評価値を加算または減算してもよいし、チェックパケットに新たな項目を追加して、追加した項目に自ノードの評価値を追加してもよい。以下の記載では、チェックパケットに含まれる評価値を格納する値に、自ノードの評価値を加算する例を説明する。また、採取ノードＡｎが送信したチェックパケットｃｐ１には、評価値「０」が格納されているものとする。
【００２９】
図１の例では、ノードｎｄ１は、図１の左図の（３）で示すように、チェックパケットｃｐ１の評価値「０」に自ノードの評価値「＋１．２」を加算した評価値を含むチェックパケットｃｐ２を、ダウンノードＰに近づく方向として右方向と下方向とに送信する。同様に、ノードｎｄ２は、図１の左図の（４）で示すように、チェックパケットｃｐ１の評価値「０」に自ノードの評価値「＋１」を加算した評価値を含むチェックパケットｃｐ３を、ダウンノードＰに近づく方向として、右方向に送信する。
【００３０】
チェックパケットｃｐ２、ｃｐ３を受信する隣接ノードａｄ１、ａｄ２は、前述したように、ダウンノードＰの隣にあるノードである。ここで、隣接ノードａｄと記憶ノードＩｎの動作について説明する。隣接ノードａｄが、ダウンノードＰに近づく方向に送信されており送信指示を含むチェックパケットを受信したとする。この場合、隣接ノードａｄは、受信したチェックパケットに含まれる他ノードの評価値と自ノードの評価値とを含むチェックパケットを、採取ノードＡｎに送信する。同様に、記憶ノードＩｎが、記憶ノードＩｎに近づく方向に送信されており送信指示を含むチェックパケットを受信したとする。この場合、記憶ノードＩｎは、受信したチェックパケットに含まれる他ノードの評価値と自ノードの評価値とを含むチェックパケットを、採取ノードＡｎに送信する。
【００３１】
隣接ノードａｄや記憶ノードＩｎから採取ノードＡｎまでチェックパケットを送信する経路はどのようなものでもよい。また、チェックパケットを隣接ノードａｄや記憶ノードＩｎが受信したということは、採取ノードＡｎが送信したチェックパケットの目的のノードに到達したため、採取ノードＡｎに送信するチェックパケットには、自ノードの評価値の送信指示は含まれない。
【００３２】
他ノードの評価値と自ノードの評価値とをチェックパケットに含める例として、隣接ノードａｄ、記憶ノードＩｎは、他ノードの評価値に、自ノードの評価値を加算、または減算した値をチェックパケットに含める。または、隣接ノードａｄ、記憶ノードＩｎは、受信したチェックパケットに新たな項目を追加して、追加した項目に自ノードの評価値を追加してもよい。
【００３３】
図１の例では、隣接ノードａｄ１は、図１の右図の（５）で示すように、受信したチェックパケットｃｐ２の評価値「１．２」に自ノードの評価値「＋１」を加算した評価値「２．２」を含むチェックパケットｃｐ４を、採取ノードＡｎに送信する。同様に、隣接ノードａｄ２は、図１の右図の（６）で示すように、受信したチェックパケットｃｐ３の評価値「２」に自ノードの評価値「＋１」を加算した評価値「３」を含むチェックパケットｃｐ５を、採取ノードＡｎに送信する。同様に、記憶ノードＩｎは、図１の右図の（７）で示すように、記憶ノードＩｎが受信したチェックパケットの評価値に自ノードの評価値を加算した評価値を含むチェックパケットｃｐ６を、採取ノードＡｎに送信する。
【００３４】
そして、採取ノードＡｎは、隣接ノードａｄの評価値を含むチェックパケットを受信した場合、受信したチェックパケットに基づいて、ダウンノードＰおよび採取ノードＡｎ間の経路を決定する。また、採取ノードＡｎは、記憶ノードＩｎの評価値を含むチェックパケットを受信した場合、受信したチェックパケットに基づいて、採取ノードＡｎおよび記憶ノードＩｎ間の経路を決定する。図１の右図の（８）で示すように、採取ノードＡｎは、チェックパケットｃｐ４、５の評価値「２．２」と評価値「３」とから、評価値の良いチェックパケットｃｐ４の経路ｒｔ１を、ダウンノードＰおよび採取ノードＡｎ間の経路として決定する。同様に、図１の右図の（９）で示すように、採取ノードＡｎは、チェックパケットｃｐ６の経路ｒｔ２を、採取ノードＡｎおよび記憶ノードＩｎ間の経路として決定する。
【００３５】
以上のように、並列処理装置１０１は、採取ノードＡｎといった特定のノードに大きな負荷をかけずに、ダウンノードＰおよび採取ノードＡｎ間の経路と、採取ノードＡｎおよび記憶ノードＩｎ間の経路とを決定することができる。そして、採取ノードＡｎは、消費電力やメモリの使用量が小さいノードであるため、情報採取処理を採取ノードＡｎに実行させても、採取ノードＡｎが実行するジョブに与える影響を抑えることができる。
【００３６】
また、経路ｒｔ１、ｒｔ２を決定した後、採取ノードＡｎは、決定した経路ｒｔ１に含まれる各ノードに、ダウン情報を中継する指示を送信する。そして、採取ノードＡｎは、前述の指示により得られたダウン情報を変換した変換後のダウン情報を中継し、変換後のダウン情報を記憶ノードＩｎのディスクｄ０に記憶する指示を、決定した経路ｒｔ２に含まれる各ノードに送信する。このように、並列処理装置１０１は、各ノードで実行中のジョブへの影響を抑えて、ダウン情報を採取し、変換したダウン情報を記憶ノードＩｎに格納することができる。次に、並列処理装置１０１の構成例について、図２を用いて説明する。
【００３７】
図２は、並列処理装置１０１の構成例を示す説明図である。図２に示すように、並列処理装置１０１は、ハードウェア制御モジュール２０２と、複数のノードとして、管理ノードｍｄと、計算ノードｎｄと、ＩＯノードＩ０、Ｉ１と、を有する。そして、計算ノードｎｄと、ＩＯノードＩ０、Ｉ１とは、筐体２０１内に含まれる。図２に示すように、計算ノードｎｄと、ＩＯノードＩ０、Ｉ１とは、３次元構造で接続される。計算ノードｎｄと、ＩＯノードＩ０、Ｉ１とが３次元構造で接続されるのは一例であって、同一平面上に、計算ノードｎｄと、ＩＯノードＩ０、Ｉ１とが接続されてもよい。また、図面の簡略化のため、図５、図７、図９、図１１、図１２、図１４では、同一平面上に接続された計算ノードｎｄと、ＩＯノードＩ０、Ｉ１とを表示し、他の平面にある計算ノードの表示を省略する。
【００３８】
ハードウェア制御モジュール２０２は、計算ノードｎｄと、ＩＯノードＩ０、Ｉ１との消費電力値やメモリの使用量を収集する装置である。次に、複数のノードの各ノードのハードウェア構成例を、図３を用いて説明する。
【００３９】
図３は、ノードのハードウェア構成例を示す説明図である。図３において、ノードは、ＣＰＵ３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、ＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ３０４と、を有する。また、各構成部はバス３１０によってそれぞれ接続される。
【００４０】
ここで、ＣＰＵ３０１は、ノード全体の制御を司る制御装置である。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する記憶装置である。より具体的には、例えば、フラッシュＲＯＭがＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やファームウェアなどのプログラムを記憶し、ＲＯＭがアプリケーションプログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されているプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させることになる。
【００４１】
Ｉ／Ｆ３０３は、他のノードからのデータの入出力を制御する装置である。具体的には、Ｉ／Ｆ３０３は、インターコネクトと呼ばれるノード間のコンピュータネットワークに接続する。
【００４２】
ＲＤＭＡコントローラ３０４は、自身のノードのメモリ３０２と、異なるノードのメモリ３０２との間で、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行う装置である。
【００４３】
（並列処理装置１０１の機能構成例）
図４は、並列処理装置１０１の機能構成例を示す説明図である。並列処理装置１０１は、決定部４０１と、送信部４０２と、送信部４１１と、決定部４１２と、送信部４１３、４１４とを有する。制御部となる決定部４０１〜送信部４１４は、記憶装置に記憶されたプログラムを各ノードのＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、ノードのＲＯＭや、フラッシュＲＯＭなどである。また、各部の処理結果は、ＣＰＵ３０１のレジスタや、ＣＰＵ３０１のキャッシュメモリ等に格納される。
【００４４】
また、決定部４０１と送信部４０２とは、管理ノードｍｄが有する機能である。例えば、記憶装置に記憶されたプログラムを実行したノードは、自ノードが管理ノードｍｄであると判断した際に、決定部４０１と送信部４０２とが示す機能を実現することになる。
【００４５】
また、送信部４１１と決定部４１２とは、計算ノードｎｄのうちの採取ノードＡｎとなるノードが有する機能である。例えば、記憶装置に記憶されたプログラムを実行したノードは、自ノードが採取ノードｎｄであると判断した際に、送信部４１１と決定部４１２とが示す機能を実現することになる。
【００４６】
また、送信部４１３は、複数のノードのうちのチェックパケットを受信したノードであって、隣接ノードａｄでも記憶ノードＩｎでもないノードが有する機能である。例えば、記憶装置に記憶されたプログラムを実行したノードは、チェックパケットを受信した際に、自ノードが隣接ノードａｄでも記憶ノードＩｎでもないと判断した際に、送信部４１３が示す機能を実現することになる。
【００４７】
また、送信部４１４は、隣接ノードａｄと記憶ノードＩｎとが有する機能である。例えば、記憶装置に記憶されたプログラムを実行したノードは、自ノードが隣接ノードａｄまたは記憶ノードＩｎであると判断した際に、送信部４１４が示す機能を実現することになる。
【００４８】
従って、記憶装置に記憶されたプログラムを実行したノードは、決定部４０１〜送信部４１４の全てを有するが、図４では、図示を省略している。
【００４９】
決定部４０１は、ダウンノードＰが発生した場合、各計算ノードｎｄの消費電力、または／および各ノードのメモリの使用量に基づいて、各計算ノードｎｄから採取ノードＡｎを決定する。例えば、決定部４０１は、ハードウェア制御モジュール２０２が収集した情報を参照して、各計算ノードｎｄの消費電力またはメモリの使用量が最も小さい計算ノードｎｄを、採取ノードＡｎとして決定する。または、決定部４０１は、各計算ノードｎｄの消費電力が小さい順に数個の計算ノードｎｄを特定し、数個の計算ノードｎｄのうち最もメモリの使用量が小さい計算ノードｎｄを、採取ノードＡｎとして決定してもよい。具体的な採取ノードＡｎの決定方法は、図７で説明する。
【００５０】
また、決定部４０１は、ＩＯノードの各ノードの消費電力、または／および各ノードのメモリの使用量に基づいて、ＩＯノードから記憶ノードＩｎを決定する。記憶ノードＩｎの決定方法は、採取ノードＡｎの決定方法と同様の手法を用いることができる。具体的な記憶ノードＩｎの決定方法は、図７で説明する。
【００５１】
送信部４０２は、ダウンノードＰのダウン情報に基づき生成される、変換後のダウン情報を記憶ノードＩｎに記憶させる指示を含むデータを、決定部４０１が決定した採取ノードＡｎに送信する。
【００５２】
送信部４１１は、送信部４０２からの指示を受信した場合、自ノードの評価値の送信指示を含むチェックパケットを、ダウンノードＰに近づく方向と、記憶ノードＩｎに近づく方向とにそれぞれ送信する。
【００５３】
決定部４１２は、隣接ノードａｄの評価値を含むチェックパケットを受信した場合、受信したチェックパケットに基づいて、ダウンノードＰおよび採取ノードＡｎ間の経路を決定する。また、決定部４１２は、記憶ノードＩｎの評価値を含むチェックパケットを受信した場合、受信したチェックパケットに基づいて、採取ノードＡｎおよび記憶ノードＩｎ間の経路を決定する。例えば、受信したチェックパケットに含まれる評価値が、各ノードの評価値そのものであれば、決定部４１２は、受信したチェックパケットに含まれる各ノードの評価値を加算する。そして、複数のチェックパケットを受信した際に、決定部４１２は、最も評価値の良いチェックパケットが示す経路を、ダウンノードＰおよび採取ノードＡｎ間の経路として決定する。
【００５４】
送信部４１３は、ダウンノードＰに近づく方向に送信されており評価値の送信指示を含むチェックパケットを受信した場合、受信したチェックパケットに自ノードの評価値を追加したチェックパケットを、ダウンノードＰに近づく方向に送信する。また、送信部４１３は、記憶ノードＩｎに近づく方向に送信されており評価値の送信指示を含むチェックパケットを受信した場合、受信したチェックパケットに自ノードの評価値を追加したデータを、記憶ノードＩｎに近づく方向に送信する。
【００５５】
ここで、送信部４１３は、チェックパケットがダウンノードＰに近づく方向に送信されたものなのか記憶ノードＩｎに近づく方向に送信されたものかを特定せずともよい。具体的には、送信部４１３は、チェックパケットに含まれる、チェックパケットの目的となるダウンノードＰや記憶ノードＩｎの座標位置に従って、チェックパケットを送信すればよい。これにより、送信部４１３は、ダウンノードＰに近づく方向に送信されたチェックパケットであれば、自ノードの評価値を追加したチェックパケットを、ダウンノードＰに近づく方向に送信することになる。同様に、送信部４１３は、記憶ノードＩｎに近づく方向に送信されたチェックパケットであれば、自ノードの評価値を追加したチェックパケットを、記憶ノードＩｎに近づく方向に送信することになる。
【００５６】
また、送信部４１３は、受信したチェックパケットに含まれる他ノードの評価値に自ノードの評価値を加算した評価値を含むチェックパケットを、ダウンノードＰに近づく方向、または、記憶ノードＩｎに近づく方向に送信してもよい。
【００５７】
また、隣接ノードａｄでもなく、記憶ノードＩｎでもないノードが、ダウンノードＰまたは記憶ノードＩｎに近づく方向に送信されており評価値の送信指示を含むチェックパケットを複数受信したとする。この場合、送信部４１３は、複数のチェックパケットの各チェックパケットに含まれる他ノードの評価値に基づいて複数のチェックパケットのうちのいずれか一つのチェックパケットを特定する。そして、送信部４１３は、特定したチェックパケットに自ノードの評価値を追加したチェックパケットを、ダウンノードＰまたは記憶ノードＩｎに送信してもよい。
【００５８】
隣接ノードａｄまたは記憶ノードＩｎが、ダウンノードＰまたは記憶ノードＩｎに近づく方向に送信されており評価値の送信指示を含むチェックパケットを受信したとする。この場合、送信部４１４は、受信したチェックパケットに含まれる他ノードの評価値と自ノードの評価値とを含むチェックパケットを、採取ノードＡｎに送信する。また、送信部４１４は、他ノードの評価値と自ノードの評価値とを加算した評価値を含むチェックパケットを、採取ノードＡｎに送信してもよい。
【００５９】
また、隣接ノードａｄまたは記憶ノードＩｎが、ダウンノードＰまたは記憶ノードＩｎに近づく方向に送信されており評価値の送信指示を含むチェックパケットを複数受信したとする。この場合、送信部４１４は、複数のチェックパケットの各チェックパケットに含まれる他ノードの評価値に基づいて、複数のチェックパケットのうちのいずれか一つのチェックパケットを特定する。そして、送信部４１４は、特定したチェックパケットに含まれる他ノードの評価値と自ノードの評価値とを含むチェックパケットを、採取ノードＡｎに送信する。
【００６０】
次に、ダウンノードＰに向かうことを示す第１の識別情報と、記憶ノードＩｎに向かうことを示す第２の識別情報を用いた機能について説明する。送信部４１１は、第１の識別情報と送信指示とを含むチェックパケットをダウンノードＰに近づく方向に送信する。また、送信部４１１は、第２の識別情報と送信指示とを含むチェックパケットを記憶ノードＩｎに近づく方向に送信する。
【００６１】
送信部４１３は、第１の識別情報を含むチェックパケットを受信した場合、受信したチェックパケットに自ノードの評価値を追加したチェックパケットをダウンノードＰに近づく方向に送信する。また、送信部４１３は、第２の識別情報を含むチェックパケットを受信した場合、受信したチェックパケットに自ノードの評価値を追加したチェックパケットを記憶ノードＩｎに近づく方向に送信する。
【００６２】
送信部４１４は、第１の識別情報または第２の識別情報を含むチェックパケットを受信した場合、受信したチェックパケットに自ノードの評価値を追加したチェックパケットを、採取ノードＡｎに送信する。
【００６３】
決定部４１２は、第１の識別情報を含むチェックパケットを受信した場合、受信したチェックパケットに基づいて、ダウンノードＰおよび採取ノードＡｎ間の経路を決定する。また、決定部４１２は、第２の識別情報を含むチェックパケットを受信した場合、受信したチェックパケットに基づいて、採取ノードＡｎおよび記憶ノードＩｎ間の経路を決定する。
【００６４】
次に、経路が決定した後の処理について説明する。送信部４０２は、決定したダウンノードＰおよび採取ノードＡｎ間の経路に含まれる各ノードに、ダウンノードＰのダウン情報を中継する指示を送信する。そして、送信部４０２は、前述の指示により得られたダウン情報を変換した変換後のダウン情報を中継し変換後のダウン情報を記憶ノードＩｎのディスクに格納する指示を、決定した採取ノードＡｎおよび記憶ノードＩｎ間の経路に含まれる各ノードに送信する。
【００６５】
図５は、記憶ノードＩｎの決定例を示す説明図である。図５で示すように、管理ノードｍｄは、ハードウェア制御モジュール２０２から取得したＩＯノードの消費電力値に基づいて、ダウンノードＰのダンプを出力するノードＩｎを決定する。ここで、管理ノードｍｄは、初回の探索範囲として、ダウンしたノードＰおよび、ＩＯノードを１台以上含む直方体に含まれるＩＯノードのうち、消費電力が所定値以下となるＩＯノードがあれば、該当のＩＯノードを、ノードＩｎとして決定する。消費電力が所定値以下となるＩＯノードがなければ、管理ノードｍｄは、直方体の一辺を拡大した範囲を次の探索範囲として、探索範囲に含まれるＩＯノードのうち、消費電力が所定値以下となるＩＯノードが見つかるまで繰り返す。
【００６６】
図５の例では、ノードＩ１の消費電力は所定値より大きく、ノードＩ０の消費電力は所定値以下であるとする。太枠の実線で示した範囲ｓｒ０が初回の探索範囲である。管理ノードｍｄは、範囲ｓｒ０に含まれるノードＩ１の消費電力が所定値より大きいと判断し、範囲ｓｒ０を拡大した、太枠の破線で示した範囲ｓｒ１を、次の探索範囲に設定する。そして、管理ノードｍｄは、範囲ｓｒ０に含まれるノードＩ０の消費電力が所定値以下であると判断し、ノードＩ０を、ノードＩｎとして決定する。図５の例では、ノードＩｎとして決定したノードＩ０を、黒で塗りつぶした状態で表示する。次に、記憶ノードＩｎ決定処理を示したフローチャートを、図６を用いて説明する。
【００６７】
図６は、記憶ノードＩｎ決定処理手順の一例を示すフローチャートである。記憶ノードＩｎ決定処理は、記憶ノードＩｎを決定する処理である。管理ノードｍｄは、ダウンノードＰと１つ以上のＩＯノードを含む直方体内のＩＯノードの消費電力を取得する（ステップＳ６０１）。次に、管理ノードｍｄは、消費電力が所定値以下のＩＯノードが存在するか否かを判断する（ステップＳ６０２）。消費電力が所定値以下のＩＯノードが存在しない場合（ステップＳ６０２：Ｎｏ）、管理ノードｍｄは、現在の探索範囲の直方体を拡大した直方体を、次の探索範囲に設定する（ステップＳ６０３）。例えば、管理ノードｍｄは、現在の探索範囲の直方体の各辺のうちの最小辺を１つ拡大した直方体を、次の探索範囲に設定する。
【００６８】
一方、消費電力が所定値以下のＩＯノードが存在する場合（ステップＳ６０２：Ｙｅｓ）、管理ノードｍｄは、所定値以下の消費電力となるＩＯノードをダンプ情報保存ノードＩｎとして決定する（ステップＳ６０４）。ステップＳ６０４の処理終了後、管理ノードｍｄは、記憶ノードＩｎ決定処理を終了する。次に、採取ノードＡｎの決定例を、図７を用いて説明する。
【００６９】
図７は、採取ノードＡｎの決定例を示す説明図である。図７に示すように、管理ノードｍｄは、ハードウェア制御モジュール２０２から取得した計算ノードの消費電力値に基づいて、採取ノードＡｎを決定する。ここで、管理ノードｍｄは、初回の探索範囲として、ダウンしたノードＰおよび記憶ノードＩｎを含む直方体に含まれる計算ノードのうち、消費電力が所定値以下となる計算ノードがあれば、該当の計算ノードを、採取ノードＡｎとして決定する。消費電力が所定値以下となる計算ノードがなければ、管理ノードｍｄは、直方体の一辺を拡大した範囲を次の探索範囲として、探索範囲に含まれる計算ノードのうち、消費電力が所定値以下となる計算ノードが見つかるまで繰り返す。
【００７０】
図７の例では、太枠の実線で示した範囲ｓｒ０が初回の探索範囲である。管理ノードｍｄは、範囲ｓｒ０に含まれる計算ノードの全てが、消費電力が所定値より大きいと判断し、範囲ｓｒ０を拡大した、太枠の破線で示した範囲ｓｒ１を、次の探索範囲に設定する。そして、管理ノードｍｄは、範囲ｓｒ１に含まれるノードｎｄ１の消費電力が所定値以下であると判断し、ノードｎｄ１を、採取ノードＡｎとして決定する。図７の例では、採取ノードＡｎとして決定したノードｎｄ１を、黒で塗りつぶした状態で表示する。次に、採取ノードＡｎ決定処理を示したフローチャートを、図８を用いて説明する。
【００７１】
図８は、採取ノードＡｎ決定処理手順の一例を示すフローチャートである。採取ノードＡｎ決定処理は、採取ノードＡｎを決定する処理である。管理ノードｍｄは、ダウンノードＰとＩＯノードを含む直方体内の各計算ノードの消費電力を取得する（ステップＳ８０１）。次に、管理ノードｍｄは、消費電力が所定値以下の計算ノードが存在するか否かを判断する（ステップＳ８０２）。消費電力が所定値以下の計算ノードが存在しない場合（ステップＳ８０２：Ｎｏ）、管理ノードｍｄは、現在の探索範囲の直方体を拡大した直方体を、次の探索範囲に設定する（ステップＳ８０３）。
【００７２】
一方、消費電力が所定値以下の計算ノードが存在する場合（ステップＳ８０２：Ｙｅｓ）、管理ノードｍｄは、所定値以下の消費電力となる計算ノードをダンプ採取処理ノードＡｎとして決定する（ステップＳ８０４）。ステップＳ８０４の処理終了後、管理ノードｍｄは、採取ノードＡｎ決定処理を終了する。
【００７３】
採取ノードＡｎ決定処理を終了すると、管理ノードｍｄは、ダウンノードＰのメモリダンプを採取し、出力形式に変換したデータを記憶ノードＩｎに記憶させる指示を、採取ノードＡｎに送信する。採取ノードＡｎは、前述の指示を受け付けると、採取ノードＡｎおよびダウンノードＰの間の経路を決定するためのチェックパケットを、ダウンノードＰに近づく方向に送信する。また、採取ノードＡｎは、採取ノードＡｎおよび記憶ノードＩｎの間の経路を決定するためのチェックパケットを、記憶ノードＩｎに近づく方向に送信する。
【００７４】
ここで、ダウンノードＰに近づく方向に送信する例を用いて、チェックパケットの送信例を、図９を用いて説明する。また、チェックパケットのフォーマット例を、図１０を用いて説明する。また、チェックパケットを受信したノードの動作例を、図１１、図１２を用いて説明する。図９、図１１では、採取ノードＡｎとダウンノードＰが同一平面上にあり、採取ノードＡｎの２つ右、１つ下の位置に、ダウンノードＰがあるものとする。
【００７５】
そして、採取ノードＡｎの１つ右の位置にあるノードをノードｎｄ１とし、ノードｎｄ１の評価値を、１．２とする。また、採取ノードＡｎの１つ下の位置にあるノードをノードｎｄ２とし、ノードｎｄ２の評価値を、１とする。また、採取ノードＡｎの２つ右の位置にあるノードは、ダウンノードＰの上隣にあるので隣接ノードａｄ１とし、隣接ノードａｄ１の評価値を１とする。また、採取ノードＡｎの１つ右、１つ下の位置にあるノードは、ダウンノードＰの左隣にあるので隣接ノードａｄ２とし、隣接ノードａｄ２の評価値を２とする。
【００７６】
図９は、チェックパケットの送信例を示す説明図である。採取ノードＡｎは、チェックパケットを、ダウンノードＰに近づく方向に送信する。図９の例では、採取ノードＡｎは、チェックパケットを、ダウンノードＰに近づく右方向と、下方向とに送信する。
【００７７】
図１０は、チェックパケットのフォーマット１００１の一例を示す説明図である。図１０では、図９で示した採取ノードＡｎが送信したチェックパケットを例にして、チェックパケットのフォーマット１００１を説明する。
【００７８】
フォーマット１００１は、Ａｎの座標と、目的ノード種類と、目的ノード座標と、評価値と、経路情報という項目を有する。
【００７９】
Ａｎの座標項目には、採取ノードＡｎの座標位置を示す情報が格納される。目的ノード種類項目には、チェックパケットの向かう先となるノードの種別を示す情報が格納される。具体的には、目的ノード種類項目には、ダウンノードＰを示す識別子か、記憶ノードＩｎを示す識別子が格納される。ダウンノードＰを示す識別子が、図４で説明した第１の識別情報に相当する。また、記憶ノードＩｎを示す識別子が、図４で説明した第２の識別情報に相当する。目的ノード座標項目には、チェックパケットの向かう先となるノードの座標位置を示す情報が格納される。評価値項目には、チェックパケットが通過した各ノードにより形成する経路の評価値が格納される。具体的には、評価値項目には、チェックパケットが通過した各ノードの評価値を合計した値が格納される。経路情報項目には、チェックパケットが通過した各ノードの座標位置が格納される。
【００８０】
図１０の例で示すチェックパケットのＡｎの座標項目には、採取ノードＡｎの座標位置である（Ｘｎ，Ｙｎ，Ｚｎ）が格納される。また、図１０の例で示すチェックパケットの目的ノード種類項目には、ダウンノードＰを示す識別子が格納されており、目的ノード座標項目には、ダウンノードＰの座標位置である（Ｘｐ，Ｙｐ，Ｚｐ）が格納される。また、図１０の例で示すチェックパケットの評価値項目には、０が格納されており、経路情報項目には、経路の１つ目のノードとして、採取ノードＡｎの座標位置である（Ｘｎ，Ｙｎ，Ｚｎ）が格納される。
【００８１】
図１１は、チェックパケットを受信したノードの動作例を示す説明図（その１）である。チェックパケットを受信したノードは、最初にチェックパケットを受信してから、一定時間内に受け取ったチェックパケットのうち、評価値の最も良いチェックパケットを特定する。
【００８２】
図１１では、隣接ノードａｄ１、ａｄ２での特定について示す。図１１に示す表１１０１は、レコード１１０１−１〜３を有する。レコード１１０１−１は、採取ノードＡｎ、ノードｎｄ１、隣接ノードａｄ１という経路ｒｔ１について示したレコードである。また、レコード１１０１−２は、採取ノードＡｎ、ノードｎｄ１、隣接ノードａｄ２という経路ｒｔ２について示したレコードである。また、レコード１１０１−３は、採取ノードＡｎ、ノードｎｄ２、隣接ノードａｄ２という経路ｒｔ３について示したレコードである。
【００８３】
隣接ノードａｄ１は、経路ｒｔ１を示すチェックパケットを受信する。隣接ノードａｄ１は、他のチェックパケットを受信しないため、経路ｒｔ１を示すチェックパケットを特定する。
【００８４】
一方、隣接ノードａｄ２は、経路ｒｔ２を示すチェックパケットと、経路ｒｔ３を示すチェックパケットとを受信する。ここで、経路ｒｔ２を示すチェックパケットの評価値は、レコード１１０１−２が示すように３．２であり、経路ｒｔ３を示すチェックパケットの評価値は、レコード１１０１−３が示すように３である。従って、隣接ノードａｄ２は、評価値が最も良い経路ｒｔ３を示すチェックパケットを特定する。なお、隣接ノードａｄ２は、経路ｒｔ２を示すチェックパケットを破棄する。ここで、隣接ノードａｄ２は、チェックパケットの評価値を比較する際には、受信したチェックパケットの評価値に自身のノードの評価値を加える前の値で比較してもよいし、加えた後の値で比較してもよい。
【００８５】
そして、チェックパケットを受信したノードは、チェックパケット内の評価値項目の値に、自身の評価値を加算する。次に、チェックパケットを受信したノードは、チェックパケット内の経路情報項目に、自身のノードの座標位置を追加する。
【００８６】
そして、チェックパケットを受信したノードは、ダウンノードＰに隣接しているか否かを判断する。ダウンノードＰに隣接していれば、チェックパケットを受信したノードは、更新したチェックパケットを採取ノードＡｎに送信する。また、ダウンノードＰに隣接していなければ、チェックパケットを受信したノードは、チェックパケットを受け取った以外の隣にあるノードと、ダウンノードＰとの距離を算出し、距離が下位２つのノードに、採用したチェックパケットを送信する。距離を算出する例を、図１２を用いて説明する。
【００８７】
図１２は、チェックパケットを受信したノードの動作例を示す説明図（その２）である。図１２で示す（１）として、図１２で示すノードｎｄｓは、チェックパケットを図１２で示すノードｎｄ０に送信する。
【００８８】
チェックパケットを受信したノードｎｄ０は、図１２で示す（２）として、ノードｎｄ０の隣にある、ノードｎｄ１およびダウンノードＰ間の距離１と、ノードｎｄ２およびダウンノードＰ間の距離２と、ノードｎｄ３およびダウンノードＰ間の距離３を算出する。図１２の例では、距離１と距離３が下位２つとなる。
【００８９】
従って、ノードｎｄ０は、図１２で示す（３）として、ノードｎｄ２とノードｎｄ３とに対して、チェックパケットを送信する。次に、ダウンノードＰに近づく方向に送信されたチェックパケットを受信したノードの処理を示したフローチャートを、図１３を用いて説明する。
【００９０】
図１３は、チェックパケットを受信したノードの処理手順の一例を示すフローチャートである。チェックパケットを受信したノードは、最初にチェックパケットを受け取ってから、一定時間内に受け取ったチェックパケットのうち評価値の最も良いパケットを特定する（ステップＳ１３０１）。なお、チェックパケットを受信したノードは、一定時間以降に受け取ったチェックパケットを破棄する。
【００９１】
次に、チェックパケットを受信したノードは、特定したチェックパケット内の評価値に自身の評価値を加算する（ステップＳ１３０２）。また、チェックパケットを受信したノードは、特定したチェックパケットに自身の座標位置を追加する（ステップＳ１３０３）。
【００９２】
次に、チェックパケットを受信したノードは、ダウンノードＰが隣にあるか否かを判断する（ステップＳ１３０４）。ダウンノードＰが隣にある場合（ステップＳ１３０４：Ｙｅｓ）、チェックパケットを受信したノードは隣接ノードａｄであるため、更新したチェックパケットを採取ノードＡｎに送信する（ステップＳ１３０５）。ここで、チェックパケットを採取ノードＡｎへ送信する経路は特に問わず、どのような経路でもよい。
【００９３】
また、採取ノードＡｎへのチェックパケットを受信したノードは、図１３で示した処理を行わないようにして、再びダウンノードに近づく方向に送信しないようにする。例えば、隣接ノードは、チェックパケットの経路情報項目に、自身の座標位置を加え、さらに、ダウンノードＰの座標位置を加える。そして、チェックパケットを受信したノードは、受信したチェックパケットの目的ノード座標項目と、経路情報の最後のノードの座標項目とが一致していれば、受信したチェックパケットが、採取ノードＡｎへのチェックパケットであるとして判断する。または、例えば、隣接ノードは、採取ノードＡｎへのチェックパケットの目的ノード種類項目や、目的ノード座標項目の内容を更新してもよいし、採取ノードＡｎへのチェックパケットに、採取ノードＡｎへのチェックパケットである項目を追加してもよい。
【００９４】
一方、ダウンノードＰが隣にない場合（ステップＳ１３０４：Ｎｏ）、チェックパケットを受信したノードは、自ノードの隣にあるノードとダウンノードＰ間の距離を算出する（ステップＳ１３０６）。そして、チェックパケットを受信したノードは、距離が下位から２つのノードにチェックパケットを送信する（ステップＳ１３０７）。ここで、距離が下位から２つのノードにチェックパケットを送信することは、一例であって、これに限らない。例えば、チェックパケットを受信したノードは、自ノードの隣にある複数のノードのうち、ダウンノードＰに近づく方向にあるノードに、チェックパケットを送信する。
【００９５】
具体的には、チェックパケットを受信したノードとダウンノードＰとが同一平面上にない場合、チェックパケットを受信したノードは、ダウンノードＰに近づく３方向の各ノードに、チェックパケットを送信する。また、チェックパケットを受信したノードとダウンノードＰとが同一平面上にあり、同一直線上にない場合、チェックパケットを受信したノードは、ダウンノードＰに近づく２方向の各ノードに、チェックパケットを送信する。また、チェックパケットを受信したノードとダウンノードＰとが同一直線上にある場合、チェックパケットを受信したノードは、ダウンノードＰに近づく１方向のノードに、チェックパケットを送信する。
【００９６】
ステップＳ１３０５、またはステップＳ１３０７の処理終了後、チェックパケットを受信したノードは、チェックパケットを受信したノードの処理を終了する。
【００９７】
次に、チェックパケットを受信した採取ノードＡｎの動作例について、図１４と図１５とを用いて説明する。
【００９８】
図１４は、チェックパケットを受信した採取ノードＡｎの動作例を示す説明図（その１）である。チェックパケットを受信したノードは、最初にチェックパケットを受信してから、一定時間内に受け取ったチェックパケットのうち、評価値の最も良いチェックパケットを特定する。
【００９９】
図１４では、採取ノードＡｎでの特定について示す。図１４に示す表１４０１は、図１１で示した表１１０１に、採取ノードでの特定の項目を追加したものである。表１４０１が有するレコード１４０１−１〜３は、それぞれ、レコード１１０１−１〜３に対応する。採取ノードＡｎは、経路ｒｔ１を示すチェックパケットと、経路ｒｔ３を示すチェックパケットとを受信する。ここで、経路ｒｔ１を示すチェックパケットの評価値は、レコード１４０１−１が示すように２．２であり、経路ｒｔ３を示すチェックパケットの評価値は、レコード１４０１−３が示すように３である。従って、採取ノードＡｎは、評価値が最も良い経路ｒｔ１を示すチェックパケットを特定する。
【０１００】
次に、採取ノードＡｎは、決定した経路上の各ノードに対し、ＲＤＭＡ転送を指示する。図１５を用いて、ＲＤＭＡ転送の具体的な例を示す。
【０１０１】
図１５は、チェックパケットを受信した採取ノードＡｎの動作例を示す説明図（その２）である。ＲＤＭＡ転送の指示を受けた送信先となるノードＲ１のＲＤＭＡコントローラ３０４は、送信元となるノードＲ２のメモリ３０２に記憶されたデータを、ノードＲ１のメモリ３０２にＲＤＭＡ転送する。図１５におけるノードＲ２のメモリ３０２の網掛けを付与した部分が、採取対象となるダウン情報が記憶された領域であり、図１５におけるノードＲ１のメモリ３０２の網掛けを付与した部分が、ダウン情報を記憶する領域である。
【０１０２】
例えば、図１４の例では、まず、隣接ノードａｄ１がノードＲ１となり、ダウンノードＰがノードＲ２となって、隣接ノードａｄ１のＲＤＭＡコントローラ３０４が、ＲＤＭＡ転送を行う。次に、ノードｎｄ１がノードＲ１となり、隣接ノードａｄ１がノードＲ２となって、ノードｎｄ１のＲＤＭＡコントローラ３０４が、ＲＤＭＡ転送を行う。そして、採取ノードＡｎがノードＲ１となり、ノードｎｄ１がノードＲ２となって、採取ノードＡｎのＲＤＭＡコントローラ３０４が、ＲＤＭＡ転送を行う。
【０１０３】
ダウン情報を取得した採取ノードＡｎは、ダウン情報を用いて問題発生原因等を調査し、出力形式に変換する。そして、採取ノードＡｎは、図１３で示したフローチャートとほぼ同様の方法により、採取ノードＡｎおよび記憶ノードＩｎの間の経路を決定する。具体的には、図１３のフローチャートと異なる処理として、チェックパケットを受信したノードは、ステップＳ１３０４の処理である「ダウンノードＰが隣にあるか否かを判断する」ことの代わりに「自ノードが記憶ノードＩｎであるか否かを判断する」ことを行う。また、チェックパケットを受信したノードは、ステップＳ１３０６の処理である「自ノードの隣にあるノードとダウンノードＰ間の距離を算出する」ことの代わりに、「自ノードの隣にあるノードと記憶ノードＩｎ間の距離を算出する」ことを行う。
【０１０４】
次に、採取ノードＡｎは、決定した経路上の各ノードに対し、ＲＤＭＡ転送を指示して、出力形式に変換したデータを記憶ノードＩｎに送信する。次に、採取ノードＡｎが行う情報採取処理を示したフローチャートを、図１６を用いて説明する。
【０１０５】
図１６は、情報採取処理手順の一例を示すフローチャートである。採取ノードＡｎは、管理ノードｍｄから、ダウンノードＰのメモリ３０２を採取し、出力形式に変換したデータを記憶ノードＩｎに記憶させる指示を受け付ける（ステップＳ１６０１）。次に、採取ノードＡｎは、チェックパケットを、ダウンノードＰに近づく方向に送信する（ステップＳ１６０２）。そして、採取ノードＡｎは、最初にチェックパケットを受信してから、一定時間内に受け取ったチェックパケットのうち、評価値の最も良いチェックパケットが示す経路を、ダウンノードＰおよび採取ノードＡｎ間の経路として決定する（ステップＳ１６０３）。次に、採取ノードＡｎは、決定した経路の各ノードに、ダウン情報のＲＤＭＡ転送を指示する（ステップＳ１６０４）。ＲＤＭＡ転送によりダウン情報を取得した場合、採取ノードＡｎは、ダウン情報を出力形式に変換する（ステップＳ１６０５）。
【０１０６】
次に、採取ノードＡｎは、チェックパケットを、記憶ノードに近づく方向に送信する（ステップＳ１６０６）。そして、採取ノードＡｎは、受信したチェックパケットが示す経路を採取ノードおよび記憶ノード間の経路として決定する（ステップＳ１６０７）。次に、採取ノードＡｎは、決定した経路の各ノードに、出力形式に変換したダウン情報のＲＤＭＡ転送を指示する（ステップＳ１６０８）。ここで、採取ノードＡｎは、ステップＳ１６０６の処理を、ステップＳ１６０２の処理と同時に行ってもよい。前述の２つの処理と同時に行うと、採取ノードＡｎは、ステップＳ１６０３の処理とステップＳ１６０７の処理とを並行して行うことになる。例えば、採取ノードＡｎは、受信したチェックパケットの目的ノード種類項目に応じて、ステップＳ１６０３の処理またはステップＳ１６０７の処理を行えばよい。
【０１０７】
ステップＳ１６０８の処理終了後、採取ノードＡｎは、情報採取処理を終了する。また、記憶ノードＩｎは、出力形式に変換したダウン情報をディスクに格納する。
【０１０８】
以上説明したように、並列処理装置１０１は、消費電力等の小さい採取ノードＡｎからダウンノードＰと記憶ノードＩｎの方向に、自ノードの評価値を追加したチェックパケットを順次中継し、各方向で中継したチェックパケットの評価値に基づき経路を決定する。これにより、並列処理装置１０１は、情報採取処理において、並列処理装置１０１全体で実行中のジョブへの影響を抑制することができる。また、本実施の形態では、採取ノードＡｎは、隣接ノードａｄや記憶ノードＩｎから、隣接ノードａｄや記憶ノードＩｎに到達するまでの経路を特定するチェックパケットを取得することになるため、各ノードの座標位置から経路の組み合わせを特定しなくてよい。従って、本実施の形態にかかる情報採取処理では、情報採取処理における採取ノードＡｎにかかる負荷を抑制し、採取ノードＡｎや、採取ノードＡｎ付近のノードが実行中のジョブへの影響を抑制することができる。
【０１０９】
また、並列処理装置１０１は、ＩＯノードから、ＩＯノードの各ノードの消費電力、または／および各ノードのメモリの使用量に基づいて、ＩＯノードから記憶ノードＩｎを決定してもよい。これにより、並列処理装置１０１は、情報採取処理において、ジョブに与える影響が小さいＩＯノードに、ダンプ情報を記憶させることができる。
【０１１０】
また、隣接ノードａｄでなく、かつ記憶ノードＩｎでないノードは、チェックパケットを受信した場合、受信したチェックパケットに含まれる他ノードの評価値に自ノードの評価値を加算した評価値を含むチェックパケットを送信してもよい。これにより、採取ノードＡｎで行う加算処理がなくなるため、隣接ノードａｄでなく、かつ記憶ノードＩｎでないノードは、情報採取処理において、採取ノードＡｎにかかる負荷を抑制することができる。
【０１１１】
また、隣接ノードａｄと記憶ノードＩｎとは、チェックパケットを受信した場合、受信したチェックパケットに含まれる他ノードの評価値に自ノードの評価値を加算した評価値を含むチェックパケットを送信してもよい。これにより、採取ノードＡｎで行う加算処理がなくなるため、隣接ノードａｄと記憶ノードＩｎとは、情報採取処理において、採取ノードＡｎにかかる負荷を抑制することができる。
【０１１２】
また、隣接ノードａｄでなく、かつ記憶ノードＩｎでないノードが、複数のチェックパケットを受信したとする。この場合、隣接ノードａｄでなく、かつ記憶ノードＩｎでないノードは、複数のチェックパケットに含まれる評価値に基づいて、一つのチェックパケットを特定し、特定したチェックパケットに自ノードの評価値を追加して送信してもよい。これにより、採取ノードＡｎで行う経路の候補を絞り込んでおくことができるため、隣接ノードａｄでなく、かつ記憶ノードＩｎでないノードは、情報採取処理において、採取ノードＡｎにかかる負荷を抑制することができる。
【０１１３】
また、隣接ノードａｄと記憶ノードＩｎとが、複数のチェックパケットを受信したとする。この場合、隣接ノードａｄと記憶ノードＩｎとは、複数のチェックパケットに含まれる評価値に基づき一つのチェックパケットを特定し、特定したチェックパケットの他ノードの評価値と自ノードの評価値とを追加したチェックパケットを送信してもよい。これにより、採取ノードＡｎで行う経路の候補を絞り込んでおくことができるため、隣接ノードａｄと記憶ノードＩｎとは、情報採取処理において、採取ノードＡｎにかかる負荷を抑制することができる。
【０１１４】
また、採取ノードＡｎは、決定した経路を用いて、情報採取処理を行う。これにより、採取ノードＡｎは、各ノードで実行中のジョブへの影響を抑えて、ダウン情報を採取し、変換したダウン情報を記憶ノードＩｎに格納することができる。
【０１１５】
なお、本実施の形態で説明したノード情報採取方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ノード情報採取プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ノード情報採取プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１７】
（付記１）プロセッサとメモリとを有しノード間でデータを中継する複数のノードを有する並列処理装置であって、
前記複数のノードのうちの前記複数のノードを管理する管理ノードは、
前記複数のノードのうちの故障した故障ノードが発生した場合、前記複数のノードの各ノードの消費電力、または／および前記各ノードのメモリの使用量に基づいて、前記複数のノードから前記故障ノードのメモリに記憶された情報を採取する採取ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記複数のノードのうちの記憶ノードに記憶させる指示を含むデータを、決定した前記採取ノードに送信し、
前記採取ノードは、
前記指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、採取した前記情報に基づき生成される情報を記憶する記憶ノードに近づく方向とにそれぞれ送信し、
前記複数のノードのうちの前記故障ノードの隣にある隣接ノードでなく、かつ、前記記憶ノードでないノードは、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信し、
前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信し、
前記採取ノードは、
前記隣接ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記故障ノードおよび前記採取ノード間の経路を決定し、前記記憶ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記採取ノードおよび前記記憶ノード間の経路を決定する、
ことを特徴とする並列処理装置。
【０１１８】
（付記２）前記複数のノードには、不揮発性の記憶装置を有する２以上のノードが含まれており、
前記複数のノードを管理する管理ノードは、
前記故障ノードが発生した場合、前記２以上のノードの各ノードの消費電力、または／および当該各ノードのメモリの使用量に基づいて、前記２以上のノードから前記記憶ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記記憶ノードの記憶装置に記憶させる指示を含むデータを、前記採取ノードに送信し、
前記採取ノードは、
当該指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、前記記憶ノードに近づく方向とにそれぞれ送信する、
ことを特徴とする付記１に記載の並列処理装置。
【０１１９】
（付記３）前記複数のノードのうちの前記隣接ノードでなく、かつ、前記記憶ノードでないノードは、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値に自ノードの通信性能に関する評価値を加算した評価値を含むデータを、前記故障ノードに近づく方向に送信し、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値に自ノードの通信性能に関する評価値を加算した評価値を含むデータを、前記記憶ノードに近づく方向に送信する、
ことを特徴とする付記１または２に記載の並列処理装置。
【０１２０】
（付記４）前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを加算した評価値を含むデータを、前記採取ノードに送信する、
ことを特徴とする付記１〜３のいずれか一つに記載の並列処理装置。
【０１２１】
（付記５）前記複数のノードのうちの前記隣接ノードでなく、かつ、前記記憶ノードでないノードは、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを複数受信した場合、複数のデータの各データに含まれる他ノードの通信性能に関する評価値に基づいて前記複数のデータのうちのいずれか一つのデータを特定し、特定した前記データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、
前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを複数受信した場合、複数のノードの各データに含まれる他ノードの通信性能に関する評価値に基づいて前記複数のデータのうちのいずれか一つのデータを特定し、特定した前記データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信する、
ことを特徴とする付記１〜４のいずれか一つに記載の並列処理装置。
【０１２２】
（付記６）前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを複数受信した場合、複数のデータの各データに含まれる他ノードの通信性能に関する評価値に基づいて、前記複数のデータのうちのいずれか一つのデータを特定し、
特定した前記データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信する、
ことを特徴とする付記１〜５のいずれか一つに記載の並列処理装置。
【０１２３】
（付記７）前記採取ノードは、
決定した前記故障ノードおよび前記採取ノード間の経路に含まれる各ノードに、前記故障ノードのメモリに記憶された情報を中継する指示を送信し、
前記指示により得られた前記情報を変換した変換後の情報を中継し前記変換後の情報を前記記憶ノードの記憶装置に格納する指示を、決定した前記採取ノードおよび前記記憶ノード間の経路に含まれる各ノードに送信する、
ことを特徴とする付記１〜６のいずれか一つに記載の並列処理装置。
【０１２４】
（付記８）前記採取ノードは、
前記故障ノードに向かうことを示す第１の識別情報と前記送信指示とを含むデータを前記故障ノードに近づく方向に送信し、前記記憶ノードに向かうことを示す第２の識別情報と前記送信指示とを含むデータを前記記憶ノードに近づく方向に送信し、
前記複数のノードのうち、前記隣接ノードでなく、かつ、前記記憶ノードでないノードは、
前記第１の識別情報を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを前記故障ノードに近づく方向に送信し、前記第２の識別情報を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを前記記憶ノードに近づく方向に送信し、
前記隣接ノードと前記記憶ノードとは、
前記第１の識別情報または前記第２の識別情報を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記採取ノードに送信し、
前記採取ノードは、
前記第１の識別情報を含むデータを受信した場合、当該データに基づいて、前記故障ノードおよび前記採取ノード間の経路を決定し、前記第２の識別情報を含むデータを受信した場合、当該データに基づいて、前記採取ノードおよび前記記憶ノード間の経路を決定する、
ことを特徴とする付記１〜７のいずれか一つに記載の並列処理装置。
【０１２５】
（付記９）プロセッサとメモリとを有しノード間でデータを中継する複数のノードを有する並列処理装置におけるノード情報採取方法であって、
前記複数のノードのうちの前記複数のノードを管理する管理ノードが、
前記複数のノードのうちの故障した故障ノードが発生した場合、前記複数のノードの各ノードの消費電力、または／および前記各ノードのメモリの使用量に基づいて、前記複数のノードから前記故障ノードのメモリに記憶された情報を採取する採取ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記複数のノードのうちの記憶ノードに記憶させる指示を含むデータを、決定した前記採取ノードに送信する、処理を実行し、
前記採取ノードが、
前記指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、採取した前記情報に基づき生成される情報を記憶する記憶ノードに近づく方向とにそれぞれ送信する処理を実行し、
前記複数のノードのうちの前記故障ノードの隣にある隣接ノードでなく、かつ、前記記憶ノードでないノードが、
前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信する処理を実行し、
前記隣接ノードと前記記憶ノードとは、
前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信する処理を実行し、
前記採取ノードは、
前記隣接ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記故障ノードおよび前記採取ノード間の経路を決定し、前記記憶ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記採取ノードおよび前記記憶ノード間の経路を決定する処理を実行する、
ことを特徴とするノード情報採取方法。
【０１２６】
（付記１０）プロセッサとメモリとを有しノード間でデータを中継する複数のノードを有する並列処理装置におけるノード情報採取プログラムであって、
前記複数のノードに含まれるノードに、
前記ノードが前記複数のノードを管理する管理ノードであり、かつ、前記複数のノードのうちの故障した故障ノードが発生した場合、前記複数のノードの各ノードの消費電力、または／および前記各ノードのメモリの使用量に基づいて、前記複数のノードから前記故障ノードのメモリに記憶された情報を採取する採取ノードを決定し、
前記故障ノードのメモリに記憶された情報に基づき生成される情報を前記複数のノードのうちの記憶ノードに記憶させる指示を含むデータを、決定した前記採取ノードに送信し、
前記ノードが前記採取ノードであり、かつ、前記指示を受信した場合、自ノードの通信性能に関する評価値の送信指示を含むデータを、前記故障ノードに近づく方向と、採取した前記情報に基づき生成される情報を記憶する記憶ノードに近づく方向とにそれぞれ送信し、
前記ノードが前記故障ノードの隣にある隣接ノードでなく、かつ、前記記憶ノードでないノードであり、かつ、前記故障ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記故障ノードに近づく方向に送信し、
前記ノードが前記隣接ノードでなく、かつ、前記記憶ノードでないノードであり、かつ、前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに自ノードの通信性能に関する評価値を追加したデータを、前記記憶ノードに近づく方向に送信し、
前記ノードが前記隣接ノードまたは前記記憶ノードであり、かつ、前記故障ノードまたは前記記憶ノードに近づく方向に送信されており前記送信指示を含むデータを受信した場合、当該データに含まれる他ノードの通信性能に関する評価値と自ノードの通信性能に関する評価値とを含むデータを、前記採取ノードに送信し、
前記ノードが前記採取ノードであり、かつ、前記隣接ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記故障ノードおよび前記採取ノード間の経路を決定し、前記記憶ノードの通信性能に関する評価値を含むデータを受信した場合、当該データに基づいて、前記採取ノードおよび前記記憶ノード間の経路を決定する、
処理を実行させることを特徴とするノード情報採取プログラム。
【符号の説明】
【０１２７】
Ａｎ  採取ノード
Ｉｎ  記憶ノード
Ｐ  ダウンノード
ａｄ  隣接ノード
ｎｄ  計算ノード
１０１  並列処理装置
４０１  決定部
４０２、４１１、４１３、４１４  送信部
４１２  決定部
【図１】
0006586666.tif 000002
【図２】
0006586666.tif 000003
【図３】
0006586666.tif 000004
【図４】
0006586666.tif 000005
【図５】
0006586666.tif 000006
【図６】
0006586666.tif 000007
【図７】
0006586666.tif 000008
【図８】
0006586666.tif 000009
【図９】
0006586666.tif 000010
【図１０】
0006586666.tif 000011
【図１１】
0006586666.tif 000012
【図１２】
0006586666.tif 000013
【図１３】
0006586666.tif 000014
【図１４】
0006586666.tif 000015
【図１５】
0006586666.tif 000016
【図１６】
0006586666.tif 000017