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