(57)【特許請求の範囲】
【請求項１】
自然エネルギーに由来する電力を利用して演算を実行する演算装置から、当該演算装置が設置された地域の気象情報に基づいて予測される当該演算装置の演算能力を示す能力情報を取得する能力情報取得部と、
前記能力情報取得部により複数の前記演算装置から取得された能力情報に基づいて当該複数の演算装置に演算タスクを割り当てるタスク管理部と、
を備える、
タスク管理装置。
【請求項２】
前記演算装置が設置された地域の気象情報に基づいて当該演算装置の演算能力を予測する演算能力予測部と、
前記能力情報取得部により取得された能力情報に示された演算能力と、前記演算能力予測部により予測された演算能力とを比較して、当該能力情報の正当性について検証する演算能力検証部と、
をさらに備え、
前記タスク管理部は、前記演算能力検証部により正当性が確認された能力情報に対応する前記演算装置に演算タスクを割り当てる、
請求項１に記載のタスク管理装置。
【請求項３】
自然エネルギーに由来する電力を利用して演算を実行する演算装置の演算能力を当該演算装置が設置された地域の気象情報から予測する演算能力予測部と、
複数の前記演算装置について前記演算能力予測部により予測された演算能力に基づき、当該複数の演算装置に演算タスクを割り当てるタスク管理部と、
を備える、
タスク管理装置。
【請求項４】
前記タスク管理部により演算タスクが割り当てられた演算装置に対して当該演算タスクの実行を依頼する実行依頼部と、
前記実行依頼部による演算タスクの依頼を受けた演算装置から、当該演算タスクの実行結果を取得する結果取得部と、
前記演算能力予測部により予測された演算能力の情報に基づいて前記結果取得部により取得された実行結果の不正を検出する不正検出部と、
をさらに備える、
請求項２又は３に記載のタスク管理装置。
【請求項５】
前記不正検出部は、前記演算能力予測部により予測された演算能力で前記演算タスクを実行した場合に当該演算タスクの完了までに要する時間Ｔ１と、前記実行依頼部による実行の依頼から前記結果取得部による実行結果の取得までに要した時間Ｔ２とを比較し、Ｔ２＜Ｔ１の場合に、前記結果取得部により取得された実行結果を不正であると判断する、
請求項４に記載のタスク管理装置。
【請求項６】
前記実行依頼部により演算タスクの実行を依頼した演算装置が蓄電池に接続されている場合、前記不正検出部は、前記蓄電池が満充電の状態における当該演算装置の演算能力及び前記演算能力予測部により予測された演算能力を利用して前記演算タスクを実行した場合に当該演算タスクの完了までに要する時間Ｔ３と、前記実行依頼部による実行の依頼から前記結果取得部による実行結果の取得までに要した時間Ｔ２とを比較し、Ｔ２＜Ｔ３の場合に、前記結果取得部により取得された実行結果を不正であると判断する、
請求項５に記載のタスク管理装置。
【請求項７】
タスク管理装置が、
自然エネルギーに由来する電力を利用して演算を実行する演算装置から、当該演算装置が設置された地域の気象情報に基づいて予測される当該演算装置の演算能力を示す能力情報を取得する能力情報取得ステップと、
前記能力情報取得ステップで複数の前記演算装置から取得された能力情報に基づいて当該複数の演算装置に演算タスクを割り当てるタスク管理ステップと、
を含む、
タスク管理方法。
【請求項８】
タスク管理装置が、
自然エネルギーに由来する電力を利用して演算を実行する演算装置の演算能力を当該演算装置が設置された地域の気象情報から予測する演算能力予測ステップと、
複数の前記演算装置について前記演算能力予測ステップで予測された演算能力に基づき、当該複数の演算装置に演算タスクを割り当てるタスク管理ステップと、
を含む、
タスク管理方法。
【請求項９】
自然エネルギーに由来する電力を利用して演算を実行する演算装置から、当該演算装置が設置された地域の気象情報に基づいて予測される当該演算装置の演算能力を示す能力情報を取得する能力情報取得機能と、
前記能力情報取得機能により複数の前記演算装置から取得された能力情報に基づいて当該複数の演算装置に演算タスクを割り当てるタスク管理機能と、
をコンピュータに実現させるためのプログラム。
【請求項１０】
自然エネルギーに由来する電力を利用して演算を実行する演算装置の演算能力を当該演算装置が設置された地域の気象情報から予測する演算能力予測機能と、
複数の前記演算装置について前記演算能力予測機能により予測された演算能力に基づき、当該複数の演算装置に演算タスクを割り当てるタスク管理機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク管理装置、タスク管理方法、及びプログラムに関する。
【背景技術】
【０００２】
石油や石炭などの枯渇性エネルギーの有限性が叫ばれる中、太陽光や風力などの自然エネルギーを利用した発電に大きな注目が集まっている。例えば、枯渇性エネルギーを利用して発電する発電所を代替するために、太陽光を利用して発電する太陽光発電所や、風力を利用して発電する風力発電所などが各地で建設されている。また、自然環境の保護に関する一般市民の関心の高まりに伴い、一般家庭にも太陽光発電設備などの発電設備が普及しつつある。さらに、自然エネルギーを有効利用する方法（例えば、下記の特許文献１を参照）や、自然エネルギーに由来する電力を有効に利用する方法（例えば、下記の特許文献２を参照）など、自然エネルギーの様々な利用方法にも目が向けられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２５５９６３号公報
【特許文献２】特開２０１０−１１９２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、自然エネルギーの多くは、その供給量が気象条件に応じて変動してしまう。例えば、雨の日は日照時間が短くなる。また、凪の間は風力がほぼ０になる。このような気象条件になると、太陽光発電や風力発電によりほとんど電力が得られなくなる。この場合、自然エネルギーに由来する電力を利用して動作する電子機器は動作の停止を余儀なくされてしまう。また、動作が完全に停止せずとも、電力の供給量が少ないために、電子機器の処理能力が低下してしまうことも考えられる。このように、自然エネルギーに由来する電力を利用して動作する電子機器においては、予期しないタイミングで動作の停止や処理能力の低下が生じてしまうことがある。
【０００５】
そのため、このような電子機器を利用する際には、実行すべき処理を確実に完了させることが可能なタイミングで電子機器に処理を実行させることが必要になる。いま、自然エネルギーに由来する電力を利用して動作する複数の演算装置を利用して分散コンピューティングを実現するシステムについて考えてみたい。上記の電子機器と同様、このシステムに含まれる各演算装置は、予期しないタイミングで動作の停止や処理能力の低下が生じうる。しかし、一部の演算装置において動作の停止や処理能力の低下が生じると、システム全体のパフォーマンスが大きく低下してしまう。このようなパフォーマンスの低下を引き起こさないためには、演算実行時における各演算装置の演算能力に応じて演算タスクの割り当て方法を工夫する必要がある。
【０００６】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、自然エネルギーに由来する電力を利用して演算を実行する演算装置が演算実行時に有する演算能力を考慮して適当な演算タスクを割り当てることが可能な、新規かつ改良されたタスク管理装置、タスク管理方法、及びプログラムを提供することにある。なお、ここで言う演算能力とは、例えば、演算タスクの実行が依頼された時点から所定時間内に、自然エネルギーに由来する電力を利用して完了させることが可能な演算量を意味する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある観点によれば、自然エネルギーに由来する電力を利用して演算を実行する演算装置から、当該演算装置が設置された地域の気象情報に基づいて予測される当該演算装置の演算能力を示す能力情報を取得する能力情報取得部と、前記能力情報取得部により複数の前記演算装置から取得された能力情報に基づいて当該複数の演算装置に演算タスクを割り当てるタスク管理部と、を備える、タスク管理装置が提供される。
【０００８】
また、上記のタスク管理装置は、前記演算装置が設置された地域の気象情報に基づいて当該演算装置の演算能力を予測する演算能力予測部と、前記能力情報取得部により取得された能力情報に示された演算能力と、前記演算能力予測部により予測された演算能力とを比較して、当該能力情報の正当性について検証する演算能力検証部と、をさらに備えていてもよい。この場合、前記タスク管理部は、前記演算能力検証部により正当性が確認された能力情報に対応する前記演算装置に演算タスクを割り当てる。
【０００９】
また、上記課題を解決するために、本発明の別の観点によれば、自然エネルギーに由来する電力を利用して演算を実行する演算装置の演算能力を当該演算装置が設置された地域の気象情報から予測する演算能力予測部と、複数の前記演算装置について前記演算能力予測部により予測された演算能力に基づき、当該複数の演算装置に演算タスクを割り当てるタスク管理部と、を備える、タスク管理装置が提供される。
【００１０】
また、上記のタスク管理装置は、前記タスク管理部により演算タスクが割り当てられた演算装置に対して当該演算タスクの実行を依頼する実行依頼部と、前記実行依頼部による演算タスクの依頼を受けた演算装置から、当該演算タスクの実行結果を取得する結果取得部と、前記演算能力予測部により予測された演算能力の情報に基づいて前記結果取得部により取得された実行結果の不正を検出する不正検出部と、をさらに備えていてもよい。
【００１１】
また、前記不正検出部は、前記演算能力予測部により予測された演算能力で前記演算タスクを実行した場合に当該演算タスクの完了までに要する時間Ｔ１と、前記実行依頼部による実行の依頼から前記結果取得部による実行結果の取得までに要した時間Ｔ２とを比較し、Ｔ２＜Ｔ１の場合に、前記結果取得部により取得された実行結果を不正であると判断する、ように構成されていてもよい。
【００１２】
また、前記実行依頼部により演算タスクの実行を依頼した演算装置が蓄電池に接続されている場合、前記不正検出部は、前記蓄電池が満充電の状態における当該演算装置の演算能力及び前記演算能力予測部により予測された演算能力を利用して前記演算タスクを実行した場合に当該演算タスクの完了までに要する時間Ｔ３と、前記実行依頼部による実行の依頼から前記結果取得部による実行結果の取得までに要した時間Ｔ２とを比較し、Ｔ２＜Ｔ３の場合に、前記結果取得部により取得された実行結果を不正であると判断する、ように構成されていてもよい。
【００１３】
また、上記課題を解決するために、本発明の別の観点によれば、タスク管理装置が、自然エネルギーに由来する電力を利用して演算を実行する演算装置から、当該演算装置が設置された地域の気象情報に基づいて予測される当該演算装置の演算能力を示す能力情報を取得する能力情報取得ステップと、前記能力情報取得ステップで複数の前記演算装置から取得された能力情報に基づいて当該複数の演算装置に演算タスクを割り当てるタスク管理ステップと、を含む、タスク管理方法が提供される。
【００１４】
また、上記課題を解決するために、本発明の別の観点によれば、タスク管理装置が、自然エネルギーに由来する電力を利用して演算を実行する演算装置の演算能力を当該演算装置が設置された地域の気象情報から予測する演算能力予測ステップと、複数の前記演算装置について前記演算能力予測ステップで予測された演算能力に基づき、当該複数の演算装置に演算タスクを割り当てるタスク管理ステップと、を含む、タスク管理方法が提供される。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、自然エネルギーに由来する電力を利用して演算を実行する演算装置から、当該演算装置が設置された地域の気象情報に基づいて予測される当該演算装置の演算能力を示す能力情報を取得する能力情報取得機能と、前記能力情報取得機能により複数の前記演算装置から取得された能力情報に基づいて当該複数の演算装置に演算タスクを割り当てるタスク管理機能と、をコンピュータに実現させるためのプログラムが提供される。
【００１６】
また、上記課題を解決するために、本発明の別の観点によれば、自然エネルギーに由来する電力を利用して演算を実行する演算装置の演算能力を当該演算装置が設置された地域の気象情報から予測する演算能力予測機能と、複数の前記演算装置について前記演算能力予測機能により予測された演算能力に基づき、当該複数の演算装置に演算タスクを割り当てるタスク管理機能と、をコンピュータに実現させるためのプログラムが提供される。
【００１７】
また、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【００１８】
以上説明したように本発明によれば、自然エネルギーに由来する電力を利用して演算を実行する演算装置が演算実行時に有する演算能力を考慮して適当な演算タスクを割り当てることが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る自然エネルギーを利用した分散処理システムのシステム構成について説明するための説明図である。
【図２】同実施形態に係る分散処理システムに含まれるタスク管理装置の機能構成について説明するための説明図である。
【図３】同実施形態に係る分散処理システムに含まれる演算装置の機能構成について説明するための説明図である。
【図４】同実施形態に係るタスク割り当て方法の一例について説明するための説明図である。
【図５】同実施形態に係るタスク割り当て方法の一例について説明するための説明図である。
【図６】同実施形態に係るタスク割り当て方法の一例について説明するための説明図である。
【図７】同実施形態に係る不正検証方法について説明するための説明図である。
【図８】同実施形態に係る演算能力の予測方法について説明するための説明図である。
【図９】同実施形態に係る演算能力の予測方法について説明するための説明図である。
【図１０】同実施形態に係る演算能力の予測方法について説明するための説明図である。
【図１１】同実施形態に係る不正検証方法について具体的に説明するための説明図である。
【図１２】同実施形態に係る不正検証方法について具体的に説明するための説明図である。
【図１３】同実施形態に係るタスク管理装置及び演算装置の機能を実現することが可能な情報処理装置のハードウェア構成について説明するための説明図である。
【発明を実施するための形態】
【００２０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２１】
［説明の流れについて］
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。
【００２２】
まず、図１を参照しながら、本実施形態に係る自然エネルギーを利用した分散処理システム１０のシステム構成について説明する。次いで、図２を参照しながら、分散処理システム１０に含まれるタスク管理装置１００の機能構成について説明する。次いで、図３を参照しながら、分散処理システム１０に含まれる演算装置２００の機能構成について説明する。次いで、図４〜図６を参照しながら、本実施形態に係るタスク割り当て方法について説明する。次いで、図７を参照しながら、本実施形態に係る不正検証方法について説明する。
【００２３】
また、図８〜図１０を参照しながら、本実施形態に係る演算能力の予測方法について説明する。さらに、図１１及び図１２を参照しながら、本実施形態に係る不正検証方法について具体的に説明する。次いで、図１３を参照しながら、本実施形態に係るタスク管理装置１００及び演算装置２００の機能を実現することが可能な情報処理装置のハードウェア構成について説明する。最後に、本実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【００２４】
（説明項目）
１：実施形態
１−１：分散処理システム１０のシステム構成
１−２：タスク管理装置１００の機能構成
１−３：演算装置２００の機能構成
１−４：タスク割り当て方法
１−４−１：タスク管理装置１００で演算能力を予測する場合
１−４−２：演算装置２００で演算能力を予測する場合
１−４−３：演算能力を検証する場合
１−５：不正検証方法
１−６：ハードウェア構成例
２：まとめ
【００２５】
＜１：実施形態＞
本発明の一実施形態について説明する。
【００２６】
［１−１：分散処理システム１０のシステム構成］
まず、図１を参照しながら、本実施形態に係る分散処理システム１０のシステム構成について説明する。図１は、本実施形態に係る分散処理システム１０のシステム構成について説明するための説明図である。
【００２７】
図１に示すように、分散処理システム１０は、タスク管理装置１００と、複数の演算装置２００とにより構成される。但し、タスク管理装置１００と複数の演算装置２００とは、ネットワーク５０を介して接続されている。また、ネットワーク５０は、気象情報提供サービス７０の提供者に接続されているものとする。なお、図１の例では演算装置２００の台数が３台であるが、演算装置２００の台数は２台又は４台以上であってもよい。
【００２８】
この分散処理システム１０は、複数の演算装置２００に複数の演算タスクを分散して割り当て、複数の演算タスクを並列実行させるシステムである。演算タスクの割り当て処理は、タスク管理装置１００が実行する。また、本実施形態に係る演算装置２００は、自然エネルギーに由来する電力を利用して動作する。例えば、演算装置２００は、太陽光発電や風力発電などにより生成された電力を利用して動作する。また、演算装置２００には、蓄電池３００が接続されていてもよい。この場合、演算装置２００は、蓄電池３００に蓄えられている電力と、自然エネルギーに由来する電力とを利用して動作する。
【００２９】
一般に、複数の演算タスクを複数のコンピュータに分散して実行させる分散処理技術は様々な分野で利用されている。例えば、分子動力学計算や気象予測計算などの大規模計算には分散処理技術が利用されている。特に、複数の拠点に設置されたコンピュータを利用して演算タスクを並列実行させるグリッドコンピューティングと呼ばれる技術には大きな注目が集まっている。しかし、多数のコンピュータを動作させるには大きな電力が必要になる。また、高性能なコンピュータを集約させたデータセンターなどでは、コンピュータを冷却するための大規模な空調設備などが稼働しており、一定の演算を実行するために消費される電力は桁違いに大きい。
【００３０】
そのため、地球温暖化への影響を考えた場合、一定の演算を実行するために消費される電力を自然エネルギーに由来する電力で賄えるようにして、枯渇性エネルギーの消費を抑制し、温室効果ガスの排出を極力抑制することが望まれる。つまり、自然エネルギーに由来する電力を利用して動作するコンピュータを束ねて“地球に優しい”大規模計算を実現することが現代に生きる我々に課せられた一つの課題であると言える。こうした理由から考案されたのが、本実施形態に係る分散処理システム１０である。但し、自然エネルギーに由来する電力は、その供給量が不安定である。例えば、太陽光発電により得られる電力は、その供給量が日照条件に左右される。
【００３１】
そのため、自然エネルギーを利用する場合には、一般的な分散コンピューティングで用いられているタスク割り当て方法とは異なる特有のタスク割り当て方法が必要になる。また、電力供給量の不安定さを緩和するため、コンピュータを設置する拠点の配置にも工夫することが望ましい。例えば、同じ拠点に全てのコンピュータを設置してしまうと、その拠点の気象条件が悪化した場合、全てのコンピュータが停止してしまうことにもなりかねない。このようなリスクを軽減するためには、分散処理を担うコンピュータを地理的に離れた拠点に配置することが望ましい。
【００３２】
しかし、このような工夫をしても、演算タスクを割り当てたコンピュータが存在する拠点で予期せぬ気象条件の悪化が生じたり、気象条件の悪い拠点のコンピュータに演算タスクを割り当ててしまうと、演算が滞ってしまうことになる。分散コンピューティングの場合、一部の演算タスクが完了しないと、最終的な演算結果を得ることができない。そのため、一部の演算タスクが完了しないと、完了しない演算タスクを他のコンピュータに割り当て直したり、遅延を許容して演算タスクの完了を待ったりする処理が発生してしまう。その結果、システム全体のパフォーマンスが著しく低下してしまう。
【００３３】
このような状況に陥らないためには、大容量の蓄電手段に蓄えられた電力を補助的に利用したり、電力会社から供給される電力を補助的に利用したりしてコンピュータを動作させればよい。しかし、このような方法を採ると、蓄電手段を設置するためのコストや、電力会社から電力の供給を受けるためのコストなど、余分なコストがかかってしまう。このような余分なコストがかかると単位演算量当たりの演算コストが引き上がるため、このような余分なコストの発生は極力抑制すべきである。
【００３４】
こうした事情に鑑み、本件発明者は、自然エネルギーの供給量を予測して、演算タスクの実行開始時から所定時間内に演算タスクを完了可能なコンピュータを検出し、そのコンピュータに演算タスクを割り当てる仕組みを考案した。図１に示した分散処理システム１０は、その一例である。この分散処理システム１０において、演算タスクを割り当てる手段は、タスク管理装置１００である。一方、演算タスクを実行する手段は、演算装置２００である。なお、図１に示すように、演算装置２００に蓄電手段（蓄電池３００）が接続されていてもよい。この場合、蓄電池３００を設置する分だけコストがかかるが、蓄電池３００に余剰電力を蓄えておき、その余剰電力を電力不足の際に利用することで電力供給をより安定化させることができる。
【００３５】
さて、後段において詳述するように、本実施形態に係るタスク管理装置１００は、気象情報を利用して各演算装置２００の演算能力を予測し、その予測結果に基づいて演算タスクを各演算装置２００に割り当てる。ここで言う演算能力とは、対象となる演算装置２００が所定時間内に完了可能な演算量を意味する。例えば、時刻Ｔ１に演算装置２００で演算タスクを実行開始した場合に、時刻Ｔ２（Ｔ２＞Ｔ１）までに完了可能な演算量Ｘは、その演算装置２００の演算能力に相当する。また、演算能力を演算タスクの完了までに要する時間で表現してもよい。例えば、演算量Ｘの演算タスクを演算装置２００で時刻Ｔ１に実行開始した場合に、その演算タスクが完了するまでの時間ΔＴ（又は完了する時刻Ｔ２）は、その演算装置２００の演算能力に相当する。
【００３６】
上記のような演算能力は、対象となる演算装置２００が単位時間当たりに実行可能な演算量に依存する。また、演算装置２００に供給される電力量が少なくなると、単位時間当たりに実行可能な演算量が減少するため、その演算能力は、演算装置２００に供給される電力量にも依存する。仮に、電力量Ｐの電力が供給された場合に演算装置２００が単位時間当たりに実行可能な演算量が一定であるとすると、演算装置２００の演算能力は、演算装置２００に供給される電力量Ｐに基づいて決めることができる。つまり、演算装置２００が単位時間当たりに実行可能な演算量と電力量Ｐとの関係を知ることができれば、電力量Ｐの予測値から演算装置２００の演算性能を予測することが可能になる。
【００３７】
また、演算装置２００に供給される電力は、自然エネルギーに由来する電力である。そのため、気象情報に基づいて演算装置２００に供給される電力量Ｐを予測することができる。例えば、太陽光発電により生成される電力量Ｐついて考えると、太陽電池パネルの性能及び日照条件（例えば、日照時間や直達日射量など）が分かれば、その太陽電池パネルにより生成される電力量Ｐを見積もることができる。また、風力発電により生成される電力量Ｐについて考えると、風力原動機の性能及び風況（例えば、風向きや風量など）が分かれば、その風力原動機により生成される電力量Ｐを見積もることができる。つまり、各演算装置２００が設置された地域の気象情報を参照することにより、その演算装置２００に供給される電力量Ｐを見積もることができる。
【００３８】
このように、演算装置２００に供給される電力量Ｐは、気象情報に基づいて見積もることが可能である。また、演算装置２００の演算性能は、電力量Ｐから予測することが可能である。従って、気象情報に基づいて演算装置２００の演算性能を予測することが可能である。例えば、演算タスクの実行を依頼しようとする演算装置２００の演算性能は、演算タスクの実行を開始する予定の時刻以降における気象予報を参照し、その気象予報から見積もられる電力量Ｐに基づいて予測することができる。なお、気象情報は、例えば、ネットワーク５０を介して気象情報提供サービス７０から取得することが可能である。
【００３９】
上記のようにして予測された演算装置２００の演算性能は、タスク管理装置１００によるタスクの割り当てに利用される。例えば、タスク管理装置１００は、予測された各演算装置２００の演算性能を考慮し、所望の時間内に演算タスクを完了可能な演算装置２００を選択する。そして、タスク管理装置１００は、選択した演算装置２００に演算タスクを割り当てる。このような構成にすることで、タスク管理装置１００は、気象条件の変化に応じて変化してしまう演算装置２００の演算性能を考慮して演算タスクの適切な割り当てを実現することが可能になる。
【００４０】
ところで、分散処理システム１０に含まれるタスク管理装置１００と演算装置２００とは、同じ管理者により管理されていなくてもよい。例えば、タスク管理装置１００の管理者が演算装置２００の管理者に対価を支払って演算タスクの実行を依頼するようなケースも考えられる。このようなケースにおいて、演算タスクの実行に対する対価は、例えば、演算量や実行時間などに基づいて算出される。つまり、演算結果の正誤にかかわらず対価が支払われることになる。もし、演算装置２００の管理者に悪意があれば、演算能力に関係なく演算タスクを請け負い、でたらめな演算結果をタスク管理装置１００に回答するかもしれない。
【００４１】
このような不正が行われると、タスク管理装置１００の管理者は、不正に対価を支払わされた挙げ句に正しい演算結果を得られないことになる。そこで、本件発明者は、演算装置２００の演算能力を予測する機能を利用し、上記のような不正を検証する仕組みを考案した。この仕組みは、タスク管理装置１００の機能を利用して実現される。例えば、ある演算装置２００に演算タスクの実行を依頼した場合、その演算タスクの実行に要する時間は、その演算装置２００の演算能力と演算タスクの演算量とに基づいて予測可能である。そこで、タスク管理装置１００は、予測した時間よりも短い時間で演算結果が回答された場合に、その演算結果を不正なものとみなす。
【００４２】
また、タスク管理装置１００は、次回以降のタスク割り当て処理において不正な演算結果を回答した演算装置２００に演算タスクが割り当てられないようにする。このような構成にすることにより、タスク管理装置１００の管理者が不正に対価を支払わされる機会を低減することが可能になる。なお、演算装置２００に演算タスクの実行を依頼する前に、その演算装置２００による演算タスクの請負状況と、その演算装置２００の演算能力とから、その演算装置２００の管理者による不正を検出することも可能である。この場合、その演算装置２００に対して演算タスクの実行を依頼しないことで、不正な対価の支払いを免れることができるようになる。
【００４３】
以上、本実施形態に係る分散処理システム１０のシステム構成について説明した。また、分散処理システム１０に含まれるタスク管理装置１００及び演算装置２００の動作について簡単に説明した。以下では、タスク管理装置１００及び演算装置２００の機能構成及び動作について、より詳細に説明する。
【００４４】
［１−２：タスク管理装置１００の機能構成］
まず、図２を参照しながら、タスク管理装置１００の機能構成について説明する。図２は、タスク管理装置１００の機能構成について説明するための説明図である。なお、図２に示したタスク管理装置１００の機能構成は一例であり、後述する演算タスクの割り当て方法によっては一部の構成要素を適宜省略したり、変形したりすることが可能である。
【００４５】
図２に示すように、タスク管理装置１００は、主に、通信部１０１と、気象情報取得部１０２と、演算能力予測部１０３と、能力情報取得部１０４と、演算能力検証部１０５と、タスク管理部１０６と、不正検出部１０７とにより構成される。
【００４６】
通信部１０１は、ネットワーク５０を介して通信するための通信手段である。演算タスクを演算装置２００に依頼する場合、まず、気象情報取得部１０２は、通信部１０１を介して気象情報提供サービス７０から気象情報を取得する。このとき、気象情報取得部１０２は、演算タスクの依頼対象となる演算装置２００の設置された地域の気象情報を取得する。また、気象情報取得部１０２は、少なくとも演算タスクの実行を開始する予定の時刻以降における気象予報を含む気象情報を取得する。気象情報取得部１０２により取得された気象情報は、演算能力予測部１０３に入力される。
【００４７】
気象情報が入力されると、演算能力予測部１０３は、演算タスクの依頼対象となる演算装置２００の演算能力を予測する。但し、演算能力予測部１０３は、電力量Ｐの電力により演算タスクの依頼対象となる演算装置２００が単位時間当たりに実行可能な演算量などに関する情報（以下、演算性能情報）を既に保持しているものとする。さらに、演算能力予測部１０３は、演算タスクの依頼対象となる演算装置２００に電力を供給するための発電機（自然エネルギーに由来する電力を発電する発電機）の発電性能に関する情報（以下、発電性能情報）を既に保持しているものとする。
【００４８】
演算能力予測部１０３は、気象情報と発電性能情報を利用して演算タスクの実行予定期間に演算装置２００に対して供給される電力量Ｐを予測し、その予測結果と演算性能情報を利用して演算能力を予測する。このようにして演算能力予測部１０３により予測された演算性能を示す情報（以下、能力情報）は、演算能力検証部１０５に入力される。また、演算能力検証部１０５には、能力情報取得部１０４により取得された演算装置２００の演算性能を示す能力情報が入力される。この能力情報は、演算装置２００により気象情報に基づいて予測された能力情報である。
【００４９】
説明が前後するが、能力情報取得部１０４は、通信部１０１を介して、演算タスクの依頼対象となる演算装置２００から能力情報を取得する。このとき、能力情報取得部１０４は、演算タスクの依頼対象となる演算装置２００に対し、演算タスクの実行予定期間における演算性能を問い合わせ、その演算性能を示す能力情報を取得する。このようにして能力情報取得部１０４により取得された能力情報は、上記の通り、演算能力検証部１０５に入力される。また、この能力情報は、タスク管理部１０６にも入力される。
【００５０】
演算能力検証部１０５は、演算能力予測部１０３により入力された能力情報と、能力情報取得部１０４により入力された能力情報とを比較し、演算タスクの依頼対象となる演算装置２００から取得した能力情報の正否を検証する。仮に、演算装置２００の管理者が多くの演算タスクを請け負おうとして演算能力を不正に水増ししている場合、能力情報取得部１０４により入力された能力情報が示す演算能力は、演算能力予測部１０３により入力された能力情報が示す演算能力よりも格段に大きくなる。つまり、演算能力検証部１０５は、演算装置２００による不正な演算能力の申告を検出することができる。
【００５１】
演算能力検証部１０５による検証の結果は、タスク管理部１０６に通知される。通知された検証の結果が不正を示すものである場合、タスク管理部１０６は、不正な演算能力を申告した演算装置２００を演算タスクの依頼対象から除外する。そして、タスク管理部１０６は、除外されずに残った演算装置２００の中から、実際に演算タスクの実行を依頼する演算装置２００を選択する。このとき、タスク管理部１０６は、各演算装置２００の能力情報を参照し、所定時間内に演算タスクを完了することが可能な演算装置２００を選択する。１つの演算タスクに対して複数の演算装置２００が選択された場合、例えば、より演算能力の高い演算装置２００、又は演算コストの安い演算装置２００が選択される。
【００５２】
タスク管理部１０６は、選択した演算装置２００に演算タスクを割り当てる。そして、タスク管理部１０６は、通信部１０１を介して、割り当てた演算タスクの実行を、対象となる演算装置２００に依頼する。この依頼により演算装置２００により演算タスクが実行され、演算装置２００から演算結果が送られてくる。この演算結果は、通信部１０１を介して受信され、通信部１０１からタスク管理部１０６へと入力される。
【００５３】
なお、タスク管理部１０６は、演算タスクの実行を依頼してから演算結果が受信されるまでの時間（以下、演算実行時間）を計測する。また、タスク管理部１０６は、演算装置２００の演算能力と演算タスクの演算量とに基づき、依頼した演算タスクの実行を完了させるまでに要する時間（以下、予測時間）を算出する。そして、タスク管理部１０６は、演算実行時間及び予測時間を不正検出部１０７に入力する。演算実行時間及び予測時間が入力されると、不正検出部１０７は、入力された演算実行時間及び予測時間に基づいて演算結果の不正を検出する。例えば、不正検出部１０７は、演算実行時間と予測時間とを比較し、演算実行時間が予測時間よりも短い場合に演算結果が不正であると判断する。
【００５４】
不正検出部１０７による検出の結果は、タスク管理部１０６に通知される。通知された検出の結果が不正を示すものである場合、タスク管理部１０６は、例えば、不正であると判断された演算結果を返した演算装置２００を次回以降の演算タスクの割り当て対象から除外する。このようにして演算結果の不正を検出することにより、でたらめな演算結果を返す演算装置２００を検出することが可能になり、不正に演算の対価を支払わされたり、演算結果の信頼性を損ねたりすることを防止できるようになる。
【００５５】
以上、タスク管理装置１００の機能構成について説明した。
【００５６】
［１−３：演算装置２００の機能構成］
次に、図３を参照しながら、演算装置２００の機能構成について説明する。図３は、演算装置２００の機能構成について説明するための説明図である。なお、図３に示した演算装置２００の機能構成は一例であり、後述する演算タスクの割り当て方法によっては一部の構成要素を適宜省略したり、変形したりすることが可能である。
【００５７】
図３に示すように、演算装置２００は、主に、通信部２０１と、気象情報取得部２０２と、演算能力予測部２０３と、演算実行部２０４とにより構成される。
【００５８】
通信部２０１は、ネットワーク５０を介して通信するための通信手段である。上記の通り、タスク管理装置１００は、演算タスクを依頼する際、まず、演算装置２００に対して演算能力を問い合わせる。この問い合わせを受けると、気象情報取得部２０２は、通信部２０１を介して、演算タスクの実行を予定している時間における気象情報を取得する。そして、気象情報取得部２０２により取得された気象情報は、演算能力予測部２０３に入力される。気象情報が入力されると、演算能力予測部２０３は、入力された気象情報に基づいて演算タスクの実行時における演算能力を予測する。
【００５９】
なお、演算能力予測部２０３は、電力量Ｐの電力により演算装置２００が単位時間当たりに実行可能な演算量などに関する情報（演算性能情報）を既に保持しているものとする。また、演算能力予測部２０３は、演算装置２００に電力を供給するための発電機（自然エネルギーに由来する電力を発電する発電機）の発電性能に関する情報（発電性能情報）を既に保持しているものとする。そのため、演算能力予測部２０３は、気象情報と発電性能情報を利用して演算タスクの実行予定期間に演算装置２００に対して供給される電力量Ｐを予測し、その予測結果と演算性能情報を利用して演算能力を予測する。演算能力予測部２０３により予測された演算能力を示す能力情報は、通信部２０１を介してタスク管理装置１００へと送られる。
【００６０】
また、タスク管理装置１００から演算タスクの実行を依頼された場合、タスク管理装置１００から送信された演算タスクは、通信部２０１を介して演算実行部２０４に入力される。演算タスクが入力されると、演算実行部２０４は、入力された演算タスクを実行する。演算タスクの実行が終了すると、演算実行部２０４は、演算タスクの実行結果（以下、演算結果）を出力する。演算実行部２０４により出力された演算結果は、通信部２０１を介してタスク管理装置１００へと送信される。
【００６１】
以上、演算装置２００の機能構成について説明した。
【００６２】
［１−４：タスク割り当て方法］
次に、本実施形態に係るタスク割り当て方法について、具体例を挙げながら説明する。  
【００６３】
（１−４−１：タスク管理装置１００で演算能力を予測する場合）
まず、図４を参照しながら、タスク管理装置１００の側で予測した演算装置２００の演算能力に関する情報を利用して適切に演算タスクを割り当てる方法について説明する。図４は、タスク管理装置１００の側で予測した演算装置２００の演算能力に関する情報を利用して適切に演算タスクを割り当てる方法について説明するための説明図である。なお、図４にはタスク管理装置１００と１台の演算装置２００との間のやり取りしか記載されていないが、実際には、複数の演算装置２００に対して同様のやり取りが実行される。
【００６４】
図４に示すように、まず、タスク管理装置１００は、演算装置２００から環境情報を取得し、取得した環境情報を保持（登録）する（Ｓ１００）。ここで言う環境情報とは、演算装置２００の演算性能に関する上記の演算性能情報、及び演算装置２００に電力を供給する発電機の発電性能に関する上記の発電性能情報などの情報である。この環境情報をタスク管理装置１００に予め登録しておくことにより、タスク管理装置１００において演算装置２００の演算性能を予測することが可能になる。なお、ステップＳ１００に示した環境情報の登録処理は、演算タスクの割り当て時に毎回行わなくてもよい。
【００６５】
環境情報の登録処理が完了すると、タスク管理装置１００は、気象予報に基づいて演算タスクの実行時における演算装置２００の演算能力を予測する（Ｓ１０１）。まず、タスク管理装置１００は、気象情報取得部１０２の機能により、気象情報提供サービス７０から気象情報を取得する。この気象情報は、演算装置２００が設置された地域の気象情報である。また、この気象情報は、演算タスクの実行を予定している時間における気象の状況を示す気象予報である。気象情報を取得すると、タスク管理装置１００は、演算能力予測部１０３の機能により、取得した気象情報に基づいて演算装置２００に供給される電力量を予測する。そして、タスク管理装置１００は、演算能力予測部１０３の機能により、予測した電力量から演算装置２００の演算能力を算出する。
【００６６】
演算能力の予測処理が完了すると、タスク管理装置１００は、タスク管理部１０６の機能により、演算タスクの実行可否を演算装置２００に問い合わせる（Ｓ１０２）。このとき、タスク管理装置１００は、タスク管理部１０６の機能により、演算タスクの演算量及び所望する演算タスクの実行時間（又は完了時刻）を演算装置２００に通知する。この問い合わせに対し、演算装置２００は、演算タスクの実行可否を回答する（Ｓ１０３）。例えば、問い合わせを受けた演算タスク以外の演算タスクを実行している場合など、所望する演算タスクの実行時間内に問い合わせを受けた演算タスクを完了させることが難しい場合、演算装置２００は、演算タスクの実行不可を回答する。但し、ここでは演算タスクの実行可が回答されたものとして説明を進める。
【００６７】
演算装置２００から回答を受けると、タスク管理装置１００は、タスク管理部１０６の機能により、その演算装置２００に対して演算タスクを割り当てる。そして、タスク管理装置１００は、タスク管理部１０６の機能により、割り当てた演算タスクの実行を演算装置２００に依頼する（Ｓ１０４）。このとき、タスク管理装置１００は、タスク管理部１０６の機能により、ステップＳ１０１で予測した演算能力に基づいて演算タスクを割り当てる。例えば、実行すべき演算タスクの演算量と演算能力とに基づいて算出される演算タスクの実行時間が所望する演算タスクの実行時間よりも短い場合、タスク管理装置１００は、タスク管理部１０６の機能により、演算装置２００に演算タスクを割り当てる。
【００６８】
なお、実際には、タスク管理装置１００は、複数の演算装置２００を依頼対象として演算タスクの割り当て処理を実行する。そのため、同じ演算タスクに対して複数の演算装置２００が依頼対象の候補となることも考えられる。もし、同じ演算タスクに対して複数の演算装置２００が依頼対象の候補となった場合、タスク管理装置１００は、タスク管理部１０６の機能により、各演算装置２００の演算能力に基づいて依頼対象の演算装置２００を絞り込む。例えば、タスク管理装置１００は、タスク管理部１０６の機能により、演算能力が最も高い演算装置２００を依頼対象の演算装置２００に選択する。このような構成にすると、所望する演算タスクの実行時間内に演算タスクを完了できる可能性が高まる。
【００６９】
演算タスクの実行を演算装置２００に依頼すると、演算装置２００は、演算実行部２０４の機能により、依頼された演算タスクを実行する。そして、演算タスクが完了すると、演算装置２００は、タスク管理装置１００に演算結果を通知する（Ｓ１０５）。
【００７０】
以上、タスク管理装置１００の側で予測した演算装置２００の演算能力を利用して適切に演算タスクを割り当てる方法について説明した。この方法を適用する場合、演算装置２００に含まれる気象情報取得部２０２及び演算能力予測部２０３を省略することができる。また、ここでは１台の演算装置２００に注目してタスク管理装置１００と演算装置２００との間のやり取りを示したが、実際には複数の演算装置２００に対して同様のやり取りが実行される。
【００７１】
（１−４−２：演算装置２００で演算能力を予測する場合）
次に、図５を参照しながら、演算装置２００の側で予測した演算タスクの実行時における演算能力の情報を利用して適切に演算タスクを割り当てる方法について説明する。図５は、演算装置２００の側で予測した演算タスクの実行時における演算能力の情報を利用して適切に演算タスクを割り当てる方法について説明するための説明図である。なお、図５にはタスク管理装置１００と１台の演算装置２００との間のやり取りしか記載されていないが、実際には、複数の演算装置２００に対して同様のやり取りが実行される。
【００７２】
図５に示すように、まず、タスク管理装置１００は、タスク管理部１０６の機能により、演算タスクの実行可否を演算装置２００に問い合わせる（Ｓ１１１）。このとき、タスク管理装置１００は、タスク管理部１０６の機能により、演算タスクの演算量及び所望する演算タスクの実行時間（又は完了時刻）を演算装置２００に通知する。この問い合わせを受けると、演算装置２００は、気象予報に基づいて演算タスクの実行時における演算能力を予測する（Ｓ１１２）。
【００７３】
まず、演算装置２００は、気象情報取得部２０２の機能により、気象情報提供サービス７０から気象情報を取得する。この気象情報は、演算装置２００が設置された地域の気象情報である。また、この気象情報は、演算タスクの実行を予定している時間における気象の状況を示す気象予報である。気象情報を取得すると、演算装置２００は、演算能力予測部２０３の機能により、取得した気象情報に基づいて演算タスクの実行時に供給される電力量を予測する。そして、演算装置２００は、演算能力予測部２０３の機能により、予測した電力量から演算能力を算出する。
【００７４】
演算能力の予測が完了すると、演算装置２００は、演算タスクの実行可否及び予測した演算能力をタスク管理装置１００に回答する（Ｓ１１３）。例えば、問い合わせを受けた演算タスク以外の演算タスクを実行している場合など、所望する演算タスクの実行時間内に問い合わせを受けた演算タスクを完了させることが難しい場合、演算装置２００は、演算タスクの実行不可を回答する。また、予測した演算能力では所望する実行時間内に演算タスクの演算量をこなすことが難しい場合、演算装置２００は、演算タスクの実行不可を回答する。但し、ここでは演算タスクの実行可が回答されたものとして説明を進める。
【００７５】
演算装置２００から回答を受けると、タスク管理装置１００は、タスク管理部１０６の機能により、その演算装置２００に対して演算タスクを割り当てる。そして、タスク管理装置１００は、タスク管理部１０６の機能により、割り当てた演算タスクの実行を演算装置２００に依頼する（Ｓ１１４）。このとき、タスク管理装置１００は、タスク管理部１０６の機能により、演算装置２００により予測された演算能力に基づいて演算タスクを割り当てる。例えば、実行すべき演算タスクの演算量と演算能力とに基づいて算出される演算タスクの実行時間が所望する演算タスクの実行時間よりも短い場合、タスク管理装置１００は、タスク管理部１０６の機能により、演算装置２００に演算タスクを割り当てる。
【００７６】
なお、実際には、タスク管理装置１００は、複数の演算装置２００を依頼対象として演算タスクの割り当て処理を実行する。そのため、同じ演算タスクに対して複数の演算装置２００が依頼対象の候補となることも考えられる。もし、同じ演算タスクに対して複数の演算装置２００が依頼対象の候補となった場合、タスク管理装置１００は、タスク管理部１０６の機能により、各演算装置２００の演算能力に基づいて依頼対象の演算装置２００を絞り込む。例えば、タスク管理装置１００は、タスク管理部１０６の機能により、演算能力が最も高い演算装置２００を依頼対象の演算装置２００に選択する。このような構成にすると、所望する演算タスクの実行時間内に演算タスクを完了できる可能性が高まる。
【００７７】
演算タスクの実行を演算装置２００に依頼すると、演算装置２００は、演算実行部２０４の機能により、依頼された演算タスクを実行する。そして、演算タスクが完了すると、演算装置２００は、タスク管理装置１００に演算結果を通知する（Ｓ１１５）。
【００７８】
以上、演算装置２００の側で予測した演算タスクの実行時における演算能力の情報を利用して適切に演算タスクを割り当てる方法について説明した。なお、ここでは１台の演算装置２００に注目してタスク管理装置１００と演算装置２００との間のやり取りを示したが、実際には複数の演算装置２００に対して同様のやり取りが実行される。
【００７９】
（１−４−３：演算能力を検証する場合）
次に、図６を参照しながら、タスク管理装置１００の問い合わせに対する演算装置２００の回答が正しいか否かを検証する処理を含むタスク割り当て方法について説明する。図６は、タスク管理装置１００の問い合わせに対する演算装置２００の回答が正しいか否かを検証する処理を含むタスク割り当て方法について説明するための説明図である。なお、図６にはタスク管理装置１００と１台の演算装置２００との間のやり取りしか記載されていないが、実際には、複数の演算装置２００に対して同様のやり取りが実行される。
【００８０】
図６に示すように、まず、タスク管理装置１００は、演算装置２００から環境情報を取得し、取得した環境情報を保持（登録）する（Ｓ１２０）。ここで言う環境情報とは、演算装置２００の演算性能に関する上記の演算性能情報、及び演算装置２００に電力を供給する発電機の発電性能に関する上記の発電性能情報などの情報である。この環境情報をタスク管理装置１００に予め登録しておくことにより、タスク管理装置１００において演算装置２００の演算性能を予測することが可能になる。なお、ステップＳ１２０に示した環境情報の登録処理は、演算タスクの割り当て時に毎回行わなくてもよい。
【００８１】
次いで、タスク管理装置１００は、タスク管理部１０６の機能により、演算タスクの実行可否を演算装置２００に問い合わせる（Ｓ１２１）。このとき、タスク管理装置１００は、タスク管理部１０６の機能により、演算タスクの演算量及び所望する演算タスクの実行時間（又は完了時刻）を演算装置２００に通知する。この問い合わせを受けると、演算装置２００は、気象予報に基づいて演算タスクの実行時における演算能力を予測する（Ｓ１２２）。
【００８２】
まず、演算装置２００は、気象情報取得部２０２の機能により、気象情報提供サービス７０から気象情報を取得する。この気象情報は、演算装置２００が設置された地域の気象情報である。また、この気象情報は、演算タスクの実行を予定している時間における気象の状況を示す気象予報である。気象情報を取得すると、演算装置２００は、演算能力予測部２０３の機能により、取得した気象情報に基づいて演算タスクの実行時に供給される電力量を予測する。そして、演算装置２００は、演算能力予測部２０３の機能により、予測した電力量から演算能力を算出する。
【００８３】
演算能力の予測が完了すると、演算装置２００は、演算タスクの実行可否及び予測した演算能力をタスク管理装置１００に回答する（Ｓ１２３）。例えば、問い合わせを受けた演算タスク以外の演算タスクを実行している場合など、所望する演算タスクの実行時間内に問い合わせを受けた演算タスクを完了させることが難しい場合、演算装置２００は、演算タスクの実行不可を回答する。また、予測した演算能力では所望する実行時間内に演算タスクの演算量をこなすことが難しい場合、演算装置２００は、演算タスクの実行不可を回答する。但し、ここでは演算タスクの実行可が回答されたものとして説明を進める。
【００８４】
演算装置２００から回答を受けると、タスク管理装置１００は、気象予報に基づいて演算タスクの実行時における演算装置２００の演算能力を予測する（Ｓ１２４）。まず、タスク管理装置１００は、気象情報取得部１０２の機能により、気象情報提供サービス７０から気象情報を取得する。この気象情報は、演算装置２００が設置された地域の気象情報である。また、この気象情報は、演算タスクの実行を予定している時間における気象の状況を示す気象予報である。気象情報を取得すると、タスク管理装置１００は、演算能力予測部１０３の機能により、取得した気象情報に基づいて演算装置２００に供給される電力量を予測する。そして、タスク管理装置１００は、演算能力予測部１０３の機能により、予測した電力量から演算装置２００の演算能力を算出する。
【００８５】
演算能力の予測処理が完了すると、タスク管理装置１００は、演算能力検証部１０５の機能により、演算装置２００から受けた回答の内容を検証する（Ｓ１２５）。例えば、タスク管理装置１００は、演算能力検証部１０５の機能により、演算装置２００から回答された演算能力と、ステップＳ１２４で予測した演算能力とを比較し、両者が大きく乖離しているか否かを確認する。このとき、両者が大きく乖離している場合には、演算装置２００による回答に不正があるものと考えられる。そのため、不正と考えられる回答を送ってきた演算装置２００は、例えば、演算タスクの割り当て対象から除外される。このような構成にすることで、不正が疑われる演算装置２００を割り当て対象から外すことが可能になり、演算結果の信頼性を向上させることが可能になる。
【００８６】
ステップＳ１２５において回答内容の正当性が確認された場合、タスク管理装置１００は、タスク管理部１０６の機能により、演算装置２００に対して演算タスクを割り当てる。そして、タスク管理装置１００は、タスク管理部１０６の機能により、割り当てた演算タスクの実行を演算装置２００に依頼する（Ｓ１２６）。このとき、タスク管理装置１００は、タスク管理部１０６の機能により、ステップＳ１２４で予測した演算能力に基づいて演算タスクを割り当てる。例えば、実行すべき演算タスクの演算量と演算能力とに基づいて算出される演算タスクの実行時間が所望する演算タスクの実行時間よりも短い場合、タスク管理装置１００は、タスク管理部１０６の機能により、演算装置２００に演算タスクを割り当てる。
【００８７】
なお、実際には、タスク管理装置１００は、複数の演算装置２００を依頼対象として演算タスクの割り当て処理を実行する。そのため、同じ演算タスクに対して複数の演算装置２００が依頼対象の候補となることも考えられる。もし、同じ演算タスクに対して複数の演算装置２００が依頼対象の候補となった場合、タスク管理装置１００は、タスク管理部１０６の機能により、各演算装置２００の演算能力に基づいて依頼対象の演算装置２００を絞り込む。例えば、タスク管理装置１００は、タスク管理部１０６の機能により、演算能力が最も高い演算装置２００を依頼対象の演算装置２００に選択する。このような構成にすると、所望する演算タスクの実行時間内に演算タスクを完了できる可能性が高まる。
【００８８】
演算タスクの実行を演算装置２００に依頼すると、演算装置２００は、演算実行部２０４の機能により、依頼された演算タスクを実行する。そして、演算タスクが完了すると、演算装置２００は、タスク管理装置１００に演算結果を通知する（Ｓ１２７）。
【００８９】
以上、タスク管理装置１００の問い合わせに対する演算装置２００の回答が正しいか否かを検証する処理を含むタスク割り当て方法について説明した。なお、ここでは１台の演算装置２００に注目してタスク管理装置１００と演算装置２００との間のやり取りを示したが、実際には複数の演算装置２００に対して同様のやり取りが実行される。
【００９０】
（補足説明１：回答内容の検証方法について）
ここで、図８〜図１０を参照しながら、演算装置２００の回答に対する検証方法（上記のステップＳ１２５に相当）について説明を補足する。
【００９１】
図８に示すように、演算タスクの実行開始時刻をＴ１、実行終了時刻をＴ２とすると、演算実行時間（Ｔ１〜Ｔ２）は、演算能力を予測する時点（現時点）よりも未来になる。未来の演算能力は、演算装置２００が設置された地域の気象予報を利用して予測することができる。まず、気象予報に基づいて発電量を予測し、その予測結果と演算装置２００の演算性能とを利用して演算能力を予測することができる。なお、演算能力は、ある演算量を持つ演算タスクの実行を時刻Ｔ１に開始した場合に、その演算タスクを完了するのに要する最短の時間で表現することができる。
【００９２】
いま、タスク管理装置１００において演算能力（予測時間ΔＴｅｘｐ）が予測されたものとする。また、演算装置２００から回答として演算能力（回答時間ΔＴ）がタスク管理装置１００に通知されたものとする。この場合、タスク管理装置１００は、予測時間ΔＴｅｘｐと回答時間ΔＴとを比較して演算装置２００の回答内容を検証する。
【００９３】
演算装置２００の管理者が不正を行う目的は、例えば、演算装置２００の演算能力を超えて演算タスクを請け負い、でたらめな演算結果を返して対価だけ受け取ることにある。そのため、演算装置２００の管理者は、本来の演算能力よりも高い演算能力（短い回答時間ΔＴ）を回答としてタスク管理装置１００に通知しようとする。従って、図９に示すように、ΔＴ＜ΔＴｅｘｐの場合には演算装置２００の回答が不正であると考える。一方、ΔＴ≧ΔＴｅｘｐの場合には演算装置２００の回答が正当であると考える。そこで、タスク管理装置１００は、ΔＴ≧ΔＴｅｘｐの場合に、演算装置２００に対して演算タスクを割り当てる。
【００９４】
ところで、演算装置２００に蓄電池３００が接続されている場合がある。この場合、演算装置２００は、安定した出力が期待される蓄電池３００の電力を利用して演算タスクを実行できる。そのため、演算装置２００の演算性能は、蓄電池３００が接続されていない場合に比べて向上する。但し、蓄電池３００に蓄えられている電力量に応じて演算性能は異なる。そのため、蓄電池３００が接続されている演算装置２００の回答に対する検証は慎重に行う必要がある。蓄電池３００の蓄電容量が分かっている場合、蓄電池３００の蓄電量に応じた予測時間ΔＴｅｘｐ（ｘ％）（蓄電池３００にｘ％の電力が蓄えられている場合の予測時間）を予測することができる。
【００９５】
例えば、図１０に示すように、蓄電池３００が満充電時の予測時間をΔＴｅｘｐ（１００％）、５０％充電時の予測時間をΔＴｅｘｐ（５０％）、０％充電時の予測時間をΔＴｅｘｐ（０％）と表現すると、ΔＴｅｘｐ（１００％）＜ΔＴｅｘｐ（５０％）＜ΔＴｅｘｐ（０％）の関係が成り立つ。そこで、最小の予測時間ΔＴｅｘｐ（１００％）と回答時間ΔＴとを比較し、ΔＴ＜ΔＴｅｘｐ（１００％）の場合には演算装置２００の回答が不正であると考える。一方、最大の予測時間ΔＴｅｘｐ（０％）と回答時間ΔＴとを比較し、ΔＴ≧ΔＴｅｘｐ（０％）の場合には演算装置２００の回答が正当であると考える。但し、ΔＴｅｘｐ（１００％）＜ΔＴ＜ΔＴｅｘｐ（０％）の場合には回答の正否が判断しかねるため、予めタスク管理装置１００の管理者が決めた基準に基づいて回答の正当性を判断すればよい。
【００９６】
以上、演算装置２００の回答に対する検証方法（上記のステップＳ１２５に相当）について説明を補足した。上記の検証方法は一例であるが、この方法を利用することにより、演算装置２００が不正な回答を返した場合に、その不正を見分けることが可能になる。
【００９７】
（補足説明２：蓄電量の見積もり方について）
ここで、演算装置２００に接続された蓄電池３００の蓄電量を予測する方法について簡単に説明を補足する。演算装置２００に接続された蓄電池３００に対しても自然エネルギーに由来する電力が供給されるシステムの場合、過去の気象情報に基づいて蓄電池３００の蓄電量を大まかに見積もることができる。この見積もり方法は、これまで説明してきた演算能力の予測方法と実質的に同じであるが、利用する気象情報が異なる。演算能力の予測には気象予報が利用された。しかし、蓄電池３００の蓄電量を予測する際には過去の気象情報が利用される。つまり、演算タスクの実行を開始する以前に蓄電池３００に対して供給された電力量を過去の気象情報に基づいて見積もることにより、蓄電池３００の蓄電量を大まかに見積もることができる。
【００９８】
蓄電池３００の蓄電量に対する見積もりは、演算装置２００の回答内容を検証する際、又は、演算結果を検証する際（後述）に利用することができる。例えば、ΔＴｅｘｐ（１００％）＜ΔＴ＜ΔＴｅｘｐ（８０％）であっても、蓄電池３００が満充電に近い状態であると見積もられていれば、回答が正当であると考えることができるようになる。このようにして蓄電池３００の蓄電量を見積もることにより、検証精度を高めることができる。
【００９９】
［１−５：不正検証方法］
次に、図７を参照しながら、タスク管理装置１００による不正検証方法について説明する。これまで、演算装置２００が回答する演算能力の正当性について議論してきた。しかし、演算能力に関して正しい回答がされていても、演算結果の正当性までは保証できない。例えば、悪意ある演算装置２００の管理者は、演算能力を正しく回答して演算タスクの実行を依頼させ、でたらめな演算結果を返すかもしれない。そこで、本件発明者は、演算結果の正当性を検証するための不正検証方法を考案した。なお、この不正検証方法は、図４〜図６に示したタスク割り当て方法に組み合わせることが可能である。
【０１００】
まず、図４〜図６に示すようなタスク割り当て方法が実施され、タスク管理装置１００により、割り当てられた演算タスクの実行が演算装置２００に依頼される（Ｓ１３１）。演算タスクの実行を演算装置２００に依頼すると、演算装置２００は、演算実行部２０４の機能により、依頼された演算タスクを実行する。そして、演算タスクが完了すると、演算装置２００は、タスク管理装置１００に演算結果を通知する（Ｓ１３２）。このとき、タスク管理装置１００は、演算タスクの実行を依頼してから演算結果の通知があるまでの時間（以下、演算実行時間ΔＴｒ）を計測する。そして、演算結果を受け取ると、タスク管理装置１００は、不正の有無を検証する（Ｓ１３３）。
【０１０１】
まず、タスク管理装置１００は、不正検出部１０７の機能により、演算装置２００の演算能力と、依頼した演算タスクの演算量とに基づいて、この演算タスクの実行に要する時間（予測時間ΔＴｅｘｐ）を予測する。次いで、タスク管理装置１００は、不正検出部１０７の機能により、予測時間ΔＴｅｘｐと演算実行時間ΔＴｒとを比較する。悪意ある演算装置２００の管理者は、実際に演算装置２００によって実行可能な演算タスクの数よりも多くの演算タスクを請け負おうと試みるであろう。そのため、不正な演算結果は、実際に演算タスクを実行した場合よりも短い時間で返されると考えられる。
【０１０２】
そこで、タスク管理装置１００は、不正検出部１０７の機能により、図１１に示すように、ΔＴｒ＜ΔＴｅｘｐの場合、演算結果が不正であると判断する。一方、ΔＴｒ≧ΔＴｅｘｐの場合、タスク管理装置１００は、不正検出部１０７の機能により、検出結果が正当であると判断する。また、演算装置２００に蓄電池３００が接続されている場合、蓄電池３００が満充電の場合及び０％充電の場合における予測時間ΔＴｅｘｐ（１００％）及びΔＴｅｘｐ（０％）と、演算実行時間ΔＴｒとが比較される。そして、図１２に示すように、タスク管理装置１００は、不正検出部１０７の機能により、ΔＴｒ＜ΔＴｅｘｐ（１００％）の場合、演算結果が不正であると判断する。一方、ΔＴｒ≧ΔＴｅｘｐ（０％）の場合、タスク管理装置１００は、不正検出部１０７の機能により、検出結果が正当であると判断する。
【０１０３】
以上、タスク管理装置１００による不正検証方法について説明した。この不正検証方法を適用することにより、不正な演算装置２００を検出することが可能になる。また、不正な演算装置２００を演算タスクの割り当て対象から除外することにより、演算結果の信頼性を高めることが可能になる。
【０１０４】
［１−６：ハードウェア構成例］
上記のタスク管理装置１００及び演算装置２００が有する各構成要素の機能は、例えば、図１３に示す情報処理装置のハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図１３に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、ＰＨＳ、ＰＤＡ等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のＰＨＳは、Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。また、上記のＰＤＡは、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔの略である。
【０１０５】
図１３に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０と、を有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６と、を有する。但し、上記のＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。また、上記のＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。そして、上記のＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【０１０６】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【０１０７】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【０１０８】
出力部９１８としては、例えば、ＣＲＴ、ＬＣＤ、ＰＤＰ、又はＥＬＤ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略である。また、上記のＬＣＤは、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略である。そして、上記のＰＤＰは、Ｐｌａｓｍａ  ＤｉｓｐｌａｙＰａｎｅｌの略である。さらに、上記のＥＬＤは、Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略である。
【０１０９】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【０１１０】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。但し、上記のＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【０１１１】
接続ポート９２４は、例えば、ＵＳＢポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。但し、上記のＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略である。また、上記のＳＣＳＩは、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅの略である。
【０１１２】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ用の通信カード、光通信用のルータ、ＡＤＳＬ用のルータ、又は各種通信用のモデム等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、上記のＷＵＳＢは、Ｗｉｒｅｌｅｓｓ  ＵＳＢの略である。そして、上記のＡＤＳＬは、Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅの略である。
【０１１３】
＜２：まとめ＞
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、ＰＣ、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステムなど、種々の情報処理装置に対して適用することができる。例えば、後述するタスク管理装置の機能は、例えば、高性能なＰＣなどの情報処理装置により実現することができる。また、後述する演算装置の機能は、例えば、ＰＣ、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステムなどの情報処理装置により実現することができる。
【０１１４】
本実施形態に係るタスク管理装置は、次のように表現することができる。当該タスク管理装置は、次のような能力情報取得部と、タスク管理部とを有する。当該能力情報取得部は、自然エネルギーに由来する電力を利用して演算を実行する演算装置から、当該演算装置が設置された地域の気象情報に基づいて予測される当該演算装置の演算能力を示す能力情報を取得するものである。また、上記のタスク管理部は、前記能力情報取得部により複数の前記演算装置から取得された能力情報に基づいて当該複数の演算装置に演算タスクを割り当てるものである。
【０１１５】
上記のタスク管理装置は、上記の能力情報取得部を有することにより、演算実行時における各演算装置の演算能力を知ることができる。例えば、気象情報を利用すると、演算タスクの実行時（演算開始予定時刻から所定時間経過後まで）における自然エネルギーに由来する電力の発電量を予測することができる。電力の発電量が分かると、演算装置により単位電力当たりに実行可能な演算量に、その発電量をかけることにより演算タスクの実行時における演算装置の演算能力を評価することが可能になる。このようにして演算能力が評価できると、その評価結果を利用して演算タスクを完了できると期待される演算装置を抽出することができる。
【０１１６】
つまり、ある演算タスクの演算量が、ある演算装置が実行時に有する演算能力を越えない場合、その演算タスクを、その演算装置に割り当てればよい。一方、ある演算タスクの演算量が、ある演算装置が実行時に有する演算能力を越える場合、その演算装置を、その演算タスクの割り当て対象から除外すればよい。このような処理を繰り返すことにより、実行すべき演算タスクを適切な演算装置に割り当てることが可能になる。つまり、一部の演算装置による演算タスクの実行が大きく遅延することによりシステム全体のパフォーマンスが著しく低下するのを防止することが可能になる。
【０１１７】
（備考）
上記のタスク管理部１０６は、演算依頼部、結果取得部の一例である。
【０１１８】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１１９】
１０      分散処理システム
５０      ネットワーク
７０      気象情報提供サービス
１００    タスク管理装置
１０１    通信部
１０２    気象情報取得部
１０３    演算能力予測部
１０４    能力情報取得部
１０５    演算能力検証部
１０６    タスク管理部
１０７    不正検出部
２００    演算装置
２０１    通信部
２０２    気象情報取得部
２０３    演算能力予測部
２０４    演算実行部
３００    蓄電池
【図１】
0005582016.tif 000002
【図２】
0005582016.tif 000003
【図３】
0005582016.tif 000004
【図４】
0005582016.tif 000005
【図５】
0005582016.tif 000006
【図６】
0005582016.tif 000007
【図７】
0005582016.tif 000008
【図８】
0005582016.tif 000009
【図９】
0005582016.tif 000010
【図１０】
0005582016.tif 000011
【図１１】
0005582016.tif 000012
【図１２】
0005582016.tif 000013
【図１３】
0005582016.tif 000014