(57)【要約】【課題】  計算機演算処理に要したエネルギ使用量に対するエネルギ料金を反映した計算機使用料金を計算機演算処理毎に算出できる計算機使用料金算出装置を提供する。【解決手段】  複数の計算機２に分散して実行中または実行済みの計算機演算処理を計算機２別に区分し、且つ、計算機２毎に時系列に１または複数に区分した演算処理片に対し各別に、計算機２が消費したエネルギの時間単価と演算処理時間を乗じて前記各演算処理片のエネルギ料金を算出して合計することにより前記計算機演算処理のエネルギ料金を算出する料金算出処理を、管理用コンピュータ４の計算機演算処理により実行する。前記演算処理片は、１つの計算機上でエネルギの時間単価が一定の時間帯内で演算処理が終了するように、所定の区分処理により区分されるのが好ましい。【選択図】  図２
2005266845.tif 000002
【特許請求の範囲】
【請求項１】
実行中または実行済みの計算機演算処理を時系列に区分した複数の演算処理片に対し各別に、計算機が消費したエネルギの時間単価と演算処理時間を乗じて前記各演算処理片のエネルギ料金を算出して合計することにより前記計算機演算処理のエネルギ料金を算出する料金算出処理を、管理用の計算機演算処理により実行することを特徴とする計算機使用料金算出装置。
【請求項２】
複数の計算機に分散して実行中または実行済みの計算機演算処理を前記計算機別に区分し、且つ、前記計算機毎に時系列に１または複数に区分した演算処理片に対し各別に、前記計算機が消費したエネルギの時間単価と演算処理時間を乗じて前記各演算処理片のエネルギ料金を算出して合計することにより前記計算機演算処理のエネルギ料金を算出する料金算出処理を、管理用の計算機演算処理により実行することを特徴とする計算機使用料金算出装置。
【請求項３】
前記各演算処理片の演算処理がそれを実行する前記計算機に対するエネルギの時間単価が一定の時間帯内で収まるように、前記計算機演算処理を前記各演算処理片に区分する区分処理を、前記管理用の計算機演算処理により実行することを特徴とする請求項１または２に記載の計算機使用料金算出装置。
【請求項４】
計算機演算処理を複数の計算機に投入するために、複数の並列または縦列する演算処理単位または並列且つ縦列する演算処理単位に分割する計算機演算処理分割方法であって、
前記計算機演算処理を、前記各計算機と演算処理時間帯によって複数の演算処理単位に分割する分割工程と、
前記演算処理単位毎の予測演算処理量を算出する演算処理量予測工程と、
前記演算処理単位毎に前記計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に前記予測演算処理量から導出される予測演算処理時間を乗じて前記各演算処理単位の演算処理料金を算出し、少なくとも次の同期タイミングまでの前記各演算処理単位の前記演算処理料金を合計することにより前記計算機演算処理の演算処理料金を予測する料金予測工程と、
前記分割工程により分割された前記各演算処理単位に前記複数の計算機を夫々対応させ、前記料金予測工程により予測される前記計算機演算処理の演算処理料金が最小となる、前記演算処理単位に対する前記計算機の割り当てを決定する最適化工程と、
前記最適化工程で割り当てられた前記各計算機に、夫々対応する前記演算処理単位を投入する投入工程と、
を管理用の計算機演算処理により実行することを特徴とする計算機演算処理分割方法。
【請求項５】
前記分割工程により分割された前記各演算処理単位の同期タイミング毎に、前記最適化工程を再実行し、前記投入工程において、再実行された前記最適化工程で割り当てられた前記各計算機に、夫々対応する前記演算処理単位を投入することを特徴とする請求項４に記載の計算機演算処理分割方法。
【請求項６】
前記投入工程に要する通信料金と、前記最適化工程で割り当てられた前記各計算機と前記演算処理単位との対応関係に基づく前記計算機演算処理の演算処理料金との合計で定まる第２の演算処理料金を算出する第２料金算出工程と、
前記分割工程で分割された前記演算処理単位毎に、前記計算機演算処理の存在する計算機だけで演算処理すると仮定した場合の、前記演算処理単位毎の第２予測演算処理時間を算出する第２演算処理時間予測工程と、
前記分割工程で分割された前記演算処理単位毎に、前記計算機演算処理の存在する計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に第２予測演算処理時間を乗じて前記各演算処理単位の演算処理料金を算出し、少なくとも次の同期タイミングまでの前記各演算処理単位の前記演算処理料金を合計することにより前記計算機演算処理の第３の演算処理料金を算出する第３料金算出工程と、
を前記管理用の計算機演算処理により更に実行し、
前記第２の演算処理料金が前記第３の演算処理料金より低い場合に、前記投入工程が実行されることを特徴とする請求項４または５に記載の計算機演算処理分割方法。
【請求項７】
前記各計算機から夫々が実行した前記演算処理単位の演算処理時間に関する情報を受信し、前記演算処理単位毎に前記計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に前記演算処理時間を乗じて前記各演算処理単位の演算処理料金を算出し、前記各演算処理単位の前記演算処理料金を全て合計することにより前記計算機演算処理の演算処理料金を算出する料金算出工程を、前記管理用の計算機演算処理により更に実行することを特徴とする請求項４〜６の何れか１項に記載の計算機演算処理分割方法。
【請求項８】
請求項１または２に記載の計算機使用料金算出装置における前記料金算出処理をコンピュータ上で実行するコンピュータプログラムを有する計算機使用料金算出プログラム。
【請求項９】
請求項４〜７の何れか１項に記載の計算機演算処理分割方法における前記各工程の処理をコンピュータ上で夫々実行するコンピュータプログラムを有する計算機演算処理分割プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機使用料金算出装置及び計算機演算処理分割方法に関し、より詳細には、グリッドコンピューティング等のネットワーク上に分散している複数の計算機による並列演算処理の各計算機における電力コストを考慮した、計算機使用料金算出装置及び計算機演算処理分割方法に関する。
【背景技術】
【０００２】
外部の利用者に対して計算機処理サービスを提供する場合の計算機使用料金は、一般に、定額の基本料金と従量料金に分けて設定されており、個々の計算機演算処理に対しては従量料金が課金される。また、従量料金は、計算機演算処理に要したＣＰＵ時間による時間単価及び記憶装置の使用容量に応じて計算されるのが一般的である。
【０００３】
グリッドコンピューティング等のネットワーク上に分散している複数の計算機に計算機演算処理を分割して実行させる並列演算処理の場合は、各計算機での従量料金の合計が計算機演算処理に対する計算機使用料金となる。
【０００４】
上記のような並列演算処理において、計算機演算処理を如何に複数の演算処理単位に分割して、どの計算機にどの演算処理単位を割り当てるかによって、各計算機の混雑度、処理速度、及び、ＣＰＵ時間単価によって、計算機演算処理の完了する早さ（納期）や料金に差異が生じる。そこで、納期を優先する場合は、なるべく多くの演算処理単位を混雑していない、或いは、処理速度の高い計算機に割り当てるように、計算機演算処理の分割及び割り当てが行われている。また、計算機使用料金を安価に抑えたい場合は、分割された演算処理単位を従量料金の安価な計算機に割り当て、その時の演算処理単位を各計算機に転送する通信コストも含めて最適化する計算機演算処理の分割・割り当て方法が提案されている（例えば、下記特許文献１参照）。
【特許文献１】特表２００１−５０３１７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
計算機使用料金の基本料金や従量料金は、その計算機の稼働に要する費用の一部または全部を利用者負担とするべく、例えば過去の実績等を参考に、基本料金や従量料金に割り振って定められる。そこで、計算機の稼働に要する費用としては、大型計算機やスーパーコンピュータ等では、計算機を作動させるための電力料金が大きな比率を占めている。
【０００６】
ところで、上記並列演算処理の場合は、演算処理に利用する複数の計算機がネットワーク上に分散しているため、当該ネットワークがインターネット等のように全世界に広がっている場合は、当該複数の計算機も全世界に分散することになる。また、同時に処理される複数の演算処理単位が、ある計算機では昼間に処理され、別の計算機では夜間に処理されることになる。従って、計算機毎に各演算処理単位の実行時間帯における電力料金が、その地域及び時間帯によって種々に変化することになる。また、計算機演算処理を並列演算処理に分割せずに、１つの計算機で処理する場合でも、実行時間帯によって演算処理に要する電力料金は異なる。
【０００７】
しかしながら、最近の世界的な電力自由化の流れの中、電力料金は地域、時間によって種々に異なっているのに対して、個々の計算機演算処理に対する従量料金は、演算処理に要した消費電力に応じた電力料金（またはエネルギ料金）を反映した公平な課金となっていないのが現状である。
【０００８】
本発明は、上述の問題点に鑑みてなされたものであり、その第１の目的は、上記問題点を解消し、計算機演算処理に要したエネルギ使用量に対するエネルギ料金を反映した計算機使用料金を計算機演算処理毎に算出できる計算機使用料金算出装置を提供することにある。また、本発明の第２の目的は、計算機演算処理に要したエネルギ使用量に対するエネルギ料金を反映した計算機使用料金が課金される場合に、当該計算機使用料金を最適化可能な、計算機演算処理を複数の計算機に投入するための計算機演算処理分割方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記第１の目的を達成するための本発明に係る計算機使用料金算出装置は、実行中または実行済みの計算機演算処理を時系列に区分した複数の演算処理片に対し各別に、計算機が消費したエネルギの時間単価と演算処理時間を乗じて前記各演算処理片のエネルギ料金を算出して合計することにより前記計算機演算処理のエネルギ料金を算出する料金算出処理を、管理用の計算機演算処理により実行することを第１の特徴とする。
【００１０】
更に、同計算機使用料金算出装置は、複数の計算機に分散して実行中または実行済みの計算機演算処理を前記計算機別に区分し、且つ、前記計算機毎に時系列に１または複数に区分した演算処理片に対し各別に、前記計算機が消費したエネルギの時間単価と演算処理時間を乗じて前記各演算処理片のエネルギ料金を算出して合計することにより前記計算機演算処理のエネルギ料金を算出する料金算出処理を、管理用の計算機演算処理により実行することを第２の特徴とする。
【００１１】
更に、同計算機使用料金算出装置は、上記第１または第２の特徴に加えて、前記各演算処理片の演算処理がそれを実行する前記計算機に対するエネルギの時間単価が一定の時間帯内で収まるように、前記計算機演算処理を前記各演算処理片に区分する区分処理を、前記管理用の計算機演算処理により実行することを第３の特徴とする。
【００１２】
上記第１の特徴の計算機使用料金算出装置によれば、時間帯によって計算機の稼働に要するエネルギ単価が変動する場合に、例えば１台の計算機による計算機演算処理を、時系列に沿って複数の演算処理片に区分し、各演算処理片の属する時間帯におけるエネルギの時間単価と演算処理時間を乗じて各演算処理片のエネルギ料金を算出し、各演算処理片のエネルギ料金を合計することで、計算機演算処理全体のエネルギ料金を算出できる。この結果、このエネルギ料金に基づいて、計算機演算処理によって計算機が消費したエネルギのエネルギコストを反映した計算機使用料金を使用者に課金することができる。従って、例えば夜間に安価な深夜料金を利用して計算機演算処理を行う使用者は、その安価な深夜料金を利用するメリットを享受できることになる。
【００１３】
更に、上記第２の特徴の計算機使用料金算出装置によれば、計算機の所在地によって計算機の稼働に要するエネルギ単価が異なり、或いは、時間帯によって計算機の稼働に要するエネルギ単価が変動する場合に、複数の計算機に分散して実行中または実行済みの計算機演算処理についても、計算機毎に時系列に沿って１または複数の演算処理片に区分し、各演算処理片の属する時間帯におけるエネルギの時間単価と演算処理時間を乗じて各演算処理片のエネルギ料金を算出し、各演算処理片のエネルギ料金を合計することで、計算機演算処理全体のエネルギ料金を算出できる。この結果、複数の計算機に分散して実行中または実行済みの計算機演算処理についても、このエネルギ料金に基づいて、計算機演算処理によって計算機が消費したエネルギのエネルギコストを反映した計算機使用料金を使用者に課金することができる。
【００１４】
更に、上記第３の特徴の計算機使用料金算出装置によれば、各演算処理片の属する時間帯におけるエネルギの時間単価が一定となるように、各演算処理片が規定されるため、各演算処理片のエネルギ料金を算出が簡単な乗算で実施できる。
【００１５】
ここで、管理用の計算機演算処理は、計算機使用料金算出装置が実行する計算機演算処理を意味し、使用料金算出対象の計算機演算処理とは異なる。また、エネルギ単価とは、計算機の単位エネルギ使用量当りのエネルギ料金であり、エネルギの時間単価とは、各演算処理片の単位演算処理時間当りのエネルギ料金を意味する。従って、エネルギ単価が高ければ、エネルギの時間単価も比例して高くなる。また、区分された演算処理片は、エネルギ料金算出のための単位であって、必ずしも演算処理の単位と一致する必要はない。
【００１６】
上記第２の目的を達成するための本発明に係る計算機演算処理分割方法は、計算機演算処理を複数の計算機に投入するために、複数の並列または縦列する演算処理単位または並列且つ縦列する演算処理単位に分割する計算機演算処理分割方法であって、前記計算機演算処理を、前記各計算機と演算処理時間帯によって複数の演算処理単位に分割する分割工程と、前記演算処理単位毎の予測演算処理量を算出する演算処理量予測工程と、前記演算処理単位毎に前記計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に前記予測演算処理量から導出される予測演算処理時間を乗じて前記各演算処理単位の演算処理料金を算出し、少なくとも次の同期タイミングまでの前記各演算処理単位の前記演算処理料金を合計することにより前記計算機演算処理の演算処理料金を予測する料金予測工程と、前記分割工程により分割された前記各演算処理単位に前記複数の計算機を夫々対応させ、前記料金予測工程により予測される前記計算機演算処理の演算処理料金が最小となる、前記演算処理単位に対する前記計算機の割り当てを決定する最適化工程と、前記最適化工程で割り当てられた前記各計算機に、夫々対応する前記演算処理単位を投入する投入工程と、を管理用の計算機演算処理により実行することを第１の特徴とする。
【００１７】
上記第１の特徴の計算機演算処理分割方法によれば、計算機演算処理によって計算機が消費したエネルギのエネルギコストを反映した計算機使用料金が使用者に対して課金される場合において、分割工程で分割された計算機演算処理に対するエネルギコストを反映した演算処理料金を料金予測工程で予測し、最適化工程において、最小の演算処理料金となる演算処理単位に対する計算機の割り当てが決定されるため、投入工程で各計算機に投入される演算処理単位によって処理される計算機演算処理は、演算処理料金が最適化される。
【００１８】
更に、同計算機演算処理分割方法は、上記第１の特徴に加えて、前記分割工程により分割された前記各演算処理単位の同期タイミング毎に、前記最適化工程を再実行し、前記投入工程において、再実行された前記最適化工程で割り当てられた前記各計算機に、夫々対応する前記演算処理単位を投入することを第２の特徴とする。
【００１９】
上記第２の特徴の計算機演算処理分割方法によれば、各プロセスの実際の演算処理時間や経過時間は、投入先の各計算機の負荷状況に左右され変化するため、最初に最適化された計算機と各演算処理単位との対応関係が、次の同期タイミング時点で必ずしも最適化状態とは限らないため、同期タイミング毎に、最適化工程を実行することで、最終的に全てのプロセスの演算処理料金の合計が計算の経過状況に即して最適化されることになる。
【００２０】
更に、同計算機演算処理分割方法は、上記第１または第２の特徴に加えて、前記投入工程に要する通信料金と、前記最適化工程で割り当てられた前記各計算機と前記演算処理単位との対応関係に基づく前記計算機演算処理の演算処理料金との合計で定まる第２の演算処理料金を算出する第２料金算出工程と、前記分割工程で分割された前記演算処理単位毎に、前記計算機演算処理の存在する計算機だけで演算処理すると仮定した場合の、前記演算処理単位毎の第２予測演算処理時間を算出する第２演算処理時間予測工程と、前記分割工程で分割された前記演算処理単位毎に、前記計算機演算処理の存在する計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に前記第２予測演算処理時間を乗じて前記各演算処理単位の演算処理料金を算出し、少なくとも次の同期タイミングまでの前記各演算処理単位の前記演算処理料金を合計することにより前記計算機演算処理の第３の演算処理料金を算出する第３料金算出工程と、を前記管理用の計算機演算処理により更に実行し、前記第２の演算処理料金が前記第３の演算処理料金より低い場合に、前記投入工程が実行されることを第３の特徴とする。
【００２１】
上記第３の特徴の計算機演算処理分割方法によれば、各演算処理単位を最適化工程で割り当てられた各計算機に投入するために要する通信料金を考慮に入れて、並列演算処理が低コストで実行可能な場合に、当該並列演算処理が開始されるため、演算処理の速度よりコストを優先させる場合に、並列演算処理が最小コストで実行できない場合は、当該実行が保留される。この結果、並列演算処理における通信料金を考慮に入れたコスト最適化が実現できる。
【００２２】
更に、同計算機演算処理分割方法は、第１、第２または第３の特徴に加えて、前記各計算機から夫々が実行した前記演算処理単位の演算処理時間に関する情報を受信し、前記演算処理単位毎に前記計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に前記演算処理時間を乗じて前記各演算処理単位の演算処理料金を算出し、前記各演算処理単位の前記演算処理料金を全て合計することにより前記計算機演算処理の演算処理料金を算出する料金算出工程を、前記管理用の計算機演算処理により更に実行することを第４の特徴とする。
【００２３】
上記第４の特徴の計算機演算処理分割方法によれば、計算機演算処理によって計算機が消費したエネルギのエネルギコストを反映した計算機使用料金が使用者に対して課金される場合において、分割工程で分割され、実際に演算処理された計算機演算処理に対するエネルギコストを反映した演算処理料金が料金算出工程で算出される。この結果、このエネルギ料金に基づいて、計算機演算処理によって計算機が消費したエネルギのエネルギコストを反映した計算機使用料金を使用者に課金することができる。
【００２４】
上記第１の目的を達成するための本発明に係る計算機使用料金算出プログラムは、上記第１または第２の特徴を備えた計算機使用料金算出装置における前記区分処理、及び、前記料金算出処理をコンピュータ上で夫々実行するコンピュータプログラムを有する。
【００２５】
上記計算機使用料金算出プログラムによれば、各コンピュータプログラムをコンピュータ上で夫々実行することで、上記特徴の作用効果を奏する本発明に係る計算機使用料金算出装置が当該コンピュータ上で実現される。
【００２６】
上記第２の目的を達成するための本発明に係る計算機演算処理分割プログラムは、上記第４〜第７の何れか１つの特徴を備えた計算機演算処理分割方法における前記各工程の処理をコンピュータ上で夫々実行するコンピュータプログラムを有する。
【００２７】
上記計算機演算処理分割プログラムによれば、各コンピュータプログラムをコンピュータ上で夫々実行することで、上記特徴の作用効果を奏する本発明に係る計算機演算処理分割方法を当該コンピュータ上で実施できる。
【発明を実施するための最良の形態】
【００２８】
本発明に係る計算機使用料金算出装置（以下、適宜「本発明装置」という。）及び計算機演算処理分割方法（以下、適宜「本発明方法」という。）の実施の形態につき、図面に基づいて説明する。
【００２９】
本実施形態では、図１に示すように、計算プログラムとデータで構成された１つの計算機演算処理（以下、便宜的に「ジョブ」という。）を複数の並列且つ縦列する演算処理単位（以下、便宜的に「プロセス」という。）に分割して、図２に模式的に示すようなインターネット等のコンピュータネットワーク３上に分散して相互に接続する複数の計算機２（コンピュータ）に並列的に実行させるグリッドコンピューティングを想定して説明する。ここで、並列するプロセスとは、複数の計算機において各プロセスが並列に実行される場合を、縦列するプロセスとは、同じ計算機または異なる計算機間で、各プロセスが時間的に前後して実行される場合を意味する。
【００３０】
〈第１実施形態〉
本発明装置１は、グリッドコンピューティングを管理する管理用コンピュータ４上で実行されるグリッドコンピューティング管理プログラムの一部を構成する計算機使用料金算出プログラムを実行することにより実現される。
【００３１】
計算機使用料金算出プログラムは、各計算機２に割り当てられた一連のプロセスを時系列に複数の縦列する演算処理片に区分する区分処理プログラムステップと、演算処理片毎に計算機２が消費した電力（エネルギ）の時間単価と演算処理時間を乗じて各演算処理片のエネルギ料金を算出して合計することによりジョブのエネルギ料金を算出する料金算出処理プログラムステップを備えて構成される。
【００３２】
本発明装置１は、既に処理完了したジョブまたは既に複数の計算機に対して投入された実行中のジョブに対する各計算機の消費電力に応じたエネルギ料金を計算する装置で、ジョブの演算処理量に応じた従量料金の一部または全部を当該エネルギ料金により課金可能とするものである。第１実施形態では、後述する第１実施形態におけるコスト最適化処理は考慮していない。また、以下の説明では、各計算機で各別に実行される一連のプロセスの夫々が、エネルギの時間単価が同じ時間帯内で処理されるものと仮定し、区分処理により生成される演算処理片とプロセスが一致する場合を想定する。以下、図３のフローチャートを参照して本発明装置１の動作及び処理手順を説明する。
【００３３】
先ず、本発明装置１の本体であるグリッドコンピューティング管理プログラムが、ジョブを図１に例示するような複数の並列且つ縦列するプロセスに分割する（ステップ＃１）。ここで、図１の各プロセスの表記でプロセス２Ａ、プロセス５Ｃａ等とある１番目の１、２，３・・・は、各プロセスの時系列に沿った演算処理順序を表し、２番目のＡ、Ｂ、Ｃ・・・は計算機を区別し、ない場合は１台の計算機での処理を示し、３番目のａ、ｂ（ない場合もある）は同じ計算機上での並列処理を区別する。尚、図１の例では、プロセス３Ａ、３Ｂ，３Ｃとプロセス４Ａ，４Ｂ，４Ｃ、プロセス５Ａ，５Ｂ，５Ｃａ，５Ｃｂとプロセス６Ａ，６Ｂ、及び、プロセス６Ａ，６Ｂとプロセス７の夫々の間に、同期ポイントが発生している。同期ポイントでは、次段の各プロセスが、その前段の各プロセスの演算処理結果を相互に利用するため、前段の各プロセスの演算処理の終了を待つ必要がある。
【００３４】
次に、分割された各プロセスの前後関係を抽出して、所定のデータベースに記憶する（ステップ＃２）。引き続き、各プロセスの計算量（ＣＰＵ負荷）を算出し、前記データベースに記憶する（ステップ＃３）。
【００３５】
次に、各プロセスの投入先（計算機）の候補に対して、稼動状況（稼動しているか否か、定期メンテナンス等で稼動停止の場合を考慮）、空き状況（混雑度）、時間帯別のエネルギ時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）を問い合わせて、結果をテーブル化して記憶する（ステップ＃４）。“ｔ”は時間帯の区別を示す。図４に取得する情報を図式化して模式的に示す。尚、この問い合わせは、事前に行っておいてもよい。本実施形態では、計算機使用料金の従量料金が、ＣＰＵ時間に比例し、且つ、その演算処理時のエネルギ単価を反映したエネルギ料金と、ＣＰＵ時間に比例し、且つ、その演算処理時のエネルギ単価と関係ないＣＰＵ料金とで構成されている場合を想定する。
【００３６】
次に、各プロセスを実行する投入先（計算機）の割り当てを決定する（ステップ＃５）。この割り当ては、処理速度を優先する場合、計算コストを優先する場合で、最適化処理が異なる。例えば、処理速度を優先する場合は、混雑度の低い計算機から順番にＣＰＵ負荷の大きいプロセスを順番に割り当てる。
【００３７】
次に、ステップ＃５で割り当てられた各投入先へ各プロセスを投入する（ステップ＃６）。投入された各プロセスは、投入先の計算機で処理されるが、各計算機は、各プロセスの演算処理に要したＣＰＵ時間とその経過時間（開始と終了時刻）を記録し、各計算機でのプロセスが終了する毎、或いは、全てのプロセスが終了した時点で、本発明装置１にその情報を送信する。本発明装置１は、その情報を受信して、料金算出処理を実行する（ステップ＃７）。
【００３８】
料金算出処理は、プロセス毎に、各プロセスのＣＰＵ時間Ｔ（ｉ）と、それが処理された計算機と時間帯のエネルギ時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）を乗じて、数１で与えられるプロセス毎の従量料金Ｐ１（ｉ）を計算する。ここで、“ｉ”は、プロセスまたは演算処理片の区別を表す。数１において、Ｅ１（ｉ）が各プロセスにおけるエネルギ料金を表している。
【００３９】
（数１）
Ｐ１（ｉ）＝Ｅ１（ｉ）＋Ｃ１（ｉ）
Ｅ１（ｉ）＝Ｔ（ｉ）×Ｅ０（ｔ）
Ｃ１（ｉ）＝Ｔ（ｉ）×Ｃ０（ｔ）
【００４０】
各プロセスの従量料金Ｐ１（ｉ）を全てのプロセスに対して合計すると、数２に示すように、ジョブ全体での計算機使用料金（従量料金）Ｐ２が算出できる。
【００４１】
（数２）
Ｐ２＝ΣＰ１（ｉ）
【００４２】
上記の説明では、区分処理により生成される演算処理片とプロセスが一致する場合を想定したが、一部のプロセスの演算処理途中で、エネルギ時間単価Ｅ０（ｔ）が変化する場合の処理の一例を説明する。
【００４３】
第１の例として、各プロセスの経過時間（開始と終了時刻）が、エネルギ時間単価Ｅ０（ｔ）が変化点を含んでいるかを判定し、変化点を含んでいる場合は、その変化点の前後の経過時間で、当該プロセスを２つの演算処理片に区分し、夫々の演算処理片のＣＰＵ時間を、各経過時間比で按分して配分する。従って、区分された演算処理片を夫々プロセスと同様に扱って、数１及び数２の算出式によってジョブ全体での計算機使用料金（従量料金）Ｐ２を算出する。
【００４４】
第２の例として、各計算機が各プロセスのＣＰＵ時間を積算する際に、各プロセスのエネルギ時間単価Ｅ０（ｔ）の変化点におけるＣＰＵ時間を記録しておき、各プロセスのＣＰＵ時間を経過時間とともに送信する際に、当該変化点におけるＣＰＵ時間も含めて送信する。従って、各プロセスの経過時間（開始と終了時刻）が、エネルギ時間単価Ｅ０（ｔ）が変化点を含んでいるかを判定し、変化点を含んでいる場合は、その変化点の前後の経過時間で、当該プロセスを２つの演算処理片に区分し、夫々の演算処理片のＣＰＵ時間を、受信した変化点におけるＣＰＵ時間を前半の演算処理片のＣＰＵ時間とし、プロセス全体のＣＰＵ時間から変化点におけるＣＰＵ時間を差し引いたＣＰＵ時間を後半の演算処理片のＣＰＵ時間とする。そして、区分された演算処理片を夫々プロセスと同様に扱って、数１及び数２の算出式によってジョブ全体での計算機使用料金（従量料金）Ｐ２を算出する。
【００４５】
〈第２実施形態〉
次に、本発明に係る計算機演算処理分割方法（本発明方法）について説明する。本発明方法は、グリッドコンピューティング管理プログラムの一部を構成する計算機演算処理分割プログラムを、管理用コンピュータ（図２参照）上で実行することにより実現される。
【００４６】
計算機演算処理分割プログラムは、ジョブを、各計算機２と演算処理時間帯によって複数のプロセスに分割する分割工程を実行するプログラムステップと、プロセス毎の予測演算処理量（予測ＣＰＵ負荷）を算出する演算処理量予測工程を実行するプログラムステップと、プロセス毎に計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に予測ＣＰＵ負荷を計算機の処理速度で除して得られる予測ＣＰＵ時間を乗じて各プロセスの演算処理料金を算出し、少なくとも次の同期タイミングまでの各プロセスの演算処理料金を合計することにより計算機演算処理の演算処理料金を予測する料金予測工程を実行するプログラムステップと、分割工程により分割された各演算処理単位に複数の計算機を夫々対応させ、料金予測工程により予測される計算機演算処理の演算処理料金が最小となる、各プロセスに対する計算機の割り当てを決定する最適化工程を実行するプログラムステップと、最適化工程で割り当てられた各計算機に夫々対応するプロセスを投入する投入工程を実行するプログラムステップと、各計算機から夫々が実行したプロセスのＣＰＵ時間に関する情報を受信し、プロセス毎に計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に実際のＣＰＵ時間を乗じて各プロセスの演算処理料金を算出し、各プロセスの演算処理料金を全て合計することによりジョブ全体の演算処理料金を算出する料金算出工程を実行するプログラムステップと、を備えて構成される。
【００４７】
本発明方法は、ジョブを複数のプロセスに分割し各プロセスを複数の計算機に割り振って並列演算処理する際に、各計算機の消費電力に応じたエネルギ料金を考慮した演算処理に対する従量料金が最適化されるように、各プロセスと各計算機を最適条件で対応付ける方法である。以下の説明では、各計算機で各別に実行される一連のプロセスの夫々が、エネルギの時間単価が同じ時間帯内で処理されるものと仮定する。以下、図５のフローチャートを参照して本発明方法の処理手順を説明する。
【００４８】
先ず、本発明方法を実行する計算機演算処理分割プログラム（第１実施形態のグリッドコンピューティング管理プログラムに相当）が、ジョブを図１に例示するような複数の並列且つ縦列するプロセスに分割する（ステップ＃１）。
【００４９】
次に、分割された各プロセスの前後関係を抽出して、所定のデータベースに記憶する（ステップ＃２）。引き続き、各プロセスの計算量（ＣＰＵ負荷）Ｋ’（ｉ）を予測して前記データベースに記憶する（ステップ＃３）。尚、“ｉ”は、プロセスの区別を表す。
【００５０】
次に、各プロセスの投入先（計算機）の候補に対して、稼動状況（稼動しているか否か、定期メンテナンス等で稼動停止の場合を考慮）、空き状況（混雑度）、時間帯別のエネルギ時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）を問い合わせて、結果をテーブル化して記憶する（ステップ＃４）。“ｔ”は時間帯の区別を示す。図４に取得する情報を図式化して模式的に示す。尚、この問い合わせは、事前に行っておいてもよい。本実施形態では、計算機使用料金の従量料金が、ＣＰＵ時間に比例し、且つ、その演算処理時のエネルギ単価を反映したエネルギ料金と、ＣＰＵ時間に比例し、且つ、その演算処理時のエネルギ単価と関係ないＣＰＵ料金とで構成されている場合を想定する。
【００５１】
次に、各プロセスを実行する投入先（計算機）の割り当てを決定する（ステップ＃５）。本実施形態では、この割り当てにおいて、計算コストを優先する最適化処理が実行される。例えば、投入時間帯におけるエネルギ時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）の合計の低い計算機から順番にＣＰＵ負荷の大きいプロセスを順番に割り当てる。ここで、割り当て対象となるプロセスは、次の同期タイミングまでに処理されるプロセスである。尚、図６に示すように、単にエネルギ時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）の合計の低い計算機から順番に、その混雑度を無視してプロセスの割り当てを実行すると、特定の計算機における演算処理経過時間が他の計算機に比べて異常に長くなる虞があるので、予測ＣＰＵ時間Ｔ’（ｉ）と混雑度を考慮して、所定の組み合わせアルゴリズムに従って複数通りのプロセスと計算機の対応関係を抽出する（ステップ＃５１）。次に、各対応関係に基づき、ステップ＃３で予測した各プロセスの計算量Ｋ’（ｉ）を対応する計算機の処理速度で除して、各プロセスのＣＰＵ時間Ｔ’（ｉ）を算出する（ステップ＃５２）。算出されたＣＰＵ時間Ｔ’（ｉ）は予測値であり、ジョブの内容に応じて相当の誤差の生じる可能性があるため、当該予測値はあくまでも目安である。そして、抽出した対応関係毎に、料金予測工程を実行する（ステップ＃５３）。そして、抽出された複数の対応関係の中から次の同期タイミングまでに処理されるプロセスの各演算処理料金Ｐ１’（ｉ）の合計が最小の対応関係を抽出する（ステップ＃５４）。
【００５２】
料金予測工程では、先ず、プロセス毎に、各プロセスの予測ＣＰＵ時間Ｔ’（ｉ）と、割り当て予定の計算機と時間帯のエネルギ時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）を乗じて、数３で与えられるプロセス毎の従量料金Ｐ１’（ｉ）を計算し、数４で与えられる算出式で次の同期タイミングまでに処理されるプロセス全体での計算機使用料金（従量料金）Ｐ２’を算出する。
【００５３】
（数３）
Ｐ１’（ｉ）＝Ｅ１’（ｉ）＋Ｃ１’（ｉ）
Ｅ１’（ｉ）＝Ｔ’（ｉ）×Ｅ０（ｔ）
Ｃ１’（ｉ）＝Ｔ’（ｉ）×Ｃ０（ｔ）
【００５４】
（数４）
Ｐ２’＝ΣＰ１’（ｉ）
但し、ｉは次の同期タイミングまでに処理されるプロセス全てに亘る。
【００５５】
次に、ステップ＃５で割り当てられた各投入先へ次の同期タイミングまでの各プロセスを投入する（ステップ＃６）。投入された各プロセスは、投入先の計算機で夫々処理されるが、次の同期タイミング時点で、夫々投入された各プロセスの実行が終了するので、次のプロセスの投入に対して待機することになる。従って、次の同期タイミングの到来を判定し（ステップ＃７）、同期タイミング時点において、上記ステップ＃５の処理を繰り返し、新たに割り当てられた計算機に次の各プロセスを投入する（ステップ＃６）。
【００５６】
ステップ＃７の同期タイミングの到来判定において、全てのプロセスの演算処理の終了を判定した場合、ステップ＃８の料金算出工程に移行する。
【００５７】
ジョブの開始時点及び各同期タイミング時点で投入された各プロセスは、投入先の計算機で夫々処理されるが、各計算機は、各プロセスの演算処理に要したＣＰＵ時間とその経過時間（開始と終了時刻）を記録し、各計算機でのプロセスが終了する毎、同期タイミング時点、或いは、全てのプロセスが終了した時点で、本発明方法を実行する管理用のコンピュータにその情報を送信する。管理用のコンピュータは、その情報を受信して、料金算出工程を実行する（ステップ＃８）。
【００５８】
料金算出工程は、プロセス毎に、各プロセスの実際のＣＰＵ時間Ｔ（ｉ）と、それが処理された計算機と時間帯のエネルギ時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）を乗じて、数１で与えられるプロセス毎の従量料金Ｐ１（ｉ）を計算し、数２で与えられる算出式でジョブ全体での計算機使用料金（従量料金）Ｐ２。尚、料金算出工程は、第１実施形態の料金算出処理と同じであるので、重複する説明は割愛する。尚、上記の説明では、各計算機で各別に実行される一連のプロセスの夫々が、エネルギの時間単価が同じ時間帯内で処理される場合を想定したが、一部のプロセスの演算処理途中で、エネルギ時間単価Ｅ０（ｔ）が変化する場合の処理は、第１実施形態で説明した要領で同様に処理可能である。
【００５９】
〈第３実施形態〉
次に、本発明方法の別実施形態について説明する。第３実施形態における本発明方法を実現する計算機演算処理分割プログラムは、第２実施形態の構成に加えて、更に、投入工程に要する通信料金と、最適化工程で割り当てられた各計算機と各プロセスとの対応関係に基づくジョブの演算処理料金との合計で定まる第２の演算処理料金を算出する第２料金算出工程を実行するプログラムステップと、前記分割工程で分割されたプロセス毎に、ジョブの存在する計算機だけで演算処理すると仮定した場合の、プロセス毎の第２予測演算処理時間を算出する第２演算処理時間予測工程を実行するプログラムステップと、分割工程で分割されたプロセス毎に、ジョブの存在する計算機が消費するエネルギの時間単価とＣＰＵ時間単価の和に当該計算機での予測演算処理時間を乗じて各プロセスの演算処理料金を算出し、少なくとも次の同期タイミングまでの各プロセスの演算処理料金を合計することによりジョブの第３の演算処理料金を算出する第３料金算出工程を実行するプログラムステップと、を備えて構成される。
【００６０】
第３実施形態における本発明方法の第２実施形態との違いは、図５に示すフローチャートのステップ＃５の各プロセスへの計算機の割り当て処理（最適化工程）後で、ステップ＃６の投入工程前に、図７に示すように、投入判定工程を実施する点である。
【００６１】
投入判定工程は、先ず、投入工程に要する通信料金Ｄと、最適化工程で割り当てられた各計算機と各プロセスとの対応関係に基づく次の同期タイミングまでの全プロセスの演算処理料金Ｐ２’との合計で定まる第２の演算処理料金Ｐ３（＝Ｄ＋Ｐ２’）を算出する第２料金算出工程を実行する（ステップ＃５５）。尚、演算処理料金Ｐ２’は、料金予測工程で算出されたものを利用すればよい。
【００６２】
次に、分割工程で分割されたプロセスを、コンピュータネットワーク３を介して他の計算機２へ転送せずに、ジョブの存在する計算機だけで演算処理すると仮定した場合の、プロセス毎の第２予測ＣＰＵ時間Ｔ”（ｉ）を算出する第２演算処理時間予測工程を実行する（ステップ＃５６）。
【００６３】
次に、ジョブの存在する計算機が消費するエネルギの時間単価Ｅ０（ｔ）とＣＰＵ時間単価Ｃ０（ｔ）の和に当該計算機での第２予測ＣＰＵ時間Ｔ”（ｉ）を乗じて各プロセスの演算処理料金Ｐ３（ｉ）を、数５に示す算出式により算出し、次の同期タイミングまでの全プロセスの演算処理料金Ｐ３（ｉ）を、数６に示すように、合計して当該各プロセス全体の演算処理料金Ｐ４を算出する第３料金算出工程を実行する（ステップ＃５７）。
【００６４】
（数５）
Ｐ３（ｉ）＝Ｅ３（ｉ）＋Ｃ３（ｉ）
Ｅ３（ｉ）＝Ｔ”（ｉ）×Ｅ０（ｔ）
Ｃ３（ｉ）＝Ｔ”（ｉ）×Ｃ０（ｔ）
【００６５】
（数６）
Ｐ４＝ΣＰ３（ｉ）
但し、ｉは、次の同期タイミングまでに処理されるプロセス全てに亘る。
【００６６】
次に、第２料金算出工程で算出した通信料金を含む演算処理料金Ｐ３（＝Ｄ＋Ｐ２’）と、第３料金算出工程で算出した演算処理料金Ｐ４との大小比較を行い（ステップ＃５８）、演算処理料金Ｐ３が演算処理料金Ｐ４以下の場合に、投入工程（ステップ＃６）に移行する。演算処理料金Ｐ３が演算処理料金Ｐ４より高い場合は、投入タイミングを変更して（ステップ＃５９）、ステップ＃５に戻って、最適化工程及び投入判定工程を再実行する。例えば、所定回数再実行しても演算処理料金Ｐ３が演算処理料金Ｐ４以下にならない場合は（ステップ＃６０）、他の計算機２へ転送せずに、つまり、プロセスの投入は中止して、ジョブの存在する計算機だけで演算処理するか、或いは、利用者に対しジョブ中断の警告を発生する。ジョブの投入後の処理は、第２実施形態と同じであるので、重複する説明は割愛する。
【００６７】
以下に、別の実施形態につき説明する。
【００６８】
〈１〉上記実施形態における、ジョブの従量料金は、数１及び数２に示すように、各計算機が消費したエネルギ（電力）量に比例したエネルギ料金と、当該エネルギ量と関係なくＣＰＵ時間にのみ比例するＣＰＵ料金の合計で構成した場合を想定したが、従量料金を上記エネルギ料金だけで構成しても構わない。つまり、計算機の稼動に要するエネルギコスト以外のコストを定額の基本料金で回収する料金体系についても、本発明は適応可能である。
【００６９】
〈２〉上記第３実施形態において、投入判定工程で、演算処理料金Ｐ３と演算処理料金Ｐ４を比較する例を示したが、例えば、演算処理料金Ｐ３の中に占める通信料金Ｄの割合が、所定％以下の場合に、投入工程に移行するようにしても構わない。
【００７０】
〈３〉上記第２及び第３実施形態では、ジョブの内容によって、ＣＰＵ時間Ｔ’（ｉ）の予測精度が問題になる場合があるので、仮に、予測したＣＰＵ時間Ｔ’（ｉ）を超えて一部のプロセスの演算処理の実行が長引く場合に、利用者に対して、事前に警告を発するようにするのも好ましい。
【００７１】
〈４〉上記第２及び第３実施形態において、ジョブの演算処理経過時間の上限値を定めておいて、最適化工程において、各プロセスの実行する計算機の混雑度及び負荷率と予測ＣＰＵ時間から各プロセスの経過時間を予測し、データベースに記憶した各プロセスの前後関係に基づいてジョブ全体での総経過時間を予測し、コスト最適化に加えて、総経過時間がその上限値を超えないように最適化を行うのも好ましい実施の形態である。
【００７２】
〈５〉上記第１実施形態において、本発明に係る計算機使用料金算出装置は、グリッドコンピューティングを想定したエネルギ料金の算出に適用した場合につき説明したが、１台の計算機でのエネルギ料金の算出にも適用可能である。
【図面の簡単な説明】
【００７３】
【図１】計算機演算処理を並列及び縦列する複数の演算処理単位に分割する様子を説明する図
【図２】グリッドコンピューティングに利用するコンピュータの相互接続関係を示す図
【図３】本発明に係る計算機使用料金算出装置の一実施形態における動作手順を示すフローチャート
【図４】計算機の空き状況（混雑度）、時間帯別のエネルギ時間単価とＣＰＵ時間単価の一例を模式的に示す図
【図５】本発明に係る計算機演算処理分割方法の一実施形態における処理手順を示すフローチャート
【図６】本発明に係る計算機演算処理分割方法の最適化工程における処理手順を示すフローチャート
【図７】本発明に係る計算機演算処理分割方法の他の実施形態における投入判定工程の処理手順を示すフローチャート
【符号の説明】
【００７４】
１：    本発明に係る計算機使用料金算出装置
２：    計算機
３：    コンピュータネットワーク
４：    管理用コンピュータ
【図１】
2005266845.tif 000003
【図２】
2005266845.tif 000004
【図３】
2005266845.tif 000005
【図４】
2005266845.tif 000006
【図５】
2005266845.tif 000007
【図６】
2005266845.tif 000008
【図７】
2005266845.tif 000009