(57)【要約】【課題】ローカルシステムの負荷状況に応じてタスク割り当て制御を自動的に行うことが可能な分散システムを提供する。【解決手段】負荷情報収集装置７は計算機システム６の負荷情報を収集し、データベース５はその負荷情報データ５２と、計算機システム６の資源情報及びその運用方針を記述した運用情報データ５１とを保持する。利用可能資源情報生成装置４はそれらの情報を利用してタスク割り当て装置１に利用可能資源とタスク割り当て依頼とを送信する。タスク割り当て装置１は分散処理タスクの割り当てを行うために、各計算機から送られてくる負荷状況データ２１と、割り当ての対象となる実行待ちタスク情報２２とをデータベース２に保持し、これらの情報を利用して計算機への分散処理タスクの割り当てを行う。【選択図】　　　図１
2004013866.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行う分散処理システムであって、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの割り当てを行う割り当て手段を有することを特徴とする分散処理システム。
【請求項２】
前記分散処理タスクの実行に利用可能な前記計算機の性能と利用可能資源に関する情報と前記管理方針の記述とを少なくとも含む負荷状況データと、実行待ちのタスク情報とを保持するデータベースを含み、
前記割り当て手段は、前記データベースの保持内容を用いてを前記分散処理タスクの割り当てを行うことを特徴とする請求項１記載の分散処理システム。
【請求項３】
前記利用可能資源に関する情報は、少なくとも時間帯及び曜日を含む日時情報による変化を定義自在としたことを特徴とする請求項２記載の分散処理システム。
【請求項４】
前記割り当て手段は、前記実行待ちのタスク情報に登録された条件を満たす計算機が存在する場合にその計算機を前記分散処理タスクに対して割り当てを行い、実行に十分な資源を持つ計算機がない場合に前記分散処理タスクを割り当て待ち状態として前記実行待ちのタスク情報に登録することを特徴とする請求項２または請求項３記載の分散処理システム。
【請求項５】
前記計算機の負荷情報を採取する手段と、この負荷情報を基に前記負荷状況を更新するデータを作成する手段とを含むことを特徴とする請求項１から請求項４のいずれか記載の分散処理システム。
【請求項６】
前記分散処理タスクを構成する複数のタスクの中から実行可能な計算機が存在するタスクから順次対応する計算機に割り当てることを特徴とする請求項１から請求項５のいずれか記載の分散処理システム。
【請求項７】
ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行うタスク割り当て装置であって、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの割り当てを行う割り当て手段を有することを特徴とするタスク割り当て装置。
【請求項８】
前記分散処理タスクの実行に利用可能な前記計算機の性能と利用可能資源に関する情報と前記管理方針の記述とを少なくとも含む負荷状況データと、実行待ちのタスク情報とを保持するデータベースを含み、
前記割り当て手段は、前記データベースの保持内容を用いてを前記分散処理タスクの割り当てを行うことを特徴とする請求項７記載のタスク割り当て装置。
【請求項９】
前記利用可能資源に関する情報は、少なくとも時間帯及び曜日を含む日時情報による変化を定義自在としたことを特徴とする請求項８記載のタスク割り当て装置。
【請求項１０】
前記割り当て手段は、前記実行待ちのタスク情報に登録された条件を満たす計算機が存在する場合にその計算機を前記分散処理タスクに対して割り当てを行い、実行に十分な資源を持つ計算機がない場合に前記分散処理タスクを割り当て待ち状態として前記実行待ちのタスク情報に登録することを特徴とする請求項８または請求項９記載のタスク割り当て装置。
【請求項１１】
前記計算機から採取された負荷情報を基に作成されたデータの受信時に当該データにしたがって前記負荷状況を更新することを特徴とする請求項７から請求項１０のいずれか記載のタスク割り当て装置。
【請求項１２】
前記分散処理タスクを構成する複数のタスクの中から実行可能な計算機が存在するタスクから順次対応する計算機に割り当てることを特徴とする請求項７から請求項１１のいずれか記載のタスク割り当て装置。
【請求項１３】
ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行う分散処理システムのタスク割当て方法であって、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの実行が可能な計算機を決定するステップと、当該計算機に対して前記分散処理タスクの割り当てを行うステップとを有することを特徴とするタスク割当て方法。
【請求項１４】
前記分散処理タスクの割り当てを行うステップは、前記分散処理タスクの実行に利用可能な前記計算機の性能と利用可能資源に関する情報と前記管理方針の記述とを少なくとも含む負荷状況データと、実行待ちのタスク情報とを保持するデータベースの保持内容を用いてを前記分散処理タスクの割り当てを行うことを特徴とする請求項１３記載のタスク割当て方法。
【請求項１５】
前記利用可能資源に関する情報は、少なくとも時間帯及び曜日を含む日時情報による変化を定義自在としたことを特徴とする請求項１４記載のタスク割当て方法。
【請求項１６】
前記分散処理タスクの割り当てを行うステップは、前記実行待ちのタスク情報に登録された条件を満たす計算機が存在する場合にその計算機を前記分散処理タスクに対して割り当てを行い、実行に十分な資源を持つ計算機がない場合に前記分散処理タスクを割り当て待ち状態として前記実行待ちのタスク情報に登録することを特徴とする請求項１４または請求項１５記載のタスク割当て方法。
【請求項１７】
前記計算機から採取された負荷情報を基に作成されたデータの受信時に当該データにしたがって前記負荷状況を更新することを特徴とする請求項１３から請求項１６のいずれか記載のタスク割当て方法。
【請求項１８】
前記分散処理タスクを構成する複数のタスクの中から実行可能な計算機が存在するタスクから順次対応する計算機に割り当てることを特徴とする請求項１３から請求項１７のいずれか記載のタスク割当て方法。
【請求項１９】
ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行う分散処理システムのタスク割当て方法のプログラムであって、コンピュータに、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの実行が可能な計算機を決定する処理と、当該計算機に対して前記分散処理タスクの割り当てを行う処理とを実行させるためのプログラム。
【請求項２０】
前記コンピュータに、前記分散処理タスクの割り当てを行わせる際に、前記分散処理タスクの実行に利用可能な前記計算機の性能と利用可能資源に関する情報と前記管理方針の記述とを少なくとも含む負荷状況データと、実行待ちのタスク情報とを保持するデータベースの保持内容を用いてを前記分散処理タスクの割り当てを行わせることを特徴とする請求項１９記載のプログラム。
【請求項２１】
前記利用可能資源に関する情報は、少なくとも時間帯及び曜日を含む日時情報による変化を定義自在としたことを特徴とする請求項２０記載のプログラム。
【請求項２２】
前記コンピュータに、前記分散処理タスクの割り当てを行わせる際に、前記実行待ちのタスク情報に登録された条件を満たす計算機が存在する場合にその計算機を前記分散処理タスクに対して割り当てを行わせ、実行に十分な資源を持つ計算機がない場合に前記分散処理タスクを割り当て待ち状態として前記実行待ちのタスク情報に登録させることを特徴とする請求項２０または請求項２１記載のプログラム。
【請求項２３】
前記コンピュータに、前記計算機から採取された負荷情報を基に作成されたデータの受信時に当該データにしたがって前記負荷状況を更新させることを特徴とする請求項１９から請求項２２のいずれか記載のプログラム。
【請求項２４】
前記コンピュータに、前記分散処理タスクを構成する複数のタスクの中から実行可能な計算機が存在するタスクから順次対応する計算機に割り当てさせることを特徴とする請求項１９から請求項２３のいずれか記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は分散処理システム、タスク割り当て装置及びそれに用いるタスク割当て方法並びにそのプログラムに関し、特に分散処理タスクをネットワークに接続された複数の計算機で分散して実行するシステムに関する。
【０００２】
【従来の技術】
従来、分散処理システムにおいては、複数の計算機をネットワークを介して接続し、各計算機にタスクを割り当てて処理することで、複数のタスクからなる処理が分散して行われている。
【０００３】
このネットワークを介して接続された計算機に割り当てるタスクは、プログラムを実行する側、またはグローバルな割り当て機構によってその割り当てが行われている。グローバルな割り当て機構としては、割り当てる計算機において一定間隔で得られる負荷情報等を利用する方法が提案されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した従来の分散処理システムでは、分散システムを構成する計算機がそれぞれ分散処理システムの一部として割り当てられるタスク以外に、ローカルなタスクの計算を行っている場合がほとんどである。
【０００５】
これに対して、計算機のタスクは全て同様に扱われるため、分散システムから割り当てられるタスク量を各計算機で制御することができず、その結果、ローカルなタスクの計算が阻害されるという問題がある。
【０００６】
また，各計算機で利用可能な資源情報は、通常、最初に登録を行い、その更新があまり行われないため、負荷が偏る場合がある。すなわち、計算機システムの利用可能資源情報が最新でないこと、及び割り当てられる側から分散タスクの割り当てを制御することができないことにある。
【０００７】
そこで、本発明の目的は上記の問題点を解消し、ローカルシステムの負荷状況に応じてタスク割り当て制御を自動的に行うことができる分散処理システム、タスク割り当て装置及びそれに用いるタスク割当て方法並びにそのプログラムを提供することにある。
【０００８】
【課題を解決するための手段】
本発明による分散処理システムは、ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行う分散処理システムであって、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの割り当てを行う割り当て手段を備えている。
【０００９】
本発明によるタスク割り当て装置は、ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行うタスク割り当て装置であって、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの割り当てを行う割り当て手段を備えている。
【００１０】
本発明によるタスク割当て方法は、ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行う分散処理システムのタスク割当て方法であって、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの実行が可能な計算機を決定するステップと、当該計算機に対して前記分散処理タスクの割り当てを行うステップとを備えている。
【００１１】
本発明によるタスク割当て方法のプログラムは、ネットワークを介して接続される複数の計算機に分散処理タスクを割り当てて計算を行う分散処理システムのタスク割当て方法のプログラムであって、コンピュータに、分散管理される計算機の状態と管理方針とを利用して前記分散処理タスクの実行が可能な計算機を決定する処理と、当該計算機に対して前記分散処理タスクの割り当てを行う処理とを実行させている。
【００１２】
すなわち、本発明の分散処理システムは、ネットワークを介して接続している複数の計算機に分散処理タスクを割り当てて計算を行うシステムにおいて、分散管理されている計算機の状態や管理方針を利用したタスクの割り当て方法を提供するものである。
【００１３】
より具体的に説明すると、本発明の分散処理システムでは、タスク割り当て装置がネットワークを介して接続している複数の計算機における負荷状況と実行待ちタスク情報とを保持している。
【００１４】
各計算機の負荷状況にはタスク実行に利用可能な計算機の性能や利用可能資源に関する情報を含んでおり、この資源情報は各計算機の負荷情報に加え、分散処理システムから割り当てられるタスクとローカルな計算に対してどのような割り当て方を行うかといった管理方針（運用方針）の記述、実際に利用可能な最大構成、分散システムから割り当てられるタスクが利用可能な情報から構成される。計算機の負荷状況は各計算機から送られてきた負荷状況に関するデータを保持している。
【００１５】
ネットワークを介した複数の計算機にタスクを割り当てる際に、タスク割り当て装置は計算機の負荷状況及び実行に必要な資源情報を用いて割り当てを行う方法を実現する。実行に必要な資源情報は実行待ちタスクに含まれている。タスク割り当て装置は実行待ちタスクに登録された条件を満たす計算機が存在する場合、その計算機をタスクに対して割り当てを行う。実行に十分な資源を持つ計算機がない場合、そのタスクは割り当て待ち状態として実行待ちタスクに登録される。
【００１６】
実行が割り当てられた計算機システムは、実行に必要なデータを受取り、タスクを実行する。ここで、新たな計算機システムの負荷情報が負荷情報収集によって採取され、負荷情報が更新される。利用可能資源情報生成装置はこの負荷情報と運用情報とから計算機システムの負荷状況を更新するデータを作成してタスク割り当て装置に送る。この更新作業は一定の時間間隔で行われる。
【００１７】
タスク割り当て装置はこの情報を受取ると、該当計算機に対応する負荷状況を更新する。タスク割り当て装置は負荷状況が更新され、かつ実行待ちタスクがある場合、割り当て可能なタスクがないかをチェックする。
【００１８】
これによって、本発明の分散処理システムでは、常に最新の利用可能資源情報が分散タスクの割り当てにおいて利用可能となり、さらに分散タスクを割り当てられる側から割り当ての制御が可能となる。
【００１９】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例による分散処理システムの構成を示すブロック図である。図１において、本発明の一実施例による分散処理システムはタスク割り当て装置１と、データベース２，５と、記録媒体３と、利用可能資源情報生成装置４と、計算機システム６と、負荷情報収集装置７と、ユーザ端末８と、タスク割り当て装置１と利用可能資源情報生成装置４とユーザ端末８とを接続するネットワーク１００とから構成されている。ここで、タスク割り当て装置１はコンピュータからなり、このコンピュータで実行されるプログラムが記録媒体３に記録されている。
【００２０】
上記のネットワーク１００には複数の計算機（図示せず）が接続されており、各計算機は利用可能資源情報生成装置４と、データベース５と、計算機システム６と、負荷情報収集装置７と、ユーザ端末８とから構成されている。
【００２１】
タスク割り当て装置１は分散処理タスクの割り当てを行うために、各計算機から送られてくる負荷状況データ２１と、割り当ての対象となる実行待ちタスク情報２２とを保持するデータベース２を備え、これらの情報を利用して計算機への分散処理タスクの割り当てを行う。
【００２２】
各計算機上に存在する資源情報を生成する機能は、計算機システム６の負荷情報を収集する負荷情報収集装置７と、その負荷情報データ５２と計算機システム６の資源情報及びその運用方針を記述した運用情報データ５１とを保持するデータベース５と、それらの情報を利用してタスク割り当て装置１に利用可能資源とタスク割り当て依頼とを作成する利用可能資源情報生成装置４とを構成要素とする。
【００２３】
ユーザ端末８はパーソナルコンピュータ等の情報処理装置であり、ネットワーク１００を介して分散処理タスクの実行依頼や実行結果の受取りを行う機能を備えている。
【００２４】
計算機システム６は複数の処理装置を有し、大規模なタスクを高速に実行可能な情報処理装置で構成されている。計算機システム６はタスク割り当て機能を用いた利用の他に、ユーザ端末８がネットワーク１００を介して直接接続して利用する機能を有する。
【００２５】
図２は本発明の一実施例で用いられる分散処理タスクの要求リストを示す図である。図２において、要求リストＡは項目（ＣＰＵ数、メモリ量、同時割り当て、タスク間通信、タスク間通信頻度等）Ａ１と、要求内容／量（ＸＸ，ＹＹ，用，ＭＰＩ，多等）Ａ２とから構成されている。
【００２６】
図３は図１のユーザ端末８の動作を示すフローチャートであり、図４は図１の各計算機の動作を示すフローチャートであり、図５は図１のタスク割り当て装置１の動作を示すフローチャートである。これら図１〜図５を参照して本発明の一実施例による分散処理システムの動作について説明する。尚、図５に示す処理はタスク割り当て装置１のコンピュータが記録媒体３のプログラムを実行することで実現される。
【００２７】
ユーザはユーザ端末８を用いるか、またはユーザ端末８からネットワーク１００を介して計算機システム６を直接利用する等によって、分散実行するプログラムを作成する（図３ステップＳ１）。
【００２８】
また、ユーザ端末８は作成したプログラムに関する情報をタスク実行要求として送信する能力を有し、そのプログラムを分散実行する際に、実行モジュールの作成及び実行に必要となる資源見積りを行い（図３ステップＳ２）、図２に示す項目Ａ１と要求内容／量Ａ２とからなる要求リストＡを作成する（図３ステップＳ３）。この要求リストＡはタスク割り当て装置１で解釈可能な形式で書かれているものとし、その入力方法やフォーマットは特に規定しない。
【００２９】
ユーザ端末８はこの要求リストＡと分散実行するプログラムに関する情報とをタスク割り当て装置１に送信する（図３ステップＳ４）。この情報はプログラムの実行で最低限必要な資源をユーザが予測して要求するもので、タスクを割り当てる計算機システム６の選択において利用される。この情報の例として、利用プロセッサ数、使用メモリ量、予想計算時間、通信の種類や通信量等がある。
【００３０】
分散処理を実行する各計算機システム６では、負荷情報収集装置７によって計算機の負荷状況を調べ、そこから得られる情報から負荷情報データ５２を得る（図４ステップＳ１１）。
【００３１】
また、各計算機ではその管理方針にしたがって、分散処理用に利用することができる資源量、または制限事項を記述した運用情報データ５１を作成する（図４ステップＳ１２）。運用情報データ５１は各計算機の管理者が作成し、一日の各時間帯や曜日による違いも含めて記述可能とする。運用情報データ５１にはＣＰＵ数、ディスク容量の制限、負荷状況によって割り当て可能なタスク数の制限の他に、時間帯による制限等を含むことが可能である。
【００３２】
利用可能資源情報生成装置４は負荷情報データ５２と、分散処理で利用可能な資源量を記述した運用情報データ５１と、日時情報とを利用してその時点において分散処理に割り当て可能な資源情報データを生成し、これをタスク割り当て装置１に送信する（図４ステップＳ１３〜Ｓ１５）。日時情報は計算機システム６から容易に得ることが可能である。
【００３３】
この場合、日時情報からその時点で分散処理に利用可能な資源の量や制限項目が決定され（図４ステップＳ１３）、これらに対して計算機システム６の負荷情報で変更が必要な項目のチェック及び修正が行われた後（図４ステップＳ１４）、それを分散タスクが利用可能な資源として負荷情報データ５２が作成される。
【００３４】
タスク割り当て装置１はネットワーク１００を介してユーザ端末８から送信された実行要求を受取ると（図５ステップＳ２１）、その実行要求をデータベース２に実行待ちタスク情報２２として登録する（図５ステップＳ２２）。この実行要求には、図２に示すユーザの予測に基づいているタスク実行に必要な資源に関する情報（項目Ａ１，要求内容／量Ａ２）を含む。
【００３５】
タスクを割り当てる各計算機から送られてきた各計算機の割り当て可能資源に関する負荷状況データ２１が、上記の実行要求と同様に、データベース２に格納されている。この負荷状況データ２１は利用可能プロセッサ数、メモリ量、利用可能ディスク領域等の情報を含む。
【００３６】
タスク割り当て装置１はタスクの実行要求にある資源情報と、各計算機の利用可能資源情報とを用いてそのタスクの実行が可能な計算機システムを決定する（図５ステップＳ２３，Ｓ２４）。
【００３７】
タスク割り当て装置１は実行可能な計算機システムが複数存在する場合（図５ステップＳ２５）、それらのうちのいずれかを選ぶことになるが、その選択アルゴリズムに関してはここでは特定しない。例えば、最初に見つけたものを割り当てる方法や実行可能な計算機のうちで要求資源に最も適合した資源を持つ計算機を割り当てる方法が考えられる。ここでは、要求資源に最も適合した資源を持つ計算機を割り当てる　（図５ステップＳ２６）。
【００３８】
タスク割り当て装置１はタスクに計算機を割り当てた場合、その要求と実行ファイル等の情報とを割り当てた計算機に送信するとともに（図５ステップＳ２７）、依頼元に割り当てた計算機情報を通知する（図５ステップＳ２８）。タスク割り当て装置１は割り当てが終ったタスクの要求を、割り当てた計算機及び要求元への通知が完了した時点で実行待ちタスク情報２２から削除する（図５ステップＳ２９）。
【００３９】
タスク割り当て装置１はすぐにタスクを割り当てることができない場合、利用可能な計算機の状態が変わり、負荷状況データ２１が更新された際に（図５ステップＳ３０）、新たに実行可能であるかのチェックが行われる（図５ステップＳ２３）。
【００４０】
図６は本発明の他の実施例によるタスク割り当て装置の動作を示すフローチャートである。本発明の他の実施例による分散処理システムは図１に示す本発明の一実施例と同様の構成となっているので、図１及び図６を参照して本発明の他の実施例による分散処理システムの動作について説明する。尚、図６に示す処理はタスク割り当て装置１のコンピュータが記録媒体３のプログラムを実行することで実現される。また、図６に示す処理において、ステップＳ３１〜Ｓ３３，Ｓ３６〜Ｓ４１は図５に示すステップＳ２１〜Ｓ２９の処理と同様なので、それらの説明については省略する。
【００４１】
タスク割り当て装置１は割り当ての際に、全ての資源を同時に割り当てる必要がない要求の場合、各タスクが実行可能であれば（図６ステップＳ３４）、割り当てた計算機と割り当てたタスクとに関する情報を要求リストに追加し、未割り当て分（今回は実行不可のタスク）を割り当て待ちとし（図６ステップＳ３５）、タスク全体の要求に満たない計算機でも利用可能なものから順次割り当てる（図６ステップＳ３６）。
【００４２】
このように、本発明では、時間帯や曜日によって分散システムで利用可能な資源の違いを予め登録しておくことができるので、ローカルシステムの負荷状況に応じてタスク割り当て制御を自動的に行うことができる。
【００４３】
これによって、本発明では、割り当てられるタスクが多くなり、ローカルなタスクの実行を妨げる状況を避けることが可能となるので、各計算機にローカルな処理の実行を妨げられることなく、分散処理タスクの実行が可能になる。
【００４４】
【発明の効果】
以上説明したように本発明は、ネットワークを介して接続している複数の計算機に分散処理タスクを割り当てて計算を行う分散処理システムにおいて、分散管理されている計算機の状態と管理方針とを利用して分散処理タスクの割り当てを行うことによって、ローカルシステムの負荷状況に応じてタスク割り当て制御を自動的に行うことができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施例による分散処理システムの構成を示すブロック図である。
【図２】本発明の一実施例で用いられる分散処理タスクの要求リストを示す図である。
【図３】図１のユーザ端末の動作を示すフローチャートである。
【図４】図１の各計算機の動作を示すフローチャートである。
【図５】図１のタスク割り当て装置の動作を示すフローチャートである。
【図６】本発明の他の実施例によるタスク割り当て装置の動作を示すフローチャートである。
【符号の説明】
１　タスク割り当て装置
２，５　データベース
３　記録媒体
４　利用可能資源情報生成装置
６　計算機システム
７　負荷情報収集装置
８　ユーザ端末
２１　負荷状況データ
２２　実行待ちタスク情報
５１　運用情報データ
５２　負荷情報データ
１００　ネットワーク
【図１】
2004013866.tif 000003
【図２】
2004013866.tif 000004
【図３】
2004013866.tif 000005
【図４】
2004013866.tif 000006
【図５】
2004013866.tif 000007
【図６】
2004013866.tif 000008