(57)【要約】【課題】ネットワーク上の分散処理においてリソース管理の向上やタスクスケジューリングの高効率化は避けて通れない課題となりつつある。【解決手段】マルチプロセッサコンピュータにおいて、マルチプロセッサ２０に含まれる一つのサブプロセッサ１０２は、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているリソースの情報を受信して管理するとともに、リソース利用要求を受けたときは管理するリソースの提供を処理するリソースマネージャを、ローカルメモリ１２２にロードされた状態で動作させる。他のサブプロセッサ１０２は、ネットワーク上のコンピュータからリソース利用要求を受信して管理するとともに、リソースマネージャの仲介によって提供されるリソースをリソース利用要求に対して割り当てるリソーススケジューラを、ローカルメモリ１２２にロードされた状態で動作させる。【選択図】図１
2007264885.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、
ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備え、
前記マルチプロセッサは、
ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信して管理するとともに、ハードウェアリソース利用要求を受けたときは前記管理するハードウェアリソースの提供を処理するリソースマネージャを、前記ローカルメモリにロードされた状態で動作させる第１のプロセッサと、
ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して管理するとともに、前記リソースマネージャの仲介によって提供されるハードウェアリソースを前記ハードウェアリソース利用要求に対して割り当てるリソーススケジューラを、前記ローカルメモリにロードされた状態で動作させる第２のプロセッサと、
を含むことを特徴とするマルチプロセッサコンピュータ。
【請求項２】
それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだ第１のマルチプロセッサと、
前記第１のマルチプロセッサと高速バスで結合され、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだ第２のマルチプロセッサと、
ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備え、
前記第１のマルチプロセッサは、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信して管理するとともに、ハードウェアリソース利用要求を受けたときは前記管理するハードウェアリソースの提供を処理するリソースマネージャを、前記ローカルメモリにロードされた状態で動作させるプロセッサを含み、
前記第２のマルチプロセッサは、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して管理するとともに、前記リソースマネージャの仲介によって提供されるハードウェアリソースを前記ハードウェアリソース利用要求に対して割り当てるリソーススケジューラを、前記ローカルメモリにロードされた状態で動作させるプロセッサを含むことを特徴とするマルチプロセッサコンピュータ。
【請求項３】
それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、
ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備え、
前記マルチプロセッサは、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信して管理するとともに、ネットワーク上の外部のコンピュータで動作するリソーススケジューラからハードウェアリソース利用要求を受けたときは前記管理するハードウェアリソースの提供を処理するリソースマネージャを、前記ローカルメモリにロードされた状態で動作させるプロセッサを含むことを特徴とするマルチプロセッサコンピュータ。
【請求項４】
それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、
ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備え、
前記マルチプロセッサは、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して管理するとともに、ネットワーク上の外部のコンピュータで動作するリソースマネージャによる仲介によって提供されるハードウェアリソースを前記ハードウェアリソース利用要求に対して割り当てるリソーススケジューラを、前記ローカルメモリにロードされた状態で動作させるプロセッサを含むことを特徴とするマルチプロセッサコンピュータ。
【請求項５】
前記リソースマネージャは、ネットワーク上のコンピュータで動作するクライアントからそのコンピュータに含まれるハードウェアリソースのうち提供可能なリソースの内容を示す情報を受信し、
前記リソーススケジューラは、ネットワーク上のコンピュータで動作するクライアントから他のコンピュータのハードウェアリソースの利用要求を受信することを特徴とする請求項１から４のいずれかに記載のマルチプロセッサコンピュータ。
【請求項６】
前記リソースマネージャは、所定期間内の利用要求数を含むリソース割当の実績を記録してこれを所定のサーバへ送信するとともに、ネットワーク上のコンピュータで動作するクライアントによって前記リソース割当の実績に基づいて前記リソースマネージャが選択されたときに、前記クライアントからそのコンピュータに含まれるハードウェアリソースのうち提供可能なリソースの内容を示す情報を受信することを特徴とする請求項１から５のいずれかに記載のマルチプロセッサコンピュータ。
【請求項７】
前記リソーススケジューラは、所定期間内のスケジューリング効率を記録してこれを所定のサーバへ送信するとともに、ネットワーク上のコンピュータで動作するクライアントによって前記スケジューリング効率に基づいて前記リソーススケジューラが選択されたときに、前記クライアントからハードウェアリソースの利用要求を受信することを特徴とする請求項１から６のいずれかに記載のマルチプロセッサコンピュータ。
【請求項８】
相互にネットワークで接続された複数のコンピュータを含むシステムであって、
前記複数のコンピュータは、
それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサにおけるいずれかのプロセッサにより、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信してハードウェアリソース利用要求を受けたときは前記管理するハードウェアリソースの提供を処理するリソースマネージャを前記ローカルメモリにロードされた状態で動作させるコンピュータと、
それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサにおけるいずれかのプロセッサにより、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して前記リソースマネージャの仲介によって提供されるハードウェアリソースを前記ハードウェアリソース利用要求に対して割り当てるリソーススケジューラを前記ローカルメモリにロードされた状態で動作させるコンピュータと、
他のコンピュータへハードウェアリソースの提供が可能となったときに前記ハードウェアリソースの情報を前記リソースマネージャに送信するとともに、他のコンピュータのハードウェアリソースを利用する場合にはハードウェアリソースの利用要求を前記リソーススケジューラに送信するリソースマネージメントクライアントを動作させるクライアントコンピュータと、
を含むことを特徴とするネットワークコンピューティングシステム。
【請求項９】
前記複数のコンピュータは、ネットワーク上におけるハードウェアリソースの利用要求に対する割当の実績を管理する運用監視サーバコンピュータを含み、
前記リソースマネージャは、所定期間内の利用要求数を含むリソース割当の実績を記録してこれを前記運用監視サーバコンピュータへ送信するとともに、前記リソースマネージメントクライアントによって当該リソースマネージャが選択されたときに、前記リソースマネージメントクライアントからそのクライアントコンピュータに含まれるハードウェアリソースのうち提供可能なリソースの内容を示す情報を受信し、
前記リソースマネージメントクライアントは、複数のリソースマネージャのそれぞれにおけるリソース割当の実績を前記運用監視サーバコンピュータから受信し、それらのリソース割当の実績に基づき実績がより高いリソースマネージャを選択し、提供可能なリソースの内容を示す情報を前記選択したリソースマネージャへ送信することを特徴とする請求項８に記載のネットワークコンピューティングシステム。
【請求項１０】
前記複数のコンピュータは、ネットワーク上におけるハードウェアリソースの利用要求に対するリソース割当のスケジューリング効率を管理する運用監視サーバコンピュータを含み、
前記リソーススケジューラは、所定期間内のスケジューリング効率を記録してこれを前記運用監視サーバコンピュータへ送信するとともに、前記リソースマネージメントクライアントによって当該リソーススケジューラが選択されたときに、前記リソースマネージメントクライアントからハードウェアリソースの利用要求を受信し、
前記リソースマネージメントクライアントは、複数のリソーススケジューラのそれぞれにおけるリソース割当のスケジューリング効率を前記運用監視サーバコンピュータから受信し、それらのリソース割当のスケジューリング効率に基づき効率がより高いリソーススケジューラを選択し、ハードウェアリソースの利用要求を前記選択したリソーススケジューラへ送信することを特徴とする請求項８に記載のネットワークコンピューティングシステム。
【請求項１１】
それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、
ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を管理してハードウェアリソースの提供を処理するリソースマネージャが動作する他のマルチプロセッサコンピュータとの間でデータを送受信するとともに、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して前記リソースマネージャの仲介によって提供されるハードウェアリソースを前記ハードウェアリソース利用要求に対して割り当てるリソーススケジューラが動作する他のマルチプロセッサコンピュータとの間でデータを送受信するネットワーク通信部と、を備え、
前記マルチプロセッサは、
他のマルチプロセッサコンピュータへハードウェアリソースの提供が可能となったときに前記ハードウェアリソースの情報をネットワーク上のいずれかのマルチプロセッサコンピュータで動作する前記リソースマネージャに送信するとともに、他のマルチプロセッサコンピュータのハードウェアリソースを利用する場合にはハードウェアリソースの利用要求をネットワーク上のいずれかのマルチプロセッサコンピュータで動作する前記リソーススケジューラに送信するリソースマネージメントクライアントが動作するプロセッサと、を備えることを特徴とするマルチプロセッサコンピュータ。
【請求項１２】
前記リソースマネージメントクライアントは、前記ネットワーク通信部を介し、ネットワーク上の複数のリソースマネージャのそれぞれにおけるリソース割当の実績を所定のサーバから受信し、それらのリソース割当の実績に基づき実績がより高いリソースマネージャを選択し、提供可能なリソースの内容を示す情報を前記選択したリソースマネージャへ送信することを特徴とする請求項１１に記載のマルチプロセッサコンピュータ。
【請求項１３】
前記リソースマネージメントクライアントは、前記ネットワーク通信部を介し、ネットワーク上の複数のリソーススケジューラのそれぞれにおけるリソース割当のスケジューリング効率を所定のサーバから受信し、それらのリソース割当のスケジューリング効率に基づき効率がより高いリソーススケジューラを選択し、ハードウェアリソースの利用要求を前記選択したリソーススケジューラへ送信することを特徴とする請求項１１に記載のマルチプロセッサコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マルチプロセッサコンピュータおよびネットワークコンピューティングシステムに関する。この発明は特に、ネットワーク上の複数のコンピュータによる分散処理の技術に関する。
【背景技術】
【０００２】
分散コンピューティングの一形態として、グリッドコンピューティングと呼ばれる手法が近年よく利用される。グリッドコンピューティングは、１台では性能の限られたコンピュータを、ネットワークを介して複数結合することにより、仮想的な高性能マルチプロセッシングシステムを構築する方法である。グリッドコンピューティングの利用者は、この仮想的なマルチプロセッシングシステムの提供するプロセッサやメモリといったリソースを使って効率的なコンピューティングを実現できる。
【０００３】
グリッドコンピューティングにおいては、基本的に異機種ＰＣを結合することが頻繁に行われる。このため、一般的には、それぞれのコンピュータに対してタスク（「ジョブ」または「プロセス」ともいう）を割り当てるためのインタフェースを用意し、このインタフェースを介して、各コンピュータのリソースを割り当てることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、リソースに対するタスクの割り当て頻度が比較的低い場合にはタスクスケジューリングの問題は少ない。この場合、複数のコンピュータに対していったんタスクが割り当てられると、各タスクが終了するまでプロセッサをほぼ占有できるからである。
【０００５】
しかしながら、各プロセッサの性能が比較的高く、一つのプロセッサで一つのタスクの実行に要する時間が比較的短いような場合、ネットワーク中に分散されたリソースの管理やタスクスケジューリングの効率がシステムの全体性能に与える影響は大きい。実際、近年のワンチップマルチプロセッサは従来の汎用プロセッサに比較して飛躍的に性能が向上しているため、リソース管理の向上やタスクスケジューリングの高効率化は避けて通れない課題となりつつある。
【０００６】
本発明者は以上の課題に基づき本発明をなしたもので、その目的は、ネットワーク上のハードウェアリソースを効率よく利用できるようにするための仕組みを構築する点にある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様のマルチプロセッサコンピュータは、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備える。マルチプロセッサは、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信して管理するとともに、ハードウェアリソース利用要求を受けたときは管理するハードウェアリソースの提供を処理するリソースマネージャを、ローカルメモリにロードされた状態で動作させる第１のプロセッサと、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して管理するとともに、リソースマネージャの仲介によって提供されるハードウェアリソースをハードウェアリソース利用要求に対して割り当てるリソーススケジューラを、ローカルメモリにロードされた状態で動作させる第２のプロセッサと、を含む。
【０００８】
ここで「マルチプロセッサ」は、ワンチップ化されたマルチプロセッサであってもよい。「プロセッサ」は、割り込み処理なしに独立して動作するものであってもよく、「複数のプロセッサ」は互いに非同期で処理を実行するものであってもよい。「ハードウェアリソース」としては様々なハードウェアが考え得るが、たとえば複数のプロセッサのうちのいずれかであってもよいし、複数のマルチプロセッサを備えるコンピュータにおいてはそのいずれかのマルチプロセッサを指してもよい。あるいは、メモリやハードディスクなどの記憶媒体の一部や、無線通信などの通信デバイス、外部周辺機器などであってもよい。
【０００９】
この態様によると、リソースマネージャの動作とリソーススケジューラの動作を独立して動作する別個のプロセッサに分散して実行させるので、それぞれの処理を高速化でき、ネットワーク上の分散処理のリアルタイム性や効率を向上させることができる。
【００１０】
本発明の別の態様もまた、マルチプロセッサコンピュータである。このマルチプロセッサコンピュータは、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだ第１のマルチプロセッサと、第１のマルチプロセッサと高速バスで結合され、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだ第２のマルチプロセッサと、ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備える。第１マルチプロセッサは、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信して管理するとともに、ハードウェアリソース利用要求を受けたときは管理するハードウェアリソースの提供を処理するリソースマネージャを、ローカルメモリにロードされた状態で動作させるプロセッサを含む。第２マルチプロセッサは、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して管理するとともに、リソースマネージャの仲介によって提供されるハードウェアリソースをハードウェアリソース利用要求に対して割り当てるリソーススケジューラを、ローカルメモリにロードされた状態で動作させるプロセッサを含む。
【００１１】
この態様においても、リソースマネージャの動作とリソーススケジューラの動作を独立して動作する別個のプロセッサに分散して実行させるので、それぞれの処理を高速化でき、ネットワーク上の分散処理のリアルタイム性や効率を向上させることができる。
【００１２】
本発明のさらに別の態様もまた、マルチプロセッサコンピュータである。このマルチプロセッサコンピュータは、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備える。マルチプロセッサは、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信して管理するとともに、ネットワーク上の外部のコンピュータで動作するリソーススケジューラからハードウェアリソース利用要求を受けたときは管理するハードウェアリソースの提供を処理するリソースマネージャを、ローカルメモリにロードされた状態で動作させるプロセッサを含む。
【００１３】
この態様においても、リソースマネージャの動作とリソーススケジューラの動作を独立して動作する別個のプロセッサに分散して実行させるので、それぞれの処理を高速化でき、ネットワーク上の分散処理のリアルタイム性や効率を向上させることができる。
【００１４】
本発明のさらに別の態様もまた、マルチプロセッサコンピュータである。このマルチプロセッサコンピュータは、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、ネットワーク上のコンピュータとの間でデータを送受信するネットワーク通信部と、を備える。マルチプロセッサは、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して管理するとともに、ネットワーク上の外部のコンピュータで動作するリソースマネージャによる仲介によって提供されるハードウェアリソースをハードウェアリソース利用要求に対して割り当てるリソーススケジューラを、ローカルメモリにロードされた状態で動作させるプロセッサを含む。
【００１５】
この態様においても、リソースマネージャの動作とリソーススケジューラの動作を独立して動作する別個のプロセッサに分散して実行させるので、それぞれの処理を高速化でき、ネットワーク上の分散処理のリアルタイム性や効率を向上させることができる。
【００１６】
本発明のさらに別の態様は、ネットワークコンピューティングシステムである。このネットワークコンピューティングシステムは、相互にネットワークで接続された複数のコンピュータを含むシステムであって、複数のコンピュータは、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサにおけるいずれかのプロセッサにより、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を受信して管理してハードウェアリソース利用要求を受けたときは管理するハードウェアリソースの提供を処理するリソースマネージャをローカルメモリにロードされた状態で動作させるコンピュータと、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサにおけるいずれかのプロセッサにより、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信して管理してリソースマネージャの仲介によって提供されるハードウェアリソースをハードウェアリソース利用要求に対して割り当てるリソーススケジューラをローカルメモリにロードされた状態で動作させるコンピュータと、他のコンピュータへハードウェアリソースの提供が可能となったときにハードウェアリソースの情報をリソースマネージャに送信するとともに、他のコンピュータのハードウェアリソースを利用する場合にはハードウェアリソースの利用要求をリソーススケジューラに送信するクライアントを動作させるコンピュータと、を含む。
【００１７】
この態様においても、リソースマネージャの動作とリソーススケジューラの動作を独立して動作する別個のプロセッサに分散して実行させるので、それぞれの処理を高速化でき、ネットワーク上の分散処理のリアルタイム性や効率を向上させることができる。
【００１８】
本発明のさらに別の態様は、マルチプロセッサコンピュータである。このマルチプロセッサコンピュータは、それぞれがローカルメモリを有して独立に動作する複数のプロセッサを含んだマルチプロセッサと、ネットワーク上のコンピュータからネットワークを介して提供されることが可能となっているハードウェアリソースの情報を管理してハードウェアリソースの提供を処理するリソースマネージャが動作する他のマルチプロセッサコンピュータとの間でデータを送受信するとともに、ネットワーク上のコンピュータからハードウェアリソース利用要求を受信してリソースマネージャの仲介によって提供されるハードウェアリソースをハードウェアリソース利用要求に対して割り当てるリソーススケジューラが動作する他のマルチプロセッサコンピュータとの間でデータを送受信するネットワーク通信部と、を備える。マルチプロセッサは、他のマルチプロセッサコンピュータへハードウェアリソースの提供が可能となったときにハードウェアリソースの情報をネットワーク上のいずれかのマルチプロセッサコンピュータで動作するリソースマネージャに送信するとともに、他のマルチプロセッサコンピュータのハードウェアリソースを利用する場合にはハードウェアリソースの利用要求をネットワーク上のいずれかのマルチプロセッサコンピュータで動作するリソーススケジューラに送信するリソースマネージメントクライアントが動作するプロセッサと、を備える。
【００１９】
この態様によれば、マルチプロセッサコンピュータにおいて遊休リソースが生じたときにはリソースマネージャへ遊休リソースの提供が可能であることを示すリソース情報を送信し、逆に他のコンピュータの遊休リソースを利用すべき場面ではリソーススケジューラへリソースの利用要求を送信する。これにより、クライアントとなるマルチプロセッサコンピュータにおいて、リソースの利用状況に応じてリソースの提供と利用を適宜切り替えることができる。この場合でも、ネットワーク上の他のコンピュータにおいてリソースマネージャとリソーススケジューラとがそれぞれ異なるプロセッサに分散されて独立して動作するので、迅速に効率よくリソースを提供し、利用することができる。
【００２０】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２１】
本発明によれば、ネットワーク上のハードウェアリソースを効率よく利用できるシステムを構築することができる。
【発明を実施するための最良の形態】
【００２２】
（第１の実施の形態）
本実施の形態におけるネットワークコンピューティングシステムは、複数のプロセッサを内蔵した複数のコンピュータがネットワークに接続されて構成される。各コンピュータによる協働により本実施の形態におけるリアルタイムリソースマネージメントが実現される。まず、複数のプロセッサを内蔵した各コンピュータの基本構成を説明してから、システム全体を説明する。
【００２３】
図１は、ワンチップマルチプロセッサを利用したネットワークコンピュータの基本構成の一例を示す。ネットワークコンピュータ１０は、マルチプロセッサ２０、ＲＦ処理部２９、ＡＤ変換器２８、ブリッジ１９、ネットワークインタフェース１８、不揮発性メモリ２１、ＤＶＤドライバ２２、ＵＳＢ２３、グラフィックスカード２５、メインメモリ１７、アンテナ３１、コントローラ２４、モニタ２７を備える。
【００２４】
マルチプロセッサ２０は、一つのメインプロセッサ１００、複数のサブプロセッサ１０２、Ｉ／Ｏインタフェース１０４、メモリコントローラ１０６を備え、これらがリングバス１０８に接続されてそれぞれが並列的に動作するよう構成される。本実施の形態におけるマルチプロセッサ２０は、サブプロセッサ１０２として６個のプロセッサを含む。各サブプロセッサ１０２は、たとえば「ＳＰＵ０」や「ＳＰＵ１」といったＩＤによってリングバス１０８上で一意に認識され、どのプロセッサがどのプロセッサにリングバス１０８を経由してリクエストを出しているかを特定できるようにされている。
【００２５】
メモリコントローラ１０６は、メインメモリ１７に接続されるとともに、各サブプロセッサ１０２によるメインメモリ１７へのアクセスを仲介する。なお、本実施の形態においては、メインメモリ１７がマルチプロセッサ２０の外部に設けられる例を説明するが、変形例としてはメインメモリ１７がマルチプロセッサ２０の内部に含まれる構成であってもよい。Ｉ／Ｏインタフェース１０４は、各種Ｉ／Ｏデバイスと接続するためのブリッジ１９、グラフィックスカード２５、ワイヤレス通信を処理するＲＦ処理部２９などが接続され、メインプロセッサ１００やサブプロセッサ１０２による外部装置の制御や外部装置との通信を仲介する。
【００２６】
ブリッジ１９には、ネットワークインタフェース１８、不揮発性メモリ２１、ＤＶＤドライバ２２、ＵＳＢ２３が接続される。ネットワークインタフェース１８は、家庭内ＬＡＮやインターネットなどのネットワークとの通信を仲介する。ＵＳＢ２３は、コントローラ２４を介してキーボードなどの周辺機器との接続を仲介する。グラフィックスカード２５は、フレームメモリ２６を含み、モニタ２７へ画像信号を出力する。ＲＦ処理部２９は、ダウンコンバータ３０を含むとともに、ＡＤ変換器２８を介してＩ／Ｏインタフェース１０４に接続される。ＲＦ処理部２９は、アンテナ３１を介して外部とのワイヤレス通信を確立する。
【００２７】
メインプロセッサ１００は、プロセッサコア１１０、Ｌ１キャッシュ１１２、Ｌ２キャッシュ１１４、サブメモリコントローラ１１６を含む。サブメモリコントローラ１１６は、ＤＭＡＣ（Direct Memory Access Controller）１１８を内蔵する。メインプロセッサ１００においてはオペレーティングシステム（以下、「ＯＳ」という。）が動作し、そのＯＳの基本処理に基づいて複数のサブプロセッサ１０２が動作する。
【００２８】
複数のサブプロセッサ１０２は、それぞれプロセッサコア１２０、ローカルメモリ１２２、サブメモリコントローラ１２６を含む。サブメモリコントローラ１２６は、ＤＭＡＣ１２８を内蔵する。複数のサブプロセッサ１０２は、それぞれ固有のローカルメモリ１２２を有するため、目的のプログラムがローカルメモリ１２２にいったんロードされれば、それ以降は必要のない限りメインメモリ１７にアクセスしなくとも目的の処理を継続することができる。また、サブプロセッサ１０２は、割り込みによる処理の中断が発生しない設計となっているため、後述する各種プロセスを高速で実行し、リソースの利用と提供をネットワーク上でリアルタイムに分散処理するのに適している。
【００２９】
サブプロセッサ１０２では、たとえばデバイスドライバやシステムプログラムの一部など、ＯＳの一部をなすプログラムが実行されてもよいし、サブプロセッサ１０２全体を制御する専用のＯＳが動作してもよい。メインプロセッサ１００とサブプロセッサ１０２は、それぞれ異なる命令セットを有する命令セットアーキテクチャ（ＩＳＡ）にて構成される。メインプロセッサ１００では、そのコンピュータに含まれるリソースの使用のみを管理するプログラムが動作するのに対し、サブプロセッサ１０２では、ネットワーク上の他のコンピュータに含まれるリソースの利用や提供を管理する後述のプログラムが動作する。
【００３０】
図２は、本実施の形態におけるネットワークコンピューティングシステムの一例を示す。ネットワークコンピューティングシステム５０には、マルチプロセッサ２０をそれぞれ含むサーバ４１およびサーバ５４、スイッチングネットワーク４２で接続された複数のマルチプロセッサ２０を含むハイパフォーマンスコンピュータ５２、マルチプロセッサ２０を含むパーソナルコンピュータ５３、マルチプロセッサ２０を含む家電品５５、マルチプロセッサ２０以外のプロセッサを含むパーソナルコンピュータ５６がネットワーク５１に接続されるかたちで含まれる。ネットワーク５１は、インターネットであってもよいし、家庭内ネットワークなどのＬＡＮであってもよい。なお、本図におけるネットワークコンピューティングシステム５０の構成は例示にすぎず、そのハードウェア構成およびネットワーク５１への接続台数は任意である。
【００３１】
サーバ４１のマルチプロセッサ２０は、複数のサブプロセッサ１０２と一つのメインプロセッサ１００を含むが、サーバ４１に含まれる各構成は図１のネットワークコンピュータ１０に含まれる各構成と基本的に同じである。サーバ４１では、各サブプロセッサ１０２において、本実施の形態のリアルタイムリソースマネージメントを実行するためのプロセスが動作する。たとえば、リソースマネージャのプログラムが１番目のサブプロセッサ１０２で動作し、リソーススケジューラのプログラムが２番目のサブプロセッサ１０２で動作し、リソースマネージメントクライアントのプログラムが３番目のサブプロセッサ１０２で動作する。変形例としては、リソースマネージャのプログラムがサーバ４１に含まれる複数のサブプロセッサ１０２の一つで動作し、リソーススケジューラのプログラムがサーバ５４に含まれるサブプロセッサ１０２の一つで動作するように構成してもよい。リソースマネージメントクライアントは、ネットワークコンピューティングシステム５０に含まれるすべてのコンピュータで動作してもよい。
【００３２】
クリアリングハウス７７は、各コンピュータによるリソースの利用と提供の状況を記録し、その利用に対する料金の課金を処理する。運用監視サーバ９８は、リソースの利用要求に対する割当の実績や効率を管理する。以下、リソースマネージャ、リソーススケジューラ、リソースマネージメントクライアントの動作について詳述した後で、クリアリングハウス７７と運用監視サーバ９８の動作を詳述する。
【００３３】
（リソースマネージャ）
本実施の形態におけるリソースマネージャは、ネットワーク５１に接続されたいずれかのコンピュータにおけるマルチプロセッサ２０やマルチプロセッサ２０に含まれるサブプロセッサ１０２などのコンピューティングリソースが他のコンピュータへ提供可能か否かを管理するために一つのサブプロセッサ１０２で動作するプロセスである。いずれかのコンピューティングリソースが他のコンピュータへ提供可能な状況になったとき、リソースマネージャはその提供可能なリソースを有するコンピュータからリソース情報をネットワーク５１経由で受信する。
【００３４】
リソースマネージャは、後述するリソーススケジューラと連携して動作する。本実施の形態のリソースマネージャは、リソーススケジューラからリソースの利用要求を受け取り、その要求において指定された分のリソースを割り当てる処理を実行してリソーススケジューラへ返答する。ここで、リソースの利用要求に対して複数のコンピュータに分散したリソースを割り当てる場合、リソースマネージャはそれぞれのコンピュータのスペックに応じて利用要求を分割し、リソーススケジューラに返答する。
【００３５】
リソースマネージャは、提供可能なリソースをリソースタイプで分類するリソース管理テーブルを有する。リソースマネージャは、たとえばリソースタイプごとの割当可能リソース数であるリソースカウンタの値を、リソース割当を実行するたびに減算する。これにより、特定のコンピュータ上の複数のリソースが同時に割り当てられたり、同じコンピュータ上のリソースばかりが何度も割り当てられたりすることを回避でき、特定のコンピュータへの集中的な負担を抑制することができる。
【００３６】
リソースマネージャは、リソースの利用要求に対してリソースを割り当てることができない場合、割当不可を示す応答をリソーススケジューラに返す。変形例においては、リソースマネージャは、同一または異なるサーバ上のサブプロセッサで動作する少なくとも一部のリソースマネージャを管理するマネージャ管理テーブルを保持する。リソースマネージャは、リソース管理テーブルで管理するリソースの量を示すリソース量情報を生成し、マネージャ管理テーブルで管理する他のリソースマネージャとの間で互いのリソース量情報を定期的に交換する。リソースマネージャは、マネージャ管理テーブルを参照し、より多くの利用可能リソースを管理しているリソースマネージャを選択し、選択したリソースマネージャの識別情報を、対応するリソーススケジューラに返す。
【００３７】
（リソーススケジューラ）
本実施の形態におけるリソーススケジューラは、一つのサブプロセッサを占有して実行されるプロセスである。リソーススケジューラは、ネットワーク５１に接続されたいずれかのコンピュータからリソースの利用要求を受信すると、その利用要求をリソースマネージャに非同期で送信する。リソーススケジューラは、送信した利用要求に対してリソースが割り当てられるのを待つとともに、リソースマネージャによってリソースが割り当てられた後、その割り当てられたリソースを保有するコンピュータに対して利用要求を転送する。リソースを保有するコンピュータが複数に分かれる場合、リソースマネージャが利用要求を複数に分割し、これら分割された利用要求をそれぞれ該当するコンピュータに対してリソーススケジューラが転送する。スケジューリングキューは、リソーススケジューラの動作するサブプロセッサ１０２内のローカルメモリ１２２に保持されることが望ましいが、メインメモリ１７に保持されてもよい。
【００３８】
リソーススケジューラのスケジューリングアルゴリズムとしては、当業者が知りうるあらゆるスケジューリング方法を採用可能であり、たとえば利用要求を到着順に処理するＦＩＦＯ型のスケジューリングを採用してもよい。ＦＩＦＯ型のスケジューリングにおいては、リソースの利用要求に対してリソースマネージャがリソースを割り当てられなかった場合に、利用要求を発したコンピュータにその利用要求が特定できるようなかたちで割当不可を示す情報を送信する。また、別のスケジューリング方法としては、リソースマネージャが、対応するリソースマネージャから別のリソースマネージャの識別情報を受信していればそのリソースマネージャに利用要求を非同期で送信し、その利用要求に対する返答があった場合にはその割り当てにしたがってリソースを保有するコンピュータに利用要求を送信してもよい。さらに別のスケジューリング方法としては、優先度に基づいて利用要求を処理する方法を採用してもよい。この場合、リソース制約がより多く含まれる利用要求を優先的に処理する。逆に、リソース制約がより少ない利用要求を優先的に処理してもよい。あるいは、利用要求に優先度を付加し、その優先度に高さに応じて処理順序を決定してもよい。この場合、優先度に応じたスケジューリングキューを持つようにしてもよい。
【００３９】
（リソースマネージメントクライアント）
本実施の形態におけるリソースマネージメントクライアントは、本実施の形態におけるネットワークコンピューティングシステムに含まれる各コンピュータ上でクライアントとして動作するプロセスである。リソースマネージメントクライアントは、たとえば以下の少なくとも３つの役割を持つ。
【００４０】
（１）リソースマネージメントクライアントは、自己が管理するマルチプロセッサ２０において外部提供が可能なリソースが発生したときに、提供が可能であるリソースの内容を示す提供リソース情報をいずれかのリソースマネージャに対して送信する。リソースマネージメントクライアントが複数のマルチプロセッサを管理している場合も同様である。たとえば、図２のハイパフォーマンスコンピュータ５２においては、ネットワークインタフェースＮＩＣにつながったマルチプロセッサでのみリソースマネージメントクライアントを動作させ、スイッチングネットワーク４２に接続されたすべてのマルチプロセッサのリソースを管理してもよい。
【００４１】
（２）リソースマネージメントクライアントの動作するコンピュータ上でリソース不足が生じた場合、リソースマネージメントクライアントはネットワーク５１上のいずれかのリソーススケジューラに対して利用要求を送信する。
【００４２】
（３）リソースマネージメントクライアントは、他のコンピュータからの利用要求を受信したとき、その利用要求を送信したコンピュータに対して自己が管理するマルチプロセッサ２０に含まれるリソースを割り当てる。
【００４３】
図２のパーソナルコンピュータ５６のようにマルチプロセッサ２０以外のプロセッサを内蔵するコンピュータにおいては、上記（１）と（３）の役割を省略した簡易版リソースマネージメントクライアントを動作させ、マルチプロセッサ２０を内蔵したコンピュータが複数接続されたネットワーク５１上で利用要求を出すことによって、マルチプロセッサ２０を内蔵したコンピュータに処理を代行させる。
【００４４】
図３〜５には、リソースマネージャ、リソーススケジューラ、リソースマネージメントクライアントの３つのプロセスが１以上のマルチプロセッササーバ上に配置される例がそれぞれ示される。
【００４５】
図３は、一つのマルチプロセッサ２０を含むサーバ６０において、リソースマネージャとリソーススケジューラがそれぞれ動作する例を示す。本図の例では、マルチプロセッサ２０に含まれる二つのサブプロセッサ１０２のうち、「ＳＰＵ１」のＩＤが付与されたサブプロセッサ１０２においてリソースマネージャ２０２が動作し、「ＳＰＵ２」のＩＤが付与されたサブプロセッサ１０２においてリソーススケジューラ２０６が動作する。
【００４６】
図４は、高速ネットワークまたは高速バスで結合された二つのマルチプロセッサ２０を含むサーバ６２において、リソースマネージャとリソーススケジューラがそれぞれ動作する例を示す。本図の例では、二つのマルチプロセッサ２０にまたがるように二つのサブプロセッサ１０２が選択され、それぞれでリソースマネージャ２０２とリソーススケジューラ２０６が動作する。すなわち、一方のマルチプロセッサ２０に含まれる「ＳＰＵ１」のＩＤが付与されたサブプロセッサ１０２においてリソースマネージャ２０２が動作し、他方のマルチプロセッサ２０に含まれる「ＳＰＵ２」のＩＤが付与されたサブプロセッサ１０２においてリソーススケジューラ２０６が動作する。二つのマルチプロセッサ２０は、高速バスまたは高速ネットワークで結合される。
【００４７】
図５は、ネットワーク５１上に分散された二つのサーバ６４，６６のそれぞれにおけるサブプロセッサ１０２上で、リソースマネージャとリソーススケジューラが動作する例を示す。本図の例では、二つのサーバ６４，６６にまたがるように二つのサブプロセッサ１０２が選択され、それぞれでリソースマネージャ２０２とリソーススケジューラ２０６が動作する。すなわち、一方のサーバ６４のマルチプロセッサ２０に含まれる「ＳＰＵ２」のＩＤが付与されたサブプロセッサ１０２においてリソースマネージャ２０２が動作し、他方のサーバ６６のマルチプロセッサ２０に含まれる「ＳＰＵ３」のＩＤが付与されたサブプロセッサ１０２においてリソーススケジューラ２０６が動作する。
【００４８】
以上説明した図３〜５の各例を比較すると、通信効率の高さは図３、図４、図５の順に高くなる。本実施の形態では、リソースマネージャ２０２とリソーススケジューラ２０６が本質的に非同期で独立して動作するため、図３〜図５のいずれの形態でも基本原理を変えることなく動作させることができる。
【００４９】
図６は、リソーススケジューラ、リソースマネージャ、リソースマネージメントクライアントの３つのプロセスにおける処理手順を示す。本図ではクリアリングハウス７７が一つだけ示されるが、変形例としてネットワーク５１内に複数のクリアリングハウス７７が含まれてもよい。
【００５０】
（リソースマネージメントクライアントの認証）
クリアリングハウス７７は、認証したリソースマネージメントクライアント２００からの情報のみ受理し、虚偽の情報の受理を拒否する。リソースマネージメントクライアント２００の認証は、リソースマネージメントクライアント２００が所定のクリアリングハウス７７へ最初にアクセスしたときに実行される。この認証処理では、リソースマネージメントクライアント２００が、正規に作られたソフトウェアであることを証明するための証明書またはリソースマネージメントクライアントＩＤをクリアリングハウス７７に送信する。この証明書がクリアリングハウス７７によって正しく認証された場合、そのリソースマネージメントクライアント２００に対して電子署名が送られる。その認証されたリソースマネージメントクライアント２００は、クリアリングハウス７７と通信する場合に電子署名が添付されたメッセージを送信する。
【００５１】
（リソース提供者の登録）
リソースの提供者は、提供設定インタフェース２２０を通じて、そのコンピュータのリソースの一部または全部を他のコンピュータに対して提供するかどうかを設定する。提供設定インタフェース２２０は、リソースマネージメントクライアント２００と一体的に構成されてもよいし、リソースマネージメントクライアント２００と分離したソフトウェアとして構成されてもよい。提供設定インタフェース２２０は、提供するリソースが他のコンピュータによって利用された場合に支払われる配当金の評価額を計算し、コンピュータの画面に表示する。リソース提供者は、表示された評価額を確認した上で、サブプロセッサ数、マルチプロセッサ数、メモリ容量、提供時間などのリソース提供量を提供設定インタフェース２２０を通じて設定する。リソース提供者のコンピュータで動作するリソースマネージメントクライアント２００ａの提供設定インタフェース２２０は、設定されたリソース提供内容、コンピュータの識別情報、および提供者の個人情報を含んだ提供リソース情報をネットワーク５１経由でクリアリングハウス７７に転送する（Ｓ２）。コンピュータの識別情報は、たとえばネットワーク５１においてそのコンピュータに付与されたＩＰアドレスである。提供者の個人情報は、たとえば提供者の氏名、電話番号や電子メールアドレスなどの連絡先情報、口座番号やクレジットカード番号など、提供者の特定に必要な情報やその提供者への利用料金支払いに必要な情報である。コンピュータとクリアリングハウス７７の間の通信はセキュアに保たれることが望ましい。クリアリングハウス７７は、提供設定インタフェース２２０から受け取った情報を、管理するリソースの提供元を示す提供元リスト２２２に書き込む。
【００５２】
（リソース利用者の登録）
リソースの利用希望者は、クリアリングハウス７７との間であらかじめ利用契約を結ぶ設定を利用設定インタフェース２２４を通じて入力する。利用設定インタフェース２２４は、リソースマネージメントクライアント２００と一体的に構成されてもよいし、リソースマネージメントクライアント２００と分離したソフトウェアとして構成されてもよい。リソースの利用希望者は、そのコンピュータで動作するリソースマネージメントクライアント２００ｂを介してあらかじめ利用設定インタフェース２２４を通じてクリアリングハウス７７との間で利用契約を結ぶ。利用契約として、利用者の氏名、電話番号や電子メールアドレスなどの連絡先情報、口座番号やクレジットカード番号など、利用者の特定に必要な情報やその利用者への利用料金の課金に必要な情報をクリアリングハウス７７に登録する（Ｓ４）。これらの情報がクリアリングハウス７７に登録されると、クリアリングハウス７７は、リソース利用者を一意に特定して認証するための電子署名をリソース利用者のコンピュータに送る。
【００５３】
（リソースの提供と利用の手順）
まず、提供可能な遊休リソースが発生したコンピュータのリソースマネージメントクライアント２００ａは、選択したリソースマネージャ２０２に対して遊休リソースを登録するための提供リソース情報を送信する（Ｓ１０）。
【００５４】
サブプロセッサの個数不足などのリソース不足を検出したコンピュータのリソースマネージメントクライアント２００ｂは、他のコンピュータにおける遊休リソースの利用を要求するために、選択するリソーススケジューラ２０６に利用要求を出し（Ｓ１２）、その利用要求がリソーススケジューラ２０６のリクエストキュー２０８に入れられる。この利用要求を送信する際、リソースマネージメントクライアント２００ｂは、リソース利用者の電子署名が格納されているストレージエリアから電子署名を読み出し、利用要求とともにリソーススケジューラ２０６へ送信する。本図の例では、ＦＩＦＯキューのかたちでリクエストキュー２０８が実装される。なお、リソーススケジューラ２０６はサブプロセッサ１０２を占有して処理が実行されるが、リクエストキュー２０８は、サブプロセッサ１０２内のローカルメモリ１２２にあってもよいし、またはメインメモリ１７にあってもよい。
【００５５】
リソーススケジューラ２０６は、リクエストキュー２０８の先頭から利用要求を取り出し、対応するリソースマネージャ２０２に対して利用要求を非同期で送信する（Ｓ１４）。すなわち、リソーススケジューラ２０６は、この利用要求に対するリソースマネージャ２０２の返答を待たず、このとき割当リソースキュー２１０が空であれば次の利用要求をリクエストキュー２０８から取り出して処理し、割当リソースキュー２１０が空でなければＳ１６へ進む。なお、リソーススケジューラ２０６は、サブプロセッサ１０２を占有してその処理が実行されるが、割当リソースキュー２１０は、サブプロセッサ１０２内のローカルメモリ１２２にあってもよいし、またはメインメモリ１７にあってもよい。リソースマネージャ２０２は、リソーススケジューラ２０６から受信した利用要求をリクエストキュー２１２に追加する。
【００５６】
リソースマネージャ２０２は、リクエストキュー２１２の先頭から利用要求を取り出し、管理されている遊休リソースから適切なリソースを選択して割り当て、その割当の結果を示すリソース割当情報を利用要求の送信元であるリソーススケジューラ２０６へ返信する（Ｓ１６）。このリソース割当情報は、元の利用要求が分割されて形成される複数の利用要求パケットであり、割り当てられたリソースのコンピュータをそれぞれの宛先とする。これら複数の利用要求パケットは割当リソースキュー２１０に入る。なお、リソースマネージャ２０２は、サブプロセッサ１０２を占有して処理が実行されるが、リクエストキュー２１２は、サブプロセッサ１０２内のローカルメモリ１２２にあってもよいし、またはメインメモリ１７にあってもよい。
【００５７】
リソーススケジューラ２０６は、割当リソースキュー２１０が空でなければその先頭から利用要求パケットを取り出し、割り当てがなされた遊休リソースを保有するコンピュータのリソースマネージメントクライアント２００ａに対して利用要求パケットを転送する（Ｓ１８）。利用要求パケットを受信したリソースを提供するコンピュータにおいては、そのリソースマネージメントクライアント２００ａが利用要求に対応するリソースを割り当て、要求された処理を実行する。
【００５８】
リソースマネージメントクライアント２００ｂは、リソーススケジューラ２０６によって要求された処理が成功裏に完了した場合、クリアリングハウス７７に対して、利用要求および利用要求の送信先コンピュータを識別できる情報を送信する。利用要求を受信したクリアリングハウス７７は、利用要求で割り当てられたリソース量に応じて、利用要求に含まれるリソース利用者の電子署名から特定されるユーザに対して利用料金を課金する処理を実行する。一方、利用要求が送信されたコンピュータの識別情報によって特定されるリソース提供者の個人情報から口座番号またはクレジットカード番号を取り出し、これらの情報によって特定される口座に対して、利用要求によって割り当てられたリソース量に応じて決められた利用料金を支払う指示を出す。ここで、利用されたリソースの提供者に支払われる利用料金の額は、リソースの利用者に対して課金された利用料金の額を超えないように設定される。
【００５９】
（リソース割当実績に応じたリソースマネージャの選択）
図７は、運用監視サーバ９８の仲介によりリソースマネージメントクライアント２００がリソース割当実績に応じてリソースマネージャ２０２を選択する仕組みを説明する図である。運用監視サーバ９８は、ネットワーク５１に接続されたサーバのサブプロセッサで動作する１以上のリソースマネージャ２０２から一定時間ごとにリソース割当実績２３０を受信し（Ｓ５０）、そのリソース割当実績２３０を管理する。一定時間ごとのリソース割当実績２３０は、たとえば一定時間ごとに受信した利用要求数や、一定時間ごとに割当が成功したリソース量を含む。本図の例では、コンピュータＡからは一定時間内の利用要求数が６０回であったことを示すリソース割当実績２３０が送られ、コンピュータＢからは一定時間内の利用要求数が１５０回であったことを示すリソース割当実績２３０が送られ、コンピュータＣからは利用要求数が一定時間内の８０回であったことを示すリソース割当実績２３０が送られる。リソースマネージメントクライアント２００は、運用監視サーバ９８から各コンピュータのリソース割当実績２３０を受信し（Ｓ５２）、リソース運用効率がより高いリソースマネージャを選択するためにリソース割当実績を参照する。
【００６０】
リソースの提供者は、リソースの被使用量に応じて使用料金の配当を受け、他者の利用のために提供した遊休リソースがより多く使用されれば、より多くの配当を受け取ることができる。よって、リソース提供者により多くの配当金をもたらすことができるように、より高いリソース割当実績を持つリソースマネージャ２０２のいずれかを選択し、リソース割当実績の変化に応じてリソースマネージャ２０２の選択を切り換える（Ｓ５４）。
【００６１】
リソースマネージメントクライアント２００は、リソースマネージャ２０２をリソース割当実績に応じて自動的に変更してもよいし、リソース提供者による明示的な指示に基づいて変更してもよい。リソース提供者による明示的な指示に基づいて変更する場合、リソースマネージメントクライアント２００は、利用可能なリソースマネージャのＩＤとそのリソース割当実績２３０とを含むリストをリソース提供者に提示した上で、リソース提供者による明示的な選択指示を受け取る。
【００６２】
（スケジューリング効率実績に応じたリソーススケジューラの選択）
図８は、運用監視サーバ９８の仲介によりリソースマネージメントクライアント２００がスケジューリング効率実績に応じてリソーススケジューラ２０６を選択する仕組みを説明する図である。運用監視サーバ９８は、ネットワーク５１に接続されたサーバのサブプロセッサで動作する１以上のリソーススケジューラ２０６から一定時間ごとにスケジュール効率実績２４０を受信し（Ｓ６０）、そのスケジュール効率実績２４０を管理する。スケジュール効率実績２４０は、スケジューリングにおいて利用要求を出してからリソースが割り当てられるまでの平均待ち時間であってもよいし、リクエスト割当成功率であってもよい。リソースマネージメントクライアント２００は、運用監視サーバ９８から各コンピュータのスケジュール効率実績２４０を受信し（Ｓ６２）、スケジュール効率がより高いリソーススケジューラ２０６を選択するためにスケジュール効率実績２４０を参照する。
【００６３】
リソースの利用者は、より継続的にリソースが割り当てられることを望むものである。よって、リソース利用者により効率よくリソースが割り当てられるようにするため、より高いスケジュール効率実績を持つリソーススケジューラ２０６のいずれかを選択し、スケジュール効率実績の変化に応じてリソーススケジューラ２０６の選択を切り換える（Ｓ６４）。
【００６４】
リソースマネージメントクライアント２００は、リソーススケジューラ２０６をスケジュール効率実績に応じて自動的に変更してもよいし、リソース利用者による明示的な指示に基づいて変更してもよい。リソース利用者による明示的な指示に基づいて変更する場合、リソースマネージメントクライアント２００は、利用可能なリソーススケジューラのＩＤとそのスケジュール効率実績２４０とを含むリストをリソース利用者に提示した上で、リソース利用者による明示的な選択指示を受け取る。
【００６５】
（第２の実施の形態）
本実施の形態においては、リソースと所定のポイントを交換することによりリソースの利用者と提供者の間で利用の対価を精算する点で第１の実施の形態と異なる。すなわち、本実施の形態においては、リソースの提供者に対してポイントを付与し、そのポイントを使用して他のリソースを利用することができ、こうしたポイントを用いることによって実質的にリソースの交換を実現することができる。ここでいう「ポイント」は、リソース利用の対価を支払うときの仮想的な通貨としての役割を果たし、リソース量に換算することができる。また、ここでいう「リソース量」は、サブプロセッサ数、メモリ容量、周辺機器・ＷｉＦｉデバイスドライバなどのデバイスといったハードウェア資源の量のみならず、ＷｉＦｉデバイスドライバ占有時間などのリソース使用時間の概念も含まれる。
【００６６】
図９は、第２の実施の形態におけるリソーススケジューラ、リソースマネージャ、リソースマネージメントクライアントの３つのプロセスにおける処理手順を示す。以下、第１の実施の形態との相違点を中心に説明し、共通点については説明を省略する。
【００６７】
（ポイント口座の登録）
リソースの提供者および利用者となるコンピュータの所有者は、口座設定インタフェース２２６を通じて、リソース交換用のポイント口座をあらかじめ開設することにより、クリアリングハウス７７との間で利用契約を結ぶ。口座設定インタフェース２２６は、利用契約に必要な情報として、コンピュータの識別情報と、所有者の個人情報とをネットワーク５１経由でクリアリングハウス７７に転送する。所有者の個人情報は、たとえば所有者の氏名、電話番号や電子メールアドレスなどの連絡先情報、ポイント口座の識別情報など、その所有者の特定に必要な情報やその所有者へのリソース交換ポイント付与に必要な情報である。コンピュータとクリアリングハウス７７の間の通信はセキュアに保たれることが望ましい。クリアリングハウス７７は、リソース設定インタフェースから受け取った情報を、管理するリソースの提供元を示す提供元リスト２２２に書き込む。クリアリングハウス７７は、ポイント口座を開設したコンピュータに対し、その所有者を一意に特定して認証するための電子署名を送信する。クリアリングハウス７７は、ポイント口座をはじめとする所有者の個人情報を電子署名によって特定する。ポイント口座は、クリアリングハウス７７内に置かれてもよいし、ネットワーク５１内の別のサーバに置かれてもよい。ただし、クリアリングハウス７７とは別のサーバに置かれる場合、クリアリングハウス７７がそのサーバに直接アクセスできるようにする必要がある。
【００６８】
（リソース提供者の登録）
リソースの提供者は、提供設定インタフェース２２０を通じて、そのコンピュータのリソースの一部または全部を他のコンピュータに対して提供するかどうかを設定する。本実施の形態における提供設定インタフェース２２０は、提供するリソースが他のコンピュータによって利用された場合、後にそのコンピュータが他のコンピュータのリソースを利用する際に使用できるリソース交換ポイントの評価額を計算し、コンピュータ画面に表示する。また、本実施の形態における提供リソース情報は、提供設定インタフェース２２０からクリアリングハウス７７へ電子署名とともに転送され、クリアリングハウス７７において提供元リスト２２２に書き込まれる。
【００６９】
（リソース利用者の登録）
リソースの利用希望者は、リソースと交換できるポイントを自己のポイント口座にあらかじめ保有する必要がある。
【００７０】
サブプロセッサの個数不足などのリソース不足を検出したコンピュータで動作するリソースマネージメントクライアント２００ｂは、不足リソースとの交換に十分なポイントを有しているか否かをポイント口座で確認する。その上で、十分なポイントを有していた場合には、リソーススケジューラ２０６に利用要求を送信する。利用要求を送信する際、リソースマネージメントクライアント２００ｂは、所定のストレージエリアから電子署名を読み出し、これを利用要求とともにリソーススケジューラ２０６へ送信する。
【００７１】
リソースマネージメントクライアント２００ｂは、リソーススケジューラ２０６によって要求された処理が成功裏に完了した場合、クリアリングハウス７７に対して、利用要求および利用要求の送信先コンピュータを識別できる情報を送信する。利用要求を受信したクリアリングハウス７７は、利用要求で割り当てられたリソース量に応じて、利用要求に含まれる電子署名から利用者を特定し、その利用者のポイント口座からポイントを差し引く。一方、利用要求の送信先コンピュータの識別情報によって特定されるリソース提供者の個人情報からポイント口座の識別情報を取り出し、このポイント口座に対して、利用要求によって割り当てられたリソース量に応じて決められた額のポイントを加算する指示を出す。ここで、利用されたリソースの提供者に対して加算されるリソース交換ポイントは、リソースの利用者から減算されたリソース交換ポイントを超えないように設定するのが好ましい。
【００７２】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、そうした変形例を挙げる。
【００７３】
第１および第２の実施の形態においては、ネットワークコンピュータ１０が搭載するマルチプロセッサ２０として非対称型に構成されたマルチプロセッサを例示した。変形例においては、対称型のマルチプロセッサをネットワークコンピュータ１０に搭載させた構成を採用してもよい。
【００７４】
図１０は、第１の変形例におけるワンチップマルチプロセッサの構成を示す。本図に示すマルチプロセッサ３００は、図１におけるマルチプロセッサ２０の代わりにネットワークコンピュータ１０へ搭載される。マルチプロセッサ３００は、第１プロセッサ３０２、第２プロセッサ３０４、第１Ｌ１キャッシュ３０６、第２Ｌ１キャッシュ３０８、第１Ｌ２キャッシュ３１０、第２Ｌ２キャッシュ３１２、メモリコントローラ３１４を有する。第１プロセッサ３０２、第１Ｌ１キャッシュ３０６、第１Ｌ２キャッシュ３１０、メモリコントローラ３１４は、互いに接続されて図１のメインプロセッサ１００またはサブプロセッサ１０２に代わるプロセッサユニットとして動作する。同様に、第２プロセッサ３０４、第２Ｌ１キャッシュ３０８、第２Ｌ２キャッシュ３１２、メモリコントローラ３１４もまた、互いに接続されて図１のメインプロセッサ１００またはサブプロセッサ１０２に代わるプロセッサユニットとして動作する。ただし、メモリコントローラ３１４はマルチプロセッサ３００に一つだけ搭載され、第１プロセッサ３０２のユニットと第２プロセッサ３０４のユニットで共用される。第１プロセッサ３０２と第２プロセッサ３０４は互いに接続されている。
【００７５】
本図のとおり、第１プロセッサ３０２、第１Ｌ１キャッシュ３０６、第１Ｌ２キャッシュ３１０と、第２プロセッサ３０４、第２Ｌ１キャッシュ３０８、第２Ｌ２キャッシュ３１２とが、メモリコントローラ３１４を介して対称的に構成されている。第１プロセッサ３０２および第２プロセッサ３０４のうち、一方のプロセッサが他方のプロセッサにタスクを割り当てるようなメインとサブの関係で動作してもよい。
【００７６】
図１１は、第２の変形例におけるワンチップマルチプロセッサの構成を示す。本図に示すマルチプロセッサ３２０もまた、図１におけるマルチプロセッサ２０の代わりにネットワークコンピュータ１０へ搭載される。マルチプロセッサ３２０は、第１プロセッサ３２２、第２プロセッサ３２４、第１Ｌ１キャッシュ３２６、第２Ｌ１キャッシュ３２８、Ｌ２キャッシュ３３０、メモリコントローラ３３２を有する。第１プロセッサ３２２、第１Ｌ１キャッシュ３２６、Ｌ２キャッシュ３３０、メモリコントローラ３３２は、互いに接続されて図１のメインプロセッサ１００またはサブプロセッサ１０２に代わるプロセッサユニットとして動作する。同様に、第２プロセッサ３２４、第２Ｌ１キャッシュ３２８、Ｌ２キャッシュ３３０、メモリコントローラ３３２もまた、接続されて図１のメインプロセッサ１００またはサブプロセッサ１０２に代わるプロセッサユニットとして動作する。ただし、Ｌ２キャッシュ３３０とメモリコントローラ３３２は、それぞれマルチプロセッサ３２０に一つずつだけ搭載され、第１プロセッサ３２２のユニットと第２プロセッサ３２４のユニットで共用される。第１プロセッサ３２２、第２プロセッサ３２４は互いに接続されている。
【００７７】
本図のとおり、第１プロセッサ３２２、第１Ｌ１キャッシュ３２６と、第２プロセッサ３２４、第２Ｌ１キャッシュ３２８とが、Ｌ２キャッシュ３３０とメモリコントローラ３３２を介して対称的に構成されている。第１プロセッサ３２２と第２プロセッサ３２４のうち、一方のプロセッサが他方のプロセッサにタスクを割り当てるようなメインとサブの関係で動作してもよい。
【００７８】
なお、図１０および図１１では、対称型のマルチプロセッサとして二つのプロセッサを有する構成を例示したが、それ以上の数のプロセッサ、たとえば４個以上のプロセッサを有する構成であってもよい。
【図面の簡単な説明】
【００７９】
【図１】ワンチップマルチプロセッサを利用したネットワークコンピュータの基本構成の一例を示す図である。
【図２】本実施の形態におけるネットワークコンピューティングシステムの一例を示す図である。
【図３】一つのマルチプロセッサを含むサーバにおいて、リソースマネージャとリソーススケジューラがそれぞれ動作する例を示す図である。
【図４】高速ネットワークまたは高速バスで結合された二つのマルチプロセッサを含むサーバにおいて、リソースマネージャとリソーススケジューラがそれぞれ動作する例を示す図である。
【図５】ネットワーク上に分散された二つのサーバのそれぞれにおけるサブプロセッサ上で、リソースマネージャとリソーススケジューラが動作する例を示す図である。
【図６】リソーススケジューラ、リソースマネージャ、リソースマネージメントクライアントの３つのプロセスにおける処理手順を示す図である。
【図７】運用監視サーバの仲介によりリソースマネージメントクライアントがリソース割当実績に応じてリソースマネージャを選択する仕組みを説明する図である。
【図８】運用監視サーバの仲介によりリソースマネージメントクライアントがスケジューリング効率実績に応じてリソースマネージャを選択する仕組みを説明する図である。
【図９】第２の実施の形態におけるリソーススケジューラ、リソースマネージャ、リソースマネージメントクライアントの３つのプロセスにおける処理手順を示す図である。
【図１０】第１の変形例におけるワンチップマルチプロセッサの構成を示す図である。
【図１１】第２の変形例におけるワンチップマルチプロセッサの構成を示す図である。
【符号の説明】
【００８０】
２０  マルチプロセッサ、  ４１  サーバ、  ５０  ネットワークコンピューティングシステム、  ５１  ネットワーク、  ５４  サーバ、  ６０  サーバ、  ６２  サーバ、  ６４  サーバ、  ６６  サーバ、  １０２  サブプロセッサ、  １２２  ローカルメモリ、  ２０２  リソースマネージャ、  ２０６  リソーススケジューラ。
【図１】
2007264885.tif 000003
【図２】
2007264885.tif 000004
【図３】
2007264885.tif 000005
【図４】
2007264885.tif 000006
【図５】
2007264885.tif 000007
【図６】
2007264885.tif 000008
【図７】
2007264885.tif 000009
【図８】
2007264885.tif 000010
【図９】
2007264885.tif 000011
【図１０】
2007264885.tif 000012
【図１１】
2007264885.tif 000013