(57)【要約】【課題】異種ＯＳを持つパーソナルコンピュータ、性能が異なるパーソナルコンピュータ、サービス提供機が混在する環境においてＰＣクラスタ計算機を構築する際に、従来の計算ノードの選択方法では、サービス提供機の検出及びクライアントコンピュータの持つＯＳの適合状態を自動検知し、起動方法の選択をすることができなかった。【解決手段】  本発明は、サービス提供機の検出機能によりサービス提供機の検出、クライアントコンピュータの持つＯＳの判定機能により、クライアントコンピュータの起動方法を選択することができる。また、グループ化機能、プログラム配布スケジュール作成機能によりプロセスを最短時間で履行させることができる。【選択図】  図１
2006228093.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されている複数のパーソナルコンピュータを用いてＰＣクラスタ計算機を構築するために、計算ノードとしての複数のクライアントコンピュータとクライアントコンピュータを管理するサーバコンピュータにおいて、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴に応じて、クライアントコンピュータをグループごとに分類する手段と、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴にもとづいて、クライアントコンピュータを自動でグループに追加またはグループから削除する手段と、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴にもとづいて、グループごとにコンピュータをネットワーク起動する手段と、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴にもとづいて、グループを構成するクライアントコンピュータに対し、サーバコンピュータからＰＣクラスタ計算機を構成する計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスを最短時間で履行するクライアントコンピュータのグループを履行前に予測し、ＰＣクラスタ計算機として全体の計算に必要な時間を最小限にするためのプログラム配布スケジュールを作成し、そのスケジュールに基づいて全計算を履行する手段と、クライアントコンピュータにおいてＰＣクラスタ計算機を構築するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）としての適合状態を自動検知し、検知した結果または過去の起動履歴に応じて、サーバコンピュータから起動するためのＯＳをネットワークからダウンロードするディスクレスブート方式またはクライアントコンピュータの外部記憶装置に保存されているＯＳを用いて起動するローカルブート方式を自動で選択する機能を備えたＰＣクラスタ計算機装置。
【請求項２】
計算ノードとしての複数のクライアントコンピュータとクライアントコンピュータを管理するサーバコンピュータにおいて、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態を、サーバコンピュータ内に動作するデータベースに保存する機能と、クライアントコンピュータをグループごとに分類する手段においてデータベースを参照する機能と、クライアントコンピュータを自動でグループに追加またはグループから削除する手段においてデータベースを参照する機能と、グループの構成をサーバコンピュータ内に動作するデータベースに保存する機能と、グループを構成するクライアントコンピュータに対し、サーバコンピュータからＰＣクラスタ計算機を構成する計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスを最短時間で履行するクライアントコンピュータのグループを履行前に予測し、ＰＣクラスタ計算機として全体の計算に必要な時間を最小限にするためのプログラム配布スケジュールを作成し、そのスケジュールに基づいて全計算を履行する手段において、データベースを参照する機能を備えた請求項１記載のＰＣクラスタ計算機装置。
【請求項３】
クライアントコンピュータにおいてＰＣクラスタ計算機を構築するＯＳとしての適合状態を検知する手段において、クライアントコンピュータが停止している場合はネットワークを介してコンピュータを起動し、サーバコンピュータからクライアントコンピュータに信号を送信し、信号を受信したクライアントコンピュータが適合状態を返信する際、クライアントコンピュータの外部記憶装置に保存されているＯＳを用いて起動可能であることを通知する手段と、クライアントコンピュータの外部装置に保存されているＯＳを用いて起動が不可能であることを通知する手段と、クライアントコンピュータから通知された信号をサーバコンピュータのデータベースに保存する機能と、データベースに保存された信号にもとづいてサーバコンピュータから起動するためのＯＳをネットワークからダウンロードするディスクレスブート方式またはクライアントコンピュータの外部記憶装置に保存されているＯＳを用いて起動するローカルブート方式を自動で選択する機能を備えた請求項１記載のＰＣクラスタ計算機装置。
【請求項４】
サーバコンピュータからＰＣクラスタ計算機を構成する計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスを最短時間で履行するクライアントコンピュータのグループを履行前に予測する手段、およびＰＣクラスタ計算機として全体の計算に必要な時間を最小限にするためのプログラム配布スケジュールを作成し、そのスケジュールに基づいて全計算を履行する手段において、すでに起動しているサーバコンピュータおよびクライアントコンピュータにおいて、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態を一定の時間で計測し、計測値の平均値をサーバコンピュータに通知する機能と、サーバコンピュータで受信した平均値の変化の状態にもとづいてプロセスを最短時間で履行するクライアントコンピュータのグループを予測する機能と、ＰＣクラスタ計算機としてプログラム配布スケジュールを作成する機能を備えた請求項１記載のＰＣクラスタ計算機装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣクラスタ計算機の構成要素である計算ノードとして利用可能な複数のクライアントコンピュータにおいて、各々のクライアントコンピュータの状態に応じてＰＣクラスタ計算機の要素として利用するかどうかを選択する方式、計算ノードとして選択された各クライアントコンピュータの起動方法の選択方式及び、計算ノードのハードウェア性能、通信速度、プロセスの履行状態の履歴を基にしたグループ作成方式、ＰＣクラスタ計算機として、全体の計算に必要な時間を最小限にするためのプログラム配布スケジュール作成方式に関係する。
【背景技術】
【０００２】
ＰＣクラスタ計算機とは、複数のクライアントコンピュータを計算ノードとしてネットワーク上で接続した分散メモリ型並列計算機の一種である。
【０００３】
ＰＣクラスタ計算機の計算ノードとして、使用していないクライアントコンピュータを使用することで、計算処理能力の向上だけではなく、眠っているＣＰＵ資源の有効活用ができる。このとき、計算ノードとして使用するクライアントコンピュータとして、計算時に異常終了をしてしまうようなクライアントコンピュータや、ユーザがログイン状態にあるＰＣ（以下ログイン状態のＰＣと呼ぶ）、他のクライアントコンピュータとネットワークを介して通信を行いサービスを提供するクライアントコンピュータ（以下サービス提供機と呼ぶ）が含まれていてはならない。
【０００４】
その中でも特に計算時に異常終了してしまうようなクライアントコンピュータを事前に検出し計算ノードから除外するための、計算ノードの選択方法としては、マウントが正常に行われているかという点、メモリの空き容量が十分にあるかという点、ＣＰＵ負荷率の点から計算ノードを選択する特許文献1の方法がある。
【０００５】
計算ノードとしてのクライアントコンピュータの起動方法としては、サーバコンピュータからＯＳのイメージを転送し、起動する方法（以下ディスクレスブートと呼ぶ）と、クライアントコンピュータのハードディスク上のＯＳのイメージで起動する方法（以下ローカルブートと呼ぶ）がある。
【０００６】
ディスクレスブートで起動すると、サーバコンピュータからＯＳのイメージを転送するため、計算ノードとなるクライアントコンピュータのＯＳが計算ノードとして使用できるＯＳ（以下計算ノード適合ＯＳと呼ぶ）でなくても計算ノードとして起動することが可能であるが、ＮＦＳ    （Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）を利用するため、通信によりネットワークに負荷がかかり、ローカルブートで起動したときよりも、計算処理性能が劣ってしまう。
【０００７】
これに対して、ローカルブートで起動する場合は、ＮＦＳを使用しないので、ネットワークに負荷がかかることによる計算処理性能の低下はないが、クライアントコンピュータのＯＳが計算ノード適合ＯＳでない場合は、計算ノードとして利用することができない。
【０００８】
上記の2点から、計算ノード適合ＯＳであるクライアントコンピュータはローカルブート、計算ノード不適合であるＯＳをもつクライアントコンピュータは、ディスクレスブートで起動することで、可能な限り最適に近い計算処理性能を得ることができる。
【０００９】
【特許文献１】特開２００３−２０３０６１号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
計算ノード適合ＯＳであるクライアントコンピュータはローカルブート、計算ノード不適合であるＯＳをもつクライアントコンピュータはディスクレスブートで起動するためには、ネットワーク上のそれぞれのクライアントコンピュータについて計算ノード適合ＯＳであるか、それとも計算ノード不適合ＯＳなのかを把握できている必要がある。しかし、ＰＣをユーザが自由にカスタマイズできる環境では、ＰＣクラスタ計算機の管理者が、これをすべて把握しておくことは困難である。
【００１１】
従来の方法では、計算途中で異常終了を起こすような状況にある計算ノードを事前に除外することはできるが、ログイン状態のクライアントコンピュータ、サービス提供機の除外はできない。
【００１２】
また、クライアントコンピュータを計算ノードとして起動するとき、同時に起動できる台数には制限がある。このため、起動台数に比例し、全てのクライアントコンピュータが起動を完了するまでの時間も長くなるので、プログラムの配布を全てのクライアントコンピュータが起動を完了するまで待つと、計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスが終了するまでの時間も長くなってしまう。
【００１３】
本発明の目的は、ネットワーク上のクライアントコンピュータに対して、各クライアントコンピュータが持つＯＳの計算ノードとしての適合状態を自動検知し起動方法を選択する機能、ハードウェアの性能や通信速度やプロセスの履行状態に基づくグループ化機能、プログラム配布スケジュールの作成機能及びその実施機能を提供するものである。
【課題を解決するための手段】
【００１４】
ネットワークに接続されている複数のパーソナルコンピュータを用いてＰＣクラスタ計算機を構築するために、計算ノードとしての複数のクライアントコンピュータとクライアントコンピュータを管理するサーバコンピュータにおいて、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴に応じて、クライアントコンピュータをグループごとに分類する手段と、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴にもとづいて、クライアントコンピュータを自動でグループに追加またはグループから削除する手段と、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴にもとづいて、グループごとにコンピュータのネットワーク起動する手段と、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴にもとづいて、グループを構成するクライアントコンピュータに対し、サーバコンピュータからＰＣクラスタ計算機を構成する計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスを最短時間で履行するクライアントコンピュータのグループを履行前に予測し、ＰＣクラスタ計算機として全体の計算に必要な時間を最小限にするためのプログラム配布スケジュールを作成し、そのスケジュールに基づいて全計算を履行する手段と、クライアントコンピュータにおいてＰＣクラスタ計算機を構築するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）としての適合状態を自動検知し、検知した結果または過去の起動履歴に応じて、サーバコンピュータから起動するためのＯＳをネットワークからダウンロードするディスクレスブート方式またはクライアントコンピュータの外部記憶装置に保存されているＯＳを用いて起動するローカルブート方式を自動で選択する機能を備えたＰＣクラスタ計算機装置を有する。
【００１５】
計算ノードとしての複数のクライアントコンピュータとクライアントコンピュータを管理するサーバコンピュータにおいて、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態を、サーバコンピュータ内に動作するデータベースに保存する機能と、クライアントコンピュータをグループごとに分類する手段においてデータベースを参照する機能と、グループの構成をサーバコンピュータ内に動作するデータベースに保存する機能と、クライアントコンピュータを自動でグループに追加またはグループから削除する手段においてデータベースを参照する機能と、グループを構成するクライアントコンピュータに対し、サーバコンピュータからＰＣクラスタ計算機を構成する計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスを最短時間で履行するクライアントコンピュータのグループを履行前に予測し、ＰＣクラスタ計算機として全体の計算に必要な時間を最小限にするためのプログラム配布スケジュールを作成し、そのスケジュールに基づいて全計算を履行する手段において、データベースを参照する機能を備えた請求項１記載のＰＣクラスタ計算機装置を有する。
【００１６】
クライアントコンピュータにおいてＰＣクラスタ計算機を構築するＯＳとしての適合状態を検知する手段において、クライアントコンピュータが停止している場合はネットワークを介してコンピュータを起動し、サーバコンピュータからクライアントコンピュータに信号を送信し、信号を受信したクライアントコンピュータが適合状態を返信する際、クライアントコンピュータの外部記憶装置に保存されているＯＳを用いて起動可能であることを通知する手段と、クライアントコンピュータの外部装置に保存されているＯＳを用いて起動が不可能であることを通知する手段と、クライアントコンピュータから通知された信号をサーバコンピュータのデータベースに保存する機能と、データベースに保存された信号にもとづいてサーバコンピュータから起動するためのＯＳをネットワークからダウンロードするディスクレスブート方式またはクライアントコンピュータの外部記憶装置に保存されているＯＳを用いて起動するローカルブート方式を自動で選択する機能を備えた請求項１記載のＰＣクラスタ計算機装置を有する。
【００１７】
サーバコンピュータからＰＣクラスタ計算機を構成する計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスを最短時間で履行するクライアントコンピュータのグループを履行前に予測する手段、およびＰＣクラスタ計算機として全体の計算に必要な時間を最小限にするためのプログラム配布スケジュールを作成し、そのスケジュールに基づいて全計算を履行する手段において、すでに起動しているサーバコンピュータおよびクライアントコンピュータにおいて、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態を一定の時間で計測し、計測値の平均値をサーバコンピュータに通知する機能と、サーバコンピュータで受信した平均値の変化の状態にもとづいてプロセスを最短時間で履行するクライアントコンピュータのグループを予測する機能と、ＰＣクラスタ計算機としてプログラム配布スケジュールを作成する機能を備えた請求項１記載のＰＣクラスタ計算機装置を有する。
【発明の効果】
【００１８】
ネットワーク上にサービス提供機、ログイン状態のクライアントコンピュータが含まれる場合においても、それらのクライアントコンピュータを事前に検出することで、計算ノードとして使用することが可能なクライアントコンピュータのみを計算ノードとして選択することが可能となる。
【００１９】
クライアントコンピュータのＯＳを計算ノード適合ＯＳであるか、不適合ＯＳであるかを判定し、計算ノードとして起動するクライアントコンピュータをディスクレスブートかローカルブートのどちらを用いて起動するのかを決定することで、可能な限り最適に近い計算処理性能を得ることが可能となる。
【００２０】
性能の近いクライアントコンピュータをグループ化することで、ＯＳイメージの効率的なマルチキャスト配信ができ、またプログラムの配布スケジュールの作成を容易にすることができる。
【００２１】
計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスを最短で終了させるようなプログラムの配布スケジュールを作成し、実施することができる。
【発明を実施するための最良の形態】
【００２２】
図１は、本発明の１実施例の構成図である。同図に示すようにサーバコンピュータは、ネットワークに接続されているクライアントコンピュータの管理情報を格納するためのデータベース（DB１）、パケット解析機能（F１）とポートスキャン機能（F２）を持つサービス提供機検出機能（F３）、クライアントコンピュータのＯＳ判定機能（F４）、ＯＳイメージ配信機能（F５）、グループ化機能（F６）、プログラム配布スケジュール作成および実施機能（F７）で構成される。
【００２３】
パケット解析機能（F１）は、ネットワーク上に流れるパケットを監視し、サービスを提供する内容のパケットを発見したとき、そのパケットの送信元のクライアントコンピュータがサービス提供機であるとみなす。ポートスキャン機能（F２）は、パケット解析で検出されたサービス提供機以外のクライアントコンピュータに対して、ポートスキャンを行い開いているポート確認する。このとき、サービスを提供するためのポートが開いていた場合、そのクライアントコンピュータはサービス提供機であるとみなす。これらの機能を用いてサービス提供機の検出を行うのがサービス提供機検出機能（F３）である。また、検出したサービス提供機の情報は管理情報データベース（DB１）に格納する。
【００２４】
クライアントコンピュータのＯＳ判定機能（F４）は、クライアントコンピュータのＯＳの適合状態を検知し、起動方法の選択を行う機能である。また、選択した起動方法を、管理情報データベース（DB１）に格納する。
【００２５】
ＯＳイメージ配信機能（F５）は、ディスクレスブートで起動する計算ノードに対して、計算ノード適合ＯＳのイメージを配信する機能である。ここでは、ＯＳイメージの配信にはマルチキャストによる配信を用いる。
【００２６】
グループ化機能（F６）は、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態にもとづいてグループを構成する。また、グループの構成を管理情報データベース（DB１）に格納する。
【００２７】
プログラム配布スケジュール作成機能（F７）は、グループ化機能（F６）によって構成されたグループに対する評価値を求め、その評価値の小さいグループから起動されるようなスケジュールを作成する機能である。
【００２８】
管理情報データベース（DB1）は、ネットワーク上のＰＣの起動方法とその履歴、クライアントコンピュータの中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、サーバコンピュータ及びクライアントコンピュータのプロセス履行状態および過去の履歴、グループの構成を格納している。これらの情報はサービス提供機検出機能やクライアントコンピュータのＯＳ判定機能やグループ化機能により定期的に更新される。
【００２９】
図２を用いてＰＣクラスタ計算機の起動準備に移るまでのサーバコンピュータの処理について説明をする。サーバコンピュータは、クライアントコンピュータのＯＳが計算ホスト適合ＯＳであるかどうかを判定し、管理情報データベース（DB1）に格納する情報を取得しグループ化を行うプログラム、サービス提供機の検出を行うプログラムを起動（Ｓｔｅｐ２１）、（Ｓｔｅｐ２２）し、ＰＣクラスタ計算機の起動要求があるまで待機（Ｓｔｅｐ２３）する。その後ＰＣクラスタ計算機の起動要求を受けると、（Ｓｔｅｐ２１）、（Ｓｔｅｐ２２）で起動したプログラムを終了させ（Ｓｔｅｐ２４）、起動スケジュールを作成するプログラムを起動（Ｓｔｅｐ２５）した後、ＰＣクラスタ計算機の起動処理の制御を行うプログラムを起動（Ｓｔｅｐ２６）する。その後、ＰＣクラスタ計算機の終了を確認（Ｓｔｅｐ２７）すると（Ｓｔｅｐ２１）に戻る。
【００３０】
図３を用いてクライアントコンピュータのＯＳの判定、管理情報データベース（DB１）に格納する情報を取得、グループ化を行うプログラムの説明を行う。まず、電源の入っていないクライアントコンピュータをディスクレスブートで起動する（Ｓｔｅｐ３１）。次にクライアントコンピュータから中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度、プロセス履行状態の情報を取得し、管理情報データベース（DB１）に格納（Ｓｔｅｐ３２）する。その情報と過去の記録をもとに同一の性能を持つクライアントコンピュータからなるグループを作成する（Ｓｔｅｐ３３）。このとき、サーバコンピュータとの通信速度、メモリの占有率が過去の記録と異なるものについては現在のグループから削除し、適切なグループに追加する。
【００３１】
グループ化は同程度の性能を持つクライアントコンピュータを集めて１つのグループとする。また、サービス提供機は、起動不可のグループに追加される。クライアントコンピュータをグループ化するのは、同時に起動しているクライアントコンピュータの起動完了までの時間のばらつきをなくすためである。
【００３２】
サーバコンピュータとの通信速度は、サーバコンピュータとクライアントコンピュータ間で一定のサイズのファイルの転送を行うことで得られる転送速度とする。
【００３３】
次に、クライアントコンピュータのＯＳの情報を確認する（Ｓｔｅｐ３４）。その情報から、計算ノード適合ＯＳではないと判断されたときは、そのクライアントコンピュータの起動方法をディスクレスブートとする（Ｓｔｅｐ３７）。計算ノード適合ＯＳであると判断された場合は、そのクライアントコンピュータの起動方法をローカルブートとする（Ｓｔｅｐ３６）。次に決定した起動方法をデータベースに保存する（Ｓｔｅｐ３７）。次に起動したクライアントコンピュータをシャットダウン（Ｓｔｅｐ３９）し、起動する時間まで待機 （Ｓｔｅｐ３１０）した後、（Ｓｔｅｐ３１）に戻る。
【００３４】
クライアントコンピュータのＯＳの判定、管理情報データベース（DB１）に格納するための情報を取得、グループ化を行うプログラムは、サーバコンピュータからプログラム終了の指示を受け取った場合、現在実行しているステップを実行し終わったら後、すぐに終了する。このプログラムで得た起動方法に関する情報は図１の管理情報データベース（DB１）に格納される。
【００３５】
図４を用いてサービス提供機検出プログラムの説明をする。まず、ネットワーク上のパケットを取得（Ｓｔｅｐ４１）し、取得したパケットの解析を行う（Ｓｔｅｐ４２）、その解析結果からサービス提供機を検出した場合は、検出したサービス提供機を図１の管理情報データベース（DB１）に格納する（Ｓｔｅｐ４４）。次にサーバコンピュータからプログラム終了の指示がなければ、次回の起動時間まで待機（Ｓｔｅｐ４６）する。終了の指示があれば、管理情報DBに含まれているサービス提供機以外のＰＣに対してポートスキャンを行い（Ｓｔｅｐ４７）サービス提供機を検出した場合には、検出したサービス提供機を管理情報データベース（DB１）に格納（Ｓｔｅｐ４９）し終了する。
【００３６】
パケット解析を行ったうえでポートスキャンを行うのは、パケット解析で検出することができなかったサービス提供機をポートスキャンで発見するためである。このように、２段階でサービス提供機検出を行うことで精度を高めることができる。
【００３７】
図５を用いてプログラム配布スケジュールを作成するプログラムの説明をする。まず、実行しようとするプログラムの大きさを求める（Ｓｔｅｐ５１）。次にデータベースから、グループに関する情報を取得する（Ｓｔｅｐ５２）。次にグループごとの評価値を求める（Ｓｔｅｐ５３）。次に評価値の小さいグループから起動するようなスケジュールを作成する（Ｓｔｅｐ５４）。
【００３８】
グループの評価値は「数式１」によって求める。
【数１】
2006228093.tif 000003
ここで、Ｖｋはグループkの評価値、ｔｋはグループｋが起動開始から起動完了までにかかった時間、ｗはプログラムの大きさ、Ｎｋはグループｋに含まれるクライアントコンピュータの台数である。Ｐｋ，ｉは中央処理装置の性能、メモリの占有率、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）のハードウェアの通信速度、サーバコンピュータとの通信速度から得られるグループｋに含まれるクライアントコンピュータｉの性能とする。αはパラメータである。
【００３９】
ＰＣクラスタ計算機を起動する際に、クライアントコンピュータを計算ノードとして起動する
処理を制御するプログラムを、図６を用いて説明する。この起動処理を制御するプログラムでは、起動の終了したグループを格納するリスト、未起動のクライアントコンピュータを格納するリスト、起動済みのクライアントコンピュータを格納するリストの３つを利用する。これらのリストをここでは、リスト１、リスト２、リスト３と呼ぶ。まず、リスト3を初期化する（Ｓｔｅｐ６１）。次にリスト1,2を初期化する（Ｓｔｅｐ６２）。次に起動グループを決定し、そのグループに含まれるクライアントコンピュータをリスト1に追加する（Ｓｔｅｐ６２）。次にあらかじめ定められた同時起動可能台数を越えないように、リスト1に含まれるクライアントコンピュータに対して、起動処理を行うプログラムと起動の管理を行うプログラムを起動する（Ｓｔｅｐ６４）。起動を管理するプログラムから起動完了の通知を受け取った場合には、起動完了したクライアントコンピュータについてリスト１からの削除及びリスト2への追加を行い、また、起動完了までにかかった時間を管理情報データベース（ＤＢ１）に記録する（Ｓｔｅｐ６６）。起動処理を行うプログラムから起動不可の通知を受け取った場合には、起動が不可であると判断されたクライアントコンピュータをリスト2に追加（Ｓｔｅｐ６８）し、起動の管理をするプログラムを終了させる（Ｓｔｅｐ６１０）。次に、リスト2に起動グループ内のクライアントコンピュータが全て含まれる場合は、リスト3に起動が終了したグループを追加する（Ｓｔｅｐ６１１）。そうでない場合は、（Ｓｔｅｐ６４）に戻る。次に、プログラムがすでに配布されているかを調べ、プログラムがすでに配布されていて、まだ終了していないときは、起動完了したグループを、ＰＣクラスタ計算機を構成する計算ノードとして追加する（Ｓｔｅｐ６１５）。プログラムの実行がすでに終了していればクライアントコンピュータの起動を制御するプログラムを終了する。プログラムがまだ配布されていなければ、起動が完了したグループにプログラムを配布する（Ｓｔｅｐ６１３）。次にリスト3に全てのグループが含まれる場合は、計算ノードの起動処理を制御するプログラムを終了する。全てのグループが含まれてはいない場合は、（Ｓｔｅｐ６２）へ戻る。
【００４０】
図７を用いて、計算ノードとしてクライアントコンピュータを起動するプログラムを説明する。まず、クライアント計算機がすでに電源が投入済みであり、なおかつログイン状態にある場合には、起動処理を制御するプログラムに起動不可の通知を送り（Ｓｔｅｐ７４） プログラムを終了する。電源が投入されていない場合には、計算ホストの起動方法を決定し（Ｓｔｅｐ７３）、それが、ディスクレスブートであればWake On Lanで電源を投入しディスクレスブートで起動し（Ｓｔｅｐ７８） プログラムを終了する。起動方法がローカルブートであれば、Wake On Lanで電源を投入しローカルブートで起動し（Ｓｔｅｐ７９）プログラムを終了する。電源が投入済みであり、ユーザがログインしていない場合には、現在起動しているＯＳが計算ノード適合ＯＳであればプログラムを終了し、そうでなければ起動方法を決定し（Ｓｔｅｐ７７））、決定した起動方法が、ディスクレスブートであればクライアントコンピュータをリブートし、ディスクレスブートで起動しプログラムを終了する。ローカルブートであれば、クライアントコンピュータをリブートし、ローカルブートで計算ノード適合ＯＳを起動させプログラムを終了する。
【００４１】
図８を用いてクライアントコンピュータの起動管理プログラムを説明する。まず、管理しているクライアントコンピュータのレスポンスがあれば、起動中のＯＳが計算ノード適合ＯＳであるかを確認し、計算ノード適合ＯＳであれば起動処理を制御するプログラムに起動完了の通知を行い（Ｓｔｅｐ８４）終了する。レスポンスがなければレスポンスがあるまで待機（Ｓｔｅｐ８３）する。
【００４２】
上記のクライアントコンピュータの起動に係わるプログラムは、起動グループの決定や起動方法を決定する際には、図１の管理情報データベース（DB１）に格納されている情報を参考にする。また、計算ノードの起動処理を行うプログラムは、管理情報データベース（DB１）内に起動方法に関する情報を持たない計算ノードは、ディスクレスブートで起動するものとする。
【００４３】
上記のクライアントコンピュータの起動に係わるプログラムの概観を、図９を基に説明する。サーバコンピュータによって起動されたクライアントコンピュータの起動処理を制御するプログラムは、クライアントコンピュータ一台につき起動処理プログラム、起動管理プログラムを1つずつ起動する。起動管理プログラムは起動処理プログラムが起動処理を行っているクライアントコンピュータを管理し、起動の完了を確認すると、起動完了の通知を、起動処理を制御するプログラムに送る。また、起動処理プログラムはユーザがログインしていて起動処理が行えないクライアントコンピュータを確認すると起動不可の通知を、起動処理を制御するプログラムに通知する。また、図９に示すように、それぞれのプログラムが独立に動作することで、計算ノードの異常や起動時間の違いなどによって影響を受けることを防ぐことができるようになる。
【００４４】
なお、本実施の形態では、計算ノード不適合ＯＳを持つクライアントコンピュータ、性能が異なるクライアントコンピュータ、サービス提供機が混在する環境において、ＰＣクラスタ計算機の構築を容易にするとともに、計算ノードとしてクライアントコンピュータを起動し、プログラムを送信し、計算を実行し、結果を受け取る間のプロセスの終了までの時間を最短にすることができる。
【産業上の利用可能性】
【００４５】
異種ＯＳを持つパーソナルコンピュータ、性能が異なるパーソナルコンピュータ、サービス提供機が混在する情報処理センターや研究室などの施設において、容易にＰＣクラスタ計算機の構築及びＰＣクラスタ計算機の利用が可能となる。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施例の構成図
【図２】ＰＣクラスタ計算機の起動準備に移るまでのサーバコンピュータの処理に関するプログラムのフローチャート
【図３】クライアントコンピュータのＯＳの判定、管理情報データベース（DB１）に格納する情報を取得、グループ化を行うプログラムのフローチャート
【図４】サービス提供機を検出するプログラムのフローチャート
【図５】プログラム配布スケジュールを作成するプログラムのフローチャート
【図６】ＰＣクラスタ計算機を起動する際に、クライアントコンピュータを計算ノードとして起動する処理を制御するプログラムのフローチャート
【図７】クライアントコンピュータを計算ノードとして起動する処理を行うプログラムのフローチャート
【図８】クライアントコンピュータの起動管理を行うプログラムのフローチャート
【図９】クライアントコンピュータの起動に係わるプログラムの概観図
【符号の説明】
【００４７】
Ｆ１  パケット解析機能
Ｆ２  ポートスキャン機能
Ｆ３  サービス機検出機能
Ｆ４  クライアントコンピュータのＯＳ判定機能
Ｆ５  ＯＳイメージ配信機能
Ｆ６  グループ化機能
Ｆ７  プログラム起動スケジュール作成機能
ＤＢ１  管理情報データベース
【図１】
2006228093.tif 000004
【図２】
2006228093.tif 000005
【図３】
2006228093.tif 000006
【図４】
2006228093.tif 000007
【図５】
2006228093.tif 000008
【図６】
2006228093.tif 000009
【図７】
2006228093.tif 000010
【図８】
2006228093.tif 000011
【図９】
2006228093.tif 000012